从 Woocommerce 相关产品中排除产品类别

Exclude a product category from Woocommerce related products

在 woocommerce 中,我试图从单个产品页面上显示的相关产品中删除特定产品类别。

我曾尝试使用 woocommerce_get_related_product_cat_terms 中的函数挂钩,过滤器挂钩,就像 some answer threads 中一样,但它似乎不再起作用了。

如何从 Woocommerce 相关产品中排除特定产品类别?

尝试 woocommerce_related_products 挂钩以下挂钩函数,以从显示的相关产品中排除特定产品类别:

add_filter( 'woocommerce_related_products', 'exclude_product_category_from_related_products', 10, 3 );
function exclude_product_category_from_related_products( $related_posts, $product_id, $args  ){
    // HERE define your product category slug
    $term_slug = 'hoodies';

    // Get the product Ids in the defined product category
    $exclude_ids = wc_get_products( array(
        'status'    => 'publish',
        'limit'     => -1,
        'category'  => array($term_slug),
        'return'    => 'ids',
    ) );

    return array_diff( $related_posts, $exclude_ids );
}

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

已测试并有效。

相关回答线程: