php 在WooCommerce管理订单中添加第二列自定义元数据

c3frrgcw  于 2023-06-28  发布在  PHP
关注(0)|答案(1)|浏览(120)

我在WooCommerce中有一个自定义列,显示通过代码片段添加的优惠券(见屏幕截图)。
我想添加另一个显示商店信贷使用的金额在每个订单,
我使用高级优惠券,他们告诉我,与商店信贷订单将有acfw_store_credits_order_paid meta对他们。
我是否可以复制现有的代码片段并将此元数据添加到其中?

// Additional custom column
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column( $columns ) {
    $reordered_columns = array();

    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            $reordered_columns['coupons'] = __( 'Coupons', 'woocommerce');
        }
    }
    return $reordered_columns;
}

// Custom column content
add_action( 'manage_shop_order_posts_custom_column', 'custom_shop_order_column_used_coupons' );
function custom_shop_order_column_used_coupons( $column ) {
    global $post, $the_order;

    if ( ! is_a( $the_order, 'WC_Order' ) ) {
        $the_order = wc_get_order( $post->ID );
    }

    if ( 'coupons' === $column ) {
        $coupon_codes = $the_order->get_coupon_codes();
        
        if ( ! empty($coupon_codes) ) {
            echo implode(', ', $coupon_codes);
        }
    }
}
pu3pd22g

pu3pd22g1#

我已经为你的“商店信用”自定义元数据添加了第二列。
尝试以下代码替换:

// Additional custom column
add_filter( 'manage_edit-shop_order_columns', 'custom_shop_order_column', 20 );
function custom_shop_order_column( $columns ) {
    $reordered_columns = array();

    foreach( $columns as $key => $column){
        $reordered_columns[$key] = $column;
        if( $key ==  'order_status' ){
            $reordered_columns['coupons'] = __( 'Coupons', 'woocommerce');
            $reordered_columns['store_credit'] = __( 'Store credit', 'woocommerce');
        }
    }
    return $reordered_columns;
}

// Custom column content
add_action( 'manage_shop_order_posts_custom_column', 'custom_shop_order_column_used_coupons' );
function custom_shop_order_column_used_coupons( $column ) {
    global $post, $the_order;

    if ( ! is_a( $the_order, 'WC_Order' ) ) {
        $the_order = wc_get_order( $post->ID );
    }

    if ( 'coupons' === $column ) {
        $coupon_codes = $the_order->get_coupon_codes();
        
        if ( ! empty($coupon_codes) ) {
            echo implode(', ', $coupon_codes);
        }
    }

    if ( 'store_credit' === $column ) {
        $store_credit = $the_order->get_meta('acfw_store_credits_order_paid');
        
        if ( ! empty($store_credit) ) {
            echo $store_credit;
        }
    }
}

应该能用

相关问题