Display Selected Terms
-
Hi there,
i want to use the feature for “quick-deselect-d4eeace” class in the settings.
I have activated the option and i tried multiple options:
– add the class to the filter widget
– add the class to the elementor loop grid widget
– add new html element with <div class=”quick-deselect-d4eeace”></div>
– add the class to the containerNone of the above is printing any pill or some active filter. What did I do wrong?
Thanks for your help and the great plugin!
Best, Tom
-
Hi Tom (@tommyd17),
The “quick-deselect-*” classes are designed to be used on widgets that normally renders visible content. The easiest and most flexible option is a Heading widget, since it lets you control the HTML tag used for the quick deselect pills.
The part that usually causes confusion is that Elementor no longer renders completely empty widgets. If a widget has no initial content, it won’t display on the page, and the plugin has nothing to attach the pills to.
To make it work reliably, you can follow these steps:
- Add a Heading or Text Editor widget
- Important: Add some initial content to it (or just an empty space using
, to start visually empty) - Add the “quick-deselect-xxxxxx” class to that widget
Elementor will render the widget, and once filters become active, the pills will be displayed automatically. You can also style the pills directly using the Heading or Text Editor widget style settings.
Hope that clears things up. Let me know if you need any further assistance.
Best,
DaraHi Dara,
awesome – that worked. Sorry for the confusion but thats a quite tricky setup to follow for it to work 🙂
Another question: is it possible that after a filter applies it also gets added as URL Paramter? So when refreshing the page, or going back the filter adjusts? Would be great for UX.
One more: Is there an option to show a loading icon when clicking on a filter? Because currently I can click and it takes about 0,5-1 sec for the loop to update (which is ok, if it shows some kind of overlay?) I also checked changes in the dom, but those only happen once the filter is sucessfully applied.
Thanks a lot,
TomHi Tom,
Glad that worked. I’ll admit that the special filter classes can be tricky to use, and I’ll be working on improving the messaging to make their usage clearer.
Regarding your other questions, you can trigger a filter via the URL using ?results=filter-XXXXXXX (replace XXXXXXX with the filter ID found at the bottom of the additional options). Once applied, interacting with the filter will automatically update the URL.
About the loading indicator, there’s a built-in loader, but it’s very discreet. For Elementor Pro widgets, it simply reduces the opacity of the post container. You can style it differently using the
.loador.filter-initializedclasses, which are applied while the filter is processing the query. If the results take a little too long to appear, you can tweak options in the “Performance Settings” section to adjust how the filter queries new posts.Hope this helps!
Regards,
DaraHi there,
?results=filter-XXXXXXX is working, but is there an option to enable it per default anytime a filter is rendered?
For example I have /shop/?results=filter-0758ba5 and when I set a filter it updates to /shop/?results=filter-0758ba5&pa_schutzklasse=94&pa_schutzart=97
But when a user opens up /shop via menu the query string is not added, and then when i add the filter its not added. Do you provide some JS/PHP code snippet to add this anytime a filter is set? For example: /shop/?pa_schutzklasse=94&pa_schutzart=97This way we would always have shareable links!
I saw both
.loador.filter-initializedclasses on my website. But the wait time is happening before that.
You can try it on my staging here:
https://bbh7s6q.myrdbx.io/produkte/?results=filter-0758ba5&pa_schutzklasse=94&pa_schutzart=97&pa_spd-typ=96%2C95User: rb
pw: doppelnWould be great if you could instantly add those classes on click
Hi Tom,
At the moment, ?results=filter-XXXX needs to be added manually, so users can decide if they want to use this feature. There is no global option to force this by default. This is intentional to avoid conflicts when multiple filters are present on the same page. For now, the recommended approach is still to link to the page with ?results=filter-XXXX already present if you want fully shareable URL.
The short delay you notice before .load or .filter-initialized is caused by the debounce mechanism. This prevents excessive AJAX calls while the user is still interacting with the form.
At the moment, I do not plan to change this behavior globally, but you can add your own class on interaction if you want visual feedback straight away.
// Add class while filter widget is being interacted with $(document).on('change keydown input click', '.elementor-widget-filter-widget', function () { const $filterWidget = $(this); // Mark the filter widget itself. If not needed it can be commented out. $filterWidget.addClass('bpfwe-awaiting-input'); // Mark the targeted post widget if specified. const targetSelector = $filterWidget.find('.filter-container').data('target-post-widget'); if (targetSelector) { const $postWidget = $(targetSelector); if ($postWidget.length) { $postWidget.addClass('bpfwe-awaiting-input'); } } // Optional: auto-remove after 700ms so the class is temporary setTimeout(() => { $filterWidget.removeClass('bpfwe-awaiting-input'); if (targetSelector) $(targetSelector).removeClass('bpfwe-awaiting-input'); }, 700); });This script will gives you instant feedback on click/input. In this case, the added class would be
.bpfwe-awaiting-inputand it would be auto removed after 700ms.Please let me know if you need further assistance.
Regards,
Dara
You must be logged in to reply to this topic.