在 WooCommerce“我的帐户”订单表的自定义列中显示使用过的优惠券

问题描述 投票:0回答:1

我的目的是在 WooCommerce“我的帐户”的订单表的自定义列中显示订单中使用的优惠券。


现场桌子图片:

我的代码尝试:

add_filter( 'woocommerce_account_orders_columns', 
'add_coupon_codes_column');
    function add_coupon_codes_column( $columns ){
        $new_columns = [
        "order-number" => $columns["order-number"],
        // ...
        "coupon-codes" => __( 'Code', '' ),
        // ...
        "order-actions" => $columns["order-actions"]
    ];
    return $new_columns;
}

add_action( 'woocommerce_my_account_my_orders_column_coupon_codes', 
'add_coupon_codes_content' );
    function add_coupon_codes_content($order) {
    echo esc_html($order->get_coupon_codes());
}

基于在 Woocommerce 3+ 答案代码中向我的帐户订单表添加一个带有元数据的自定义列。


我可以很好地创建列,但不幸的是没有出现所需的数据。有人可以帮助我吗?

wordpress woocommerce orders coupon
1个回答
0
投票

您的代码尝试已接近尾声,但实际上没有必要迭代现有列。除非你想从新列中确定序列。

随后,对于优惠券代码的输出,有几个选项可用,其中之一是例如使用 implode()

所以你得到:

// Add new column(s) to the "My Orders" table in the account.
function filter_woocommerce_account_orders_columns( $columns ) {
    $columns['coupon-codes'] = __( 'Coupons', 'woocommerce' );

    return $columns;
}
add_filter( 'woocommerce_account_orders_columns', 'filter_woocommerce_account_orders_columns', 10, 1 );

// Adds data to the custom column in "My Account > Orders"
function action_woocommerce_my_account_my_orders_column_coupon_codes( $order ) {
    // Get codes
    $coupon_codes = $order->get_coupon_codes();
        
    if ( ! empty( $coupon_codes ) ) {
        echo implode( ', ', $coupon_codes );
    }
}
add_action( 'woocommerce_my_account_my_orders_column_coupon-codes', 'action_woocommerce_my_account_my_orders_column_coupon_codes', 10, 1 );

相关:向 WooCommerce“我的帐户”订单表添加多个自定义列

© www.soinside.com 2019 - 2024. All rights reserved.