我有一个标签集来添加一个包含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类别的正确代码是什么?
答案 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;
}