Woocommerce query by price range and custom meta key

The featured product’s meta key is _featured, but you are using featured in your meta query. This will return no products, since the key doesn’t exist.

Also, as far as I know, the value of the key is yes, so your arguments should be like this:

array(
    'key'       => '_featured',
    'value'     => 'yes',
)

Another note, is to use the proper way to get the shortcode’s attribute. You can do so by using shortcode_atts() function. Here is the syntax for your case:

$atts = shortcode_atts(
    array(
        'limit' => '20',
        'min' => '1'
        'max' => '2'
    ), 
    $atts, 
    'product_price_filter_box' 
);

$limit = intval($atts['limit']);
$min = intval($atts['min']);
$max = intval($atts['max']);

You might want to limit the maximum posts a user can get. This can be done by using the min() function:

$limit = min(20, $limit);

And a final note. If you are using WP_Query, you should use wp_reset_postdata(); instead of wp_reset_query();, which is used after you use query_posts();.

Leave a Comment