Request: Dependent Dynamic Filtering + Category-Based Filter Visibility in WOOF
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday. If you have problems with registration ask help on contact us page pleaseIf you not got email within 24~36 business hours, firstly check your spam box, and if no any email from the support there - back to the forum and read answer here. DO NOT ANSWER ON EMAILS [noreply@pluginus.net] FROM THE FORUM!! Emails are just for your info, all answers should be published only here.
The support doesn work on Saturdays and Sundays, so some Friday requests can be answered on Monday.
Quote from pinktoys on October 29, 2025, 17:37Hi Husky Support Team,I’m using the WOOF – Products Filter for WooCommerce [Pro] plugin and it’s working well overall. All of my filters (Product Type, Sub Type, Material, Colour, Size, etc.) are based on global WooCommerce attributes, and AJAX filtering is already enabled.However, I’d like to achieve two advanced behaviours that I can’t find in the current documentation or settings:1. Dependent / Conditional FilteringWhen a user selects a primary filter (for example, Product Type → Vibrator), I’d like the next filters (such as Sub Type, Material, Colour, etc.) to automatically update and show only options relevant to that selection.At the moment, all filter options remain global, even when a user has already chosen a specific product type.2. Category-Based Filter VisibilityI’d like to control which filters appear depending on the active product category.For example:On Vibrators, show Sub Type, Material, Colour, Size.On Lingerie, show Size, Colour, Material.On Massage & Candles, show Type, Material, Brand.Could you please advise:Whether WOOF supports these behaviours natively or through configuration?And if not, is there a custom code snippet or add-on that can enable dependent dynamic filters and category-based visibility?Thanks in advance for your help and for such a solid plugin.Kind regards,Lee
Quote from Alex Dovlatov on October 30, 2025, 11:25Hello Lee
- If I undertood you right you need to redraw filter form aftre user will select something there, it is possible in the widget with enabled option 'Form AJAX redrawing', and if you use shortcode woof with attribute 'ajax_redraw' https://products-filter.com/shortcode/woof
- In this case I sugget custom shortcode, something likee this
add_shortcode('woof_dynamic', function() {
if (!function_exists('woof_shortcode')) {
return '<!-- WOOF plugin not active -->';
}$term = get_queried_object();
if (!$term || !isset($term->taxonomy) || $term->taxonomy !== 'product_cat') {
return do_shortcode('[woof]');//default
}$cat = strtolower($term->slug);
$filters_map = [
'vibrators' => ['sub-type', 'material', 'colour', 'size'],
'lingerie' => ['size', 'colour', 'material'],
'massage-candles' => ['type', 'material', 'brand'],
];if (!isset($filters_map[$cat])) {
return do_shortcode('[woof]');
}$taxonomies = implode(',', $filters_map[$cat]);
return do_shortcode('[woof tax_only="' . esc_attr($taxonomies) . '"]');
});I not tested it, and do not know your taxonomies slug, but logic is show custom set of filters according to what categy page is current
p.s. please in private area of this ticket place actual purchase code
https://share.pluginus.net/image/i20230222134241.png
https://share.pluginus.net/image/i20230222134615.png
https://share.pluginus.net/image/i20230222134511.png
Hello Lee
- If I undertood you right you need to redraw filter form aftre user will select something there, it is possible in the widget with enabled option 'Form AJAX redrawing', and if you use shortcode woof with attribute 'ajax_redraw' https://products-filter.com/shortcode/woof
- In this case I sugget custom shortcode, something likee this
add_shortcode('woof_dynamic', function() {
if (!function_exists('woof_shortcode')) {
return '<!-- WOOF plugin not active -->';
}$term = get_queried_object();
if (!$term || !isset($term->taxonomy) || $term->taxonomy !== 'product_cat') {
return do_shortcode('[woof]');//default
}$cat = strtolower($term->slug);
$filters_map = [
'vibrators' => ['sub-type', 'material', 'colour', 'size'],
'lingerie' => ['size', 'colour', 'material'],
'massage-candles' => ['type', 'material', 'brand'],
];if (!isset($filters_map[$cat])) {
return do_shortcode('[woof]');
}$taxonomies = implode(',', $filters_map[$cat]);
return do_shortcode('[woof tax_only="' . esc_attr($taxonomies) . '"]');
});
I not tested it, and do not know your taxonomies slug, but logic is show custom set of filters according to what categy page is current
p.s. please in private area of this ticket place actual purchase code
https://share.pluginus.net/image/i20230222134241.png
https://share.pluginus.net/image/i20230222134615.png
https://share.pluginus.net/image/i20230222134511.png
Quote from pinktoys on November 1, 2025, 19:04Hi,
Thanks again for your help — the category filters are working correctly on our site.
We now need assistance configuring filters specifically for the WooCommerce Shop page (the main product archive) so we can:
Keep full filter set on product category pages
Show only Categories, Price, Colour on the Shop page
Avoid global shortcode affecting both Shop and category archives
Your previous example for conditional category logic was helpful, but the Shop page needs a different handling since it’s not a product_cat taxonomy.
Can you please guide us on the recommended Husky method to load a separate filter configuration only on the Shop page, without affecting category archives?
Thanks in advance — looking forward to your guidance.
Hi,
Thanks again for your help — the category filters are working correctly on our site.
We now need assistance configuring filters specifically for the WooCommerce Shop page (the main product archive) so we can:
Keep full filter set on product category pages
Show only Categories, Price, Colour on the Shop page
Avoid global shortcode affecting both Shop and category archives
Your previous example for conditional category logic was helpful, but the Shop page needs a different handling since it’s not a product_cat taxonomy.
Can you please guide us on the recommended Husky method to load a separate filter configuration only on the Shop page, without affecting category archives?
Thanks in advance — looking forward to your guidance.
Quote from Alex Dovlatov on November 3, 2025, 13:24Hello Lee
I hope I undertood you right, you just need to apply conditions for the shop page, and here it is code example:
add_shortcode('woof_dynamic', function() {
if (!function_exists('woof_shortcode')) {
return '';
}if (is_shop() && !is_product_category() && !is_product_tag()) {
return do_shortcode('[woof tax_only="product_cat,pa_colour" by_price="1"]');
}$term = get_queried_object();
if ($term && isset($term->taxonomy) && $term->taxonomy === 'product_cat') {
$cat = strtolower($term->slug);$filters_map = [
'vibrators' => ['sub-type', 'material', 'colour', 'size'],
'lingerie' => ['size', 'colour', 'material'],
'massage-candles' => ['type', 'material', 'brand'],
];if (isset($filters_map[$cat])) {
$taxonomies = implode(',', $filters_map[$cat]);
return do_shortcode('[woof tax_only="' . esc_attr($taxonomies) . '"]');
}
}return do_shortcode('[woof]');
});Important: You need to replace pa_colour with the correct slug of their color attribute (for example, pa_color or whatever they call it).
If you using widgets, you can place shortcodes in usual text widgets and write code conditions for showing there, but you need firstly install this plugin https://wordpress.org/plugins/widget-logic/ or this one https://github.com/realmag777/Show-WordPress-Widget-by-Logic
Welcome ...
Hello Lee
I hope I undertood you right, you just need to apply conditions for the shop page, and here it is code example:
add_shortcode('woof_dynamic', function() {
if (!function_exists('woof_shortcode')) {
return '';
}
if (is_shop() && !is_product_category() && !is_product_tag()) {
return do_shortcode('[woof tax_only="product_cat,pa_colour" by_price="1"]');
}
$term = get_queried_object();
if ($term && isset($term->taxonomy) && $term->taxonomy === 'product_cat') {
$cat = strtolower($term->slug);
$filters_map = [
'vibrators' => ['sub-type', 'material', 'colour', 'size'],
'lingerie' => ['size', 'colour', 'material'],
'massage-candles' => ['type', 'material', 'brand'],
];
if (isset($filters_map[$cat])) {
$taxonomies = implode(',', $filters_map[$cat]);
return do_shortcode('[woof tax_only="' . esc_attr($taxonomies) . '"]');
}
}
return do_shortcode('[woof]');
});
Important: You need to replace pa_colour with the correct slug of their color attribute (for example, pa_color or whatever they call it).
If you using widgets, you can place shortcodes in usual text widgets and write code conditions for showing there, but you need firstly install this plugin https://wordpress.org/plugins/widget-logic/ or this one https://github.com/realmag777/Show-WordPress-Widget-by-Logic
Welcome ...
Quote from pinktoys on November 4, 2025, 08:26Hi,
Thanks for this, I got it working.
Thanks again
Lee
Hi,
Thanks for this, I got it working.
Thanks again
Lee
Quote from Alex Dovlatov on November 4, 2025, 12:55Hello Lee
Welcome :)
Hello Lee
Welcome :)