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

如何为WooCommerce单产品页面的指定产品添加多个自定义选项卡

错误点梳理

  • 注册woocommerce_product_tabs过滤器时没有指定接收参数数量,默认仅传入1个$tabs参数,你声明的第二个参数$post_id无法正常获取产品ID
  • 匹配到指定产品ID的逻辑分支内,你直接返回了单个选项卡的配置数组,直接覆盖了整个选项卡列表,会导致页面丢失所有原有选项卡
  • woocommerce_product_tabs钩子本身默认不传递$post_id作为第二个参数,这个参数的写法本身不符合钩子的参数规则

修正后代码

add_filter( 'woocommerce_product_tabs', 'artwork_product_tab', 10, 1 );
function artwork_product_tab( $tabs ) {
    // 获取当前产品ID
    $post_id = get_the_ID();
    
    // 仅ID为8125的产品显示Artwork Guidelines选项卡
    if( in_array( $post_id, array( 8125 ) ) ){
        $tabs['artwork_guidelines'] = array(
            'title'     => __( 'Artwork Guidelines', 'woocommerce' ),
            'priority'  => 50,
            'callback'  => 'artwork_product_tab_content'
        );
    }
    
    // 所有产品都显示Standard Sizes选项卡
    $tabs['standard_sizes'] = array(
        'title'     => __( 'Standard Sizes', 'woocommerce' ),
        'priority'  => 60,
        'callback'  => 'standard_sizes_product_tab_content'
    );
    
    return $tabs;
}

实现效果

  • 所有产品页面都会正常展示Standard Sizes选项卡
  • 只有ID为8125的产品页面会额外展示Artwork Guidelines选项卡
  • 不会影响产品页原有默认选项卡(描述、评论、库存信息等)的正常展示

内容的提问来源于stack exchange,提问作者Pauly92

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:30:04