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

如何根据WooCommerce产品属性值控制自定义标签的显示?

解决方案

要实现仅当产品属性pa_data-quality值为icecat时显示自定义标签,你需要在添加标签前先获取当前产品并检查属性值,修改后的代码如下:

function woo_new_product_tab( $tabs ) {
    // 获取当前产品对象
    global $product;
    
    // 非产品页面直接返回原标签
    if ( ! $product ) {
        unset( $tabs['description'] );
        return $tabs;
    }
    
    // 获取目标属性的值
    $data_quality = $product->get_attribute('pa_data-quality');
    
    // 仅当属性值为icecat时添加自定义标签
    if ( 'icecat' === trim( $data_quality ) ) {
        $tabs['featurestab'] = array(
            'title'     => __( 'From the Manufacturer', 'woocommerce' ),
            'priority'  => 0,
            'callback'  => 'icecat_tab_content'
        );
    }
    
    // 移除默认描述标签
    unset( $tabs['description'] );
    
    return $tabs;
}

function icecat_tab_content() {
    echo '<div id="Container3"></div>
          <div id="Container4"></div>
          <div id="Container5"></div>
          <div id="Container6"></div>
          <div id="Container7"></div>
          <div id="Container9"></div>
          <div id="Container10"></div>
          <div id="Container11"></div>';
}

add_filter( 'woocommerce_product_tabs', 'woo_new_product_tab' );

关键说明:

  • 获取产品对象:通过global $product拿到当前页面的产品实例,确保只在产品页面执行属性检查
  • 属性值判断:使用get_attribute('pa_data-quality')获取属性值,trim()处理可能的空格,避免因格式问题导致判断失效
  • 条件添加标签:只有当属性值严格等于icecat时,才将自定义标签加入$tabs数组,否则不添加,彻底避免空白标签出现
  • 保留移除描述标签:无论是否显示自定义标签,都移除默认的描述标签,符合你的原始需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:06:33