function rpf_add_query_var_not_to_show_user_request_product($query) {
$post_type = $query->get( 'post_type' );
if ( ! is_null($post_type) && $post_type == 'product' ) {
$query->set( 'meta_key', '_user_request' );
$query->set( 'meta_value', 'no' );
$query->set( 'meta_compare', '=' ); // default
}
}
add_action( 'pre_get_posts',
'rpf_add_query_var_not_to_show_user_request_product', 100, 1 );
yes, pre_get_posts is heaven! and $query->set(), $query->get() are angels!