<?php function get_subcategory_terms( $terms, $taxonomies, $args ) { $new_terms = array(); $hide_category = array( 300 ); // 300 is the category id, replace it with yours // if a product category and on the shop page if ( in_array( 'product_cat', $taxonomies ) && !is_admin() && is_shop() ) { foreach ( $terms as $key => $term ) { if ( ! in_array( $term->term_id, $hide_category ) ) { $new_terms[] = $term; } } $terms = $new_terms; } return $terms; } add_filter( 'get_terms', 'get_subcategory_terms', 10, 3 );