Filters from the products on screen
Browsing phones shows RAM and storage. Browsing shoes shows size. Nothing to set up per attribute.
- Categories
- Tags
- Attributes
- Price
- Stock
- On sale
- Rating
- Custom fields

A WooCommerce AJAX product filter that updates the grid in place, shows live counts for every option and keeps the URL shareable.
WordPress 6.1+ · WooCommerce 7.0+

Browsing phones shows RAM and storage. Browsing shoes shows size. Nothing to set up per attribute.

Each option shows how many products it returns. Options with none are greyed out or hidden.

Back and Forward step through filters, and a shared link renders filtered on first load.
Filters live in the URL and survive a refresh.
Filtering inside a category stays inside it.
Facets and results cached, cleared when a product changes.
Cache keys include language and currency for WPML and Polylang.
Vertical or horizontal layout, usable on phones.
Filters for query arguments, cache keys and debounce.
No. In automatic mode the filter offers only the facets the products in view actually have. You can still exclude any you never want.
Add the [jazi_product_filter] shortcode to a page, or the Jazital Product Filter widget to a shop sidebar.
Yes, plus categories, tags, custom taxonomies, stock status, on sale and custom fields.
Choosing them would return no products in the current view. You can hide them instead.
Yes. The archive is kept as context, so filtering in a category stays in that category.
Yes. The URL updates as filters change, and a shared link loads already filtered.
Yes. Results use the object cache when available and fall back to transients.