我的目的是在 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());
}
我可以很好地创建列,但不幸的是没有出现所需的数据。有人可以帮助我吗?
您的代码尝试已接近尾声,但无需迭代现有列。
随后,对于优惠券代码的输出,有几个选项可用,其中之一是例如使用 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 );