This is for when you want to hide products of a certain category from displaying on the WooCommerce shop page. It removes products of a specific category from the shop page.
In this example, the product category to be removed is ‘packages’. You can change packages
on line 12 to your own product category (slug), or a list of comma-separated product categories.
/** * Hide the sponsorship package from the shop page */ function custom_pre_get_posts_query( $q ) { if ( ! $q->is_main_query() ) return; if ( ! $q->is_post_type_archive() ) return; if ( ! is_admin() && is_shop() ) { $q->set( 'tax_query', array(array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => array( 'packages' ), // Don't display products in the packages category on the shop page 'operator' => 'NOT IN' ))); } remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' ); } add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
Questions and Comments are Welcome