如何在WooCommerce Analytics优惠券页面添加商品名称列
WooCommerce优惠券页面添加产品/变体名称列的修正方案
原代码存在几处关键错误,以下是修正后的完整代码:
// 添加列标题 function filter_manage_edit_shop_coupon_columns( $columns ) { // 新增产品名列 $columns['coupon_products'] = __( '产品/变体', 'woocommerce' ); return $columns; } add_filter( 'manage_edit-shop_coupon_columns', 'filter_manage_edit_shop_coupon_columns', 10, 1 ); // 填充列内容 function action_manage_shop_coupon_posts_custom_column( $column, $post_id ) { if ( $column == 'coupon_products' ) { // 获取优惠券关联的产品ID数组 $product_ids = get_post_meta( $post_id, 'product_ids', true ); if ( ! empty( $product_ids ) ) { $product_names = array(); // 处理多个产品的情况 foreach ( (array)$product_ids as $product_id ) { $product = wc_get_product( $product_id ); if ( $product ) { $product_names[] = $product->get_name(); } } if ( ! empty( $product_names ) ) { echo implode( '<br>', $product_names ); } else { echo '-'; } } else { echo '无关联产品'; } } } add_action( 'manage_shop_coupon_posts_custom_column' , 'action_manage_shop_coupon_posts_custom_column', 10, 2 );
原代码的错误说明:
- 函数定义行语法错误:原代码将注释与函数定义写在同一行,导致语法解析失败。
- 错误的产品ID获取方式:优惠券的关联产品ID存储在
product_ids元数据中,而非post_product字段,原代码调用的字段不存在。 - 不存在的函数调用:
get_the_product_meta并非WordPress/WooCommerce内置函数,获取产品名称应通过wc_get_product实例化产品后调用get_name()方法。 - 未处理多产品场景:优惠券可关联多个产品,原代码未覆盖该场景,修正后会遍历所有关联产品并显示名称。
将上述代码添加到主题functions.php文件或自定义插件中,即可在营销-优惠券页面看到新增的产品/变体名称列。
内容的提问来源于stack exchange,提问作者violeta trandafir
相关产品推荐
相关产品推荐

