add_action( 'pre_get_posts', function( $query ) {
if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
$query->set( 'post__not_in', [1.2.3.4.5.6] ); // id записей которые надо скрыть
$tax_query = [
[
'taxonomy' => 'product_cat',
'field' => 'id',
'terms' => [20,30,40,50], // id категорий которые надо скрыть
'operator' => 'NOT IN',
]
];
$query->set( 'tax_query', $tax_query );
}
});