I found myself in the situation where I had to give the client the possibility to hide some of their products from search, so they can manually send the product urls to their clients. The way I got around it at the time was to create a product category called Hidden and use the snippet below, which you can paste in your theme’s functions.php file.
/*------------------------------------- Remove hidden category products from search ---------------------------------------*/ function wpharvest_pre_get_posts( $query ) { if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) { $tax_query = array( array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => 'hidden', 'operator' => 'NOT IN', ), ); $query->set( 'tax_query', $tax_query ); } } add_action( 'pre_get_posts', 'wpharvest_pre_get_posts' );
If you find this snippet helpful or need help with it, please leave a comment below.