【问题标题】:Check and display all Order items that have a SKU in Woocommerce在 Woocommerce 中检查并显示所有具有 SKU 的订单商品
【发布时间】:2018-11-30 15:35:58
【问题描述】:

在 Woocommerce > 管理 > 订单屏幕中显示 SKU 的自定义脚本有问题。我似乎无法向 sku 显示

尝试

        switch ( $column )
    {
  case 'my_custom_column' :
  $the_sku = get_post_meta( $post_id, '_sku' )

然后,如果商品没有 SKU,我稍后会使用类似的方式显示错误消息(为我自己)。

if(!empty($the_sku)) {
     echo "<a href=''><div class='order_div'>SKU is".$the_sku."</div></a>";
} else {
    echo "<a href=''><div class='order_div'>NO SKU</div></a>";
}

但它似乎不起作用。它甚至不会回显 SKU(当它存在时)。所以我有点卡住了。理想情况下,我正在尝试检查订单中的每件商品(一个订单可能附有几件商品)是否都有自己的 SKU。

如果 SKU 不存在,订单列中会显示错误。欢迎任何帮助。

【问题讨论】:

    标签: php wordpress woocommerce product orders


    【解决方案1】:

    Sku与订单无关,而是与订单商品(Products)相关,一个订单可以有很多商品,所以你需要使用不同的东西。

    以下代码将获取并检查订单商品以获取 SKU,如果有产品没有,它将显示缺失的 SKU 计数:

    switch ( $column ) {
        case 'my_custom_column' :
    
            // Get the WC_Order instance object
            $order = wc_get_order( $post_id );
            $has_sku = false;
            $skus = [];
            $missing = 0;
    
            // Loop through order items
            foreach( $order->get_items() as $item ){
                // Get the WC_Product object (from order item)
                $product = $item->get_product();
    
                if( $sku = $product->get_sku() ) {
                    $has_sku = true;
                    $skus[] = $sku;
                } else {
                    $missing++;
                }
            }
    

    然后:

    echo '<a href=""><div class="order_div">';
    
    if ( $has_sku ) {
        echo __( "SKUs: %s") . ' ' . implode( ', ', $skus );
    } else {
        echo __( "NO SKU" );
    }
    
    // Display missing SKUs count (optionally)
    if( $missing > 0 ){
        echo ' <em>(' . $missing . ' missing)</em>';
    }
    
    echo '</div></a>';
    

    它现在应该可以工作了。

    【讨论】:

    • 你很有帮助。我现在明白了复杂性。感谢您指出解决方案并建议我如何到达那里。你的回答很好。我会进一步干预,理想情况下,如果在具有多个项目的订单中,一个或多个缺少 SKU,我想显示警告。但我敢肯定,我可以从这里拿走它。我会尽力。非常感谢。
    • @Callum 我刚刚更新了缺失的 Skus 数量,如果有帮助的话
    猜你喜欢
    • 2021-08-13
    • 2018-10-07
    • 1970-01-01
    • 2021-02-02
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2019-07-14
    相关资源
    最近更新 更多