在 Woocommerce 的管理员订单列表中添加一列优惠券
Add a column with coupons used on admin Orders list in Woocommerce
我试图在订单管理屏幕上显示直接使用的优惠券(WooCommerce 中列出了所有订单),但由于某种原因,它给了我一个致命错误,因为中断。
这是代码 ->
add_filter( 'manage_shop_order_posts_columns', 'woo_customer_order_coupon_column_for_orders', 99 );
function woo_customer_order_coupon_column_for_orders( $columns ) {
$columns['order_coupon'] = __('Coupon', 'woocommerce');
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woo_display_customer_order_coupon_in_column_for_orders', 10, 2 );
function woo_display_customer_order_coupon_in_column_for_orders( $column_name, $order_id, $order ) {
switch ( $column_name ) {
case 'order_coupon':
if( $order->get_used_coupons() ) {
$coupons_count = count( $order->get_used_coupons() );
echo '<h4>' . __('Coupons Used') . ' (' . $coupons_count . ')</h4>';
echo '<p><strong>' . __('Coupons Used') . ':</strong> ';
$i = 1;
foreach( $order->get_used_coupons() as $coupon) {
echo $coupon;
if( $i < $coupons_count )
echo ', ';
$i++;
}
echo '</p>';
} } break; }
add_filter( "manage_edit-shop_order_sortable_columns", 'woo_ordercoupon_sortable' );
function woo_ordercoupon_sortable( $columns ) {
$custom = array (
'order_coupon' => 'Coupon', );
return wp_parse_args( $custom, $columns ); }
任何关于如何解决这个问题的想法都将不胜感激。
您的代码中存在一些错误……请尝试以下操作:
add_filter( 'manage_edit-shop_order_columns', 'woo_customer_order_coupon_column_for_orders' );
function woo_customer_order_coupon_column_for_orders( $columns ) {
$new_columns = array();
foreach ( $columns as $column_key => $column_label ) {
if ( 'order_total' === $column_key ) {
$new_columns['order_coupons'] = __('Coupons', 'woocommerce');
}
$new_columns[$column_key] = $column_label;
}
return $new_columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woo_display_customer_order_coupon_in_column_for_orders' );
function woo_display_customer_order_coupon_in_column_for_orders( $column ) {
global $the_order, $post;
if( $column == 'order_coupons' ) {
if( $coupons = $the_order->get_used_coupons() ) {
echo implode(', ', $coupons) . ' ('.count($coupons).')';
} else {
echo '<small><em>'. __('No coupons') . '</em></small>';
}
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
(这不能是可排序列)
我试图在订单管理屏幕上显示直接使用的优惠券(WooCommerce 中列出了所有订单),但由于某种原因,它给了我一个致命错误,因为中断。
这是代码 ->
add_filter( 'manage_shop_order_posts_columns', 'woo_customer_order_coupon_column_for_orders', 99 );
function woo_customer_order_coupon_column_for_orders( $columns ) {
$columns['order_coupon'] = __('Coupon', 'woocommerce');
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woo_display_customer_order_coupon_in_column_for_orders', 10, 2 );
function woo_display_customer_order_coupon_in_column_for_orders( $column_name, $order_id, $order ) {
switch ( $column_name ) {
case 'order_coupon':
if( $order->get_used_coupons() ) {
$coupons_count = count( $order->get_used_coupons() );
echo '<h4>' . __('Coupons Used') . ' (' . $coupons_count . ')</h4>';
echo '<p><strong>' . __('Coupons Used') . ':</strong> ';
$i = 1;
foreach( $order->get_used_coupons() as $coupon) {
echo $coupon;
if( $i < $coupons_count )
echo ', ';
$i++;
}
echo '</p>';
} } break; }
add_filter( "manage_edit-shop_order_sortable_columns", 'woo_ordercoupon_sortable' );
function woo_ordercoupon_sortable( $columns ) {
$custom = array (
'order_coupon' => 'Coupon', );
return wp_parse_args( $custom, $columns ); }
任何关于如何解决这个问题的想法都将不胜感激。
您的代码中存在一些错误……请尝试以下操作:
add_filter( 'manage_edit-shop_order_columns', 'woo_customer_order_coupon_column_for_orders' );
function woo_customer_order_coupon_column_for_orders( $columns ) {
$new_columns = array();
foreach ( $columns as $column_key => $column_label ) {
if ( 'order_total' === $column_key ) {
$new_columns['order_coupons'] = __('Coupons', 'woocommerce');
}
$new_columns[$column_key] = $column_label;
}
return $new_columns;
}
add_action( 'manage_shop_order_posts_custom_column' , 'woo_display_customer_order_coupon_in_column_for_orders' );
function woo_display_customer_order_coupon_in_column_for_orders( $column ) {
global $the_order, $post;
if( $column == 'order_coupons' ) {
if( $coupons = $the_order->get_used_coupons() ) {
echo implode(', ', $coupons) . ' ('.count($coupons).')';
} else {
echo '<small><em>'. __('No coupons') . '</em></small>';
}
}
}
代码进入活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
(这不能是可排序列)