WooCommerce - 如果产品没有类别,则隐藏相关产品

时间:2017-08-22 12:04:50

标签: php wordpress woocommerce

我想知道,只有在产品没有设置类别的情况下才能隐藏单个产品页面中的相关产品标签。

这就是我的尝试:

global $product; 

// Return the product categories
$categories = $product->get_categories( ', ', ' ' . _n( ' ', '  ', $cat_count, 'woocommerce' ) . ' ', ' ' );

if(empty($categories)){
        remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
    }

这已被添加到functions.php中,但它无效。任何人都会有更好的主意吗?

1 个答案:

答案 0 :(得分:1)

是的,可以尝试以下代码。

function remove_related_product()
{
    global $product; 

    $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;
    $terms = wp_get_post_terms( $product_id, 'product_cat' );

    if(empty($terms))
    {
         remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );
    }
}
add_action('woocommerce_after_single_product_summary', 'remove_related_product',10);

代码放在活动子主题(或主题)的function.php文件中。

此代码在WooCommerce 3+上测试并正常工作