You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:58:21