Следующий код скрывает продукты из определенной категории продуктов только для незарегистрированных пользователей. Вы должны будете определить в коде категорию продукта SLUG, которая будет исключена из массива 'terms'
:
// Hide some products from unlogged users and a specific product category
add_filter( 'woocommerce_product_query_tax_query', 'exclude_products_fom_unlogged_users', 10, 2 );
function exclude_products_fom_unlogged_users( $tax_query, $query ) {
// On frontend for unlogged users
if( ! is_user_logged_in() ){
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array('t-shirts'), // <=== HERE the product category slug
'operator' => 'NOT IN'
);
}
return $tax_query;
}
Код помещается в файл function.php вашей активной дочерней темы (или активной темы). Проверено и работает.