I have a meta query I'm building as part of a woocommerce product filter. We have two meta queries that can run together or separately depending on what filtering is selected. The intention is to get them both working together but I've disabled the _price
filter for now.
Here is the query being built before filters:
$page = 1; // Default page to start on — can be overwritten.
$args = array(
'post_type' => 'product',
'posts_per_page' => 12,
'paged' => $page,
'orderby' => 'Date',
'order' => 'ASC',
'tax_query' => array(),
'meta_query' => array()
);
Here is when I run a price range filter, which produces the expected results: A range of products prices between 2,000 and 5,000.
$price_range = array(
'key' => '_price',
'value' => array(2000,5000),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
);
array_push( $args['meta_query'], $price_range );
Now, if I run this meta query, with or without the above price range filter added to the meta_query array I get no results.
$clearingWidth = array(
'key' => 'clearing_width',
'value' => array( 10,1000 ),
'compare' => 'BETWEEN',
'type' => 'NUMERIC'
);
array_push( $args['meta_query'], $clearingWidth );
I have my databased linked up to my IDE and I have queried for the meta_key clearing_width
which I do have two results for. One with a value of 60, and another with 42. Should I not see them as results? For some reason the price key works but not clearing width.
Any ideas?
SELECT * FROM wp_postmeta WHERE meta_key = 'clearing_width' AND meta_value BETWEEN 10 AND 1000;
through the database and got the expected result. There must be something going on with the key??