如果产品属于特定类别WooCommerce,如何设置标签(仅限)

时间:2016-07-27 13:02:23

标签: php wordpress woocommerce categories product

我有一个标签集来添加一个包含WooCommerce规范的标签。我想将它包装到if语句中,只有在产品属于某个类别时才设置选项卡。

add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tabs' );

function woo_custom_product_tabs( $tabs ) {

    global $post;

    if ($product->is_category("Mobile Phones")) { 
        $tabs['custom_specification'] = array( 'title' => __( 'Specification', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_custom_specification_content' );
    }
}

在if语句括号中检查WooCommerce类别的正确代码是什么?

2 个答案:

答案 0 :(得分:3)

如果您在类别存档页面上,则条件is_category()将返回true。

由于您需要单个产品页面的条件,您将使用 is_product() 条件以这种方式结合单个产品页面:

if ( is_product() && has_term( 'Mobile Phones', 'product_cat' ) ) {
    $tabs['custom_specification'] = array( 'title' => __( 'Specification', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_custom_specification_content' );
}

或者你也可以尝试,以防这个:

if( is_product() && has_category( 'Mobile Phones' ) ) {
    $tabs['custom_specification'] = array( 'title' => __( 'Specification', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_custom_specification_content' );
}

@edit:在最后一个结束括号 return $tabs; 之前,您在功能结束时错过了}

参考文献:

答案 1 :(得分:2)

尝试以下代码。仅当产品具有移动电话类别时,此代码才会添加woocommerce选项卡。

add_filter( 'woocommerce_product_tabs', 'woo_custom_product_tabs' );

    function woo_custom_product_tabs( $tabs ) {

      global $post;
     if ( is_product() && has_term( 'Mobile Phones', 'product_cat' )) 
     { 
      $tabs['custom_specification'] = array( 'title' => __( 'Specification', 'woocommerce' ), 'priority' => 50, 'callback' => 'woo_custom_specification_content' );
      }
      return $tabs;
    }