在单个产品页面列表输出中隐藏WooCommerce特定子类别

时间:2017-12-30 01:27:55

标签: php wordpress woocommerce categories product

在WooCommerce单品页面上,在添加到购物车按钮下会显示产品类别列表。

In my website我有两个名为“In Ground Hoops”的产品类别,因此它会显示两次,因为它是一个主要类别和一个子类别。

如何隐藏此子类别并不显示在那里?

我无法使用CSS定位它,woocommerce_template_single_meta挂钩是我能找到的全部或全部。

任何关于从哪里开始和/或如何做的想法都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您的产品类别和子类别"在Ground Hoops"具有相同的术语名称,但每个术语名称不同:

  • 产品类别"在地面箍" term slug是:'in-ground-hoops'
  • 产品子类别"在Ground Hoops" term slug是:'in-ground-hoops-goalrilla'

因此,在代码中区分它们的唯一方法是使用 term ID term slug 。所以我将在这里使用术语Slug ...

在查看显示元输出的 the responsible template 时,过滤该特定产品子类别的唯一方法是使用可用的WP get_the_terms过滤器钩子:

add_filter( 'get_the_terms', 'hide_specific_product_subcategory', 20, 3 );
function hide_specific_product_subcategory( $terms, $post_id, $taxonomy )
{
    // Only on single product pages and for product category custom taxonomy
    if( ! is_product() && $taxonomy != 'product_cat' ) return $terms; // We Exit

    $category = 'in-ground-hoops'; // your main product category
    $subcategory = 'in-ground-hoops-goalrilla'; // the related subcategory
    $taxonomy = 'product_cat'; // product category taxonomy

    if( has_term( $category, $taxonomy, $post_id ) ){
        foreach ($terms as $key => $term){
            if( $term->slug == $subcategory ){
                unset( $terms[$key] );
            }
        }
    }
    return $terms;
}

代码进入活动子主题(或活动主题)的function.php文件。

经过测试和工作。