Woocommerce exclude specific category products from related products [closed]

Old question, but ranks high in Google. Here’s a solution that works with today’s Woocommerce.

Add this to your functions.php or custom plugin.

function exclude_brands_from_related( $categories ){
    // array of category id's that should be excluded
    $exclude_cats = array( '100', '101', '102');

    foreach( $categories as $index => $cat ){
        if( in_array( $cat->term_id, $exclude_cats ) ){
            unset($categories[$index]);
        }
    }

    return $categories;
}

add_filter( 'woocommerce_get_related_product_cat_terms', 'exclude_brands_from_related' );

And to do the same with tags:

function exclude_tags_from_related( $tags ){
    // array of tags that should be excluded
    $exclude_tags = array( 'discontinued', 'whatever', 'even-more');

    foreach( $tags as $index => $tag ){
        if( in_array( $tag->slug, $exclude_tags ) ){
            unset($tags[$index]);
        }
    }

    return $tags;
}

add_filter( 'woocommerce_get_related_product_tag_terms', 'exclude_tags_from_related' );

Leave a Comment