I'm trying to filter WooCommerce product archive by custom attributes.
For example, there are 5 products with attribute "color" containing "red", and another 3 with attribute "color" containing "blue".
How can I apply a filter to the products loop, so only the products containing "red" will be shown?
Thanks
You can use WooCommerce AJAX Product Filter. You can also watch how the plugin is used for product filtering.
Here is a screenshot:
A plugin is probably your best option. Look in the wordpress plugins directory or google to see if you can find one. I found the one below and that seemed to work perfect.
https://wordpress.org/plugins/woocommerce-products-filter/
This one seems to do exactly what you are after
Try WooCommerce Product Filter, plugin developed by Mihajlovicnenad.com. You can filter your products by any criteria. Also, it integrates with your Shop and archive pages perfectly. Here is a screenshot. And this is just one of the layouts, you can customize and make your own. Look at demo site. Thanks!
On one of my sites I had to make a custom search by a lot of data some of it from custom fields here is how my $args look like for one of the options:
where "$meta_query" is:
and after that:
so you would probably get more info here: http://codex.wordpress.org/Class_Reference/WP_Query and you can search for "meta_query" in the page to get to the info
You can use the WooCommerce Layered Nav widget, which allows you to use different sets of attributes as filters for products. Here's the "official" description:
If you look into plugins/woocommerce/widgets/widget-layered_nav.php, you can see the way it operates with the attributes in order to set filters. The URL then looks like this:
http://yoursite.com/shop/?filtering=1&filter_min-kvadratura=181&filter_max-kvadratura=108&filter_obem-ohlajdane=111
... and the digits are actually the id-s of the different attribute values, that you want to set.