Скрыть атрибуты фильтра WBW Product Filter если нет товаров через шорткод на странице категорий и главной

Задача: Скрыть атрибуты фильтра если нет товаров выводимого через шорткод на странице категорий и главной

Я вывожу фильтр WBW Product Filter PRO на странице категорий магазина Woocommerce используя фильтрацию только по атрибутам товаров.

Вывожу через плагин Ad Inserter через шорткод [ wpf-filters id=3 ]

У меня в обоих категориях с фильтром показывает все атрибуты (есть атрибут с 1 товаром из 1й категории - фильтр выводит также атрибут во второй со значением 0)

В настройках плагина есть настройка - делать серым пустые категории. но это относится к фильтру если фильтрация по меткам или категориям, а у меня значения атрибута. Т.е. даже не атрибуты а значение одного атрибута.

Вот пример фильтра, который показывает значение которого не должно быть (зачем мне лишние пустые значения в фильтре)

пример фильтра который показывает значение которого не должно быть
пример фильтра который показывает значение которого не должно быть

В настройках фильтра нет возможность скрывать.

Я решил поступить так: Добавим class для элемента списка < li > если внутри него значение кол-ва товаров - 0.
<span class="wpfCount">0</span>

Для этого добавим вот такой скрипт


function addClassToZeroCountItems() {
    document.querySelectorAll('.wpfFilterVerScroll li').forEach(function(li) {
        const countEl = li.querySelector('.sopi.wpfCount');
        if (countEl && countEl.textContent.trim() === '0') {
            li.classList.add('zaplata-pusto');
        } else {
            li.classList.remove('zaplata-pusto'); // на случай, если счётчик изменился
        }
    });
}

// Запускаем после загрузки страницы
document.addEventListener('DOMContentLoaded', addClassToZeroCountItems);

// Также запускаем после AJAX-обновления фильтра (WPF использует jQuery-событие)
if (typeof jQuery !== 'undefined') {
    jQuery(document).on('wpf_ajax_success wpf_filter_loaded', addClassToZeroCountItems);
}

// Опционально: запустить с небольшой задержкой, если фильтр рендерится асинхронно
setTimeout(addClassToZeroCountItems, 500);


и стиль к нашему классу


body .zaplata-pusto {         display: none !important; }

Плагин WBW Product Filter PRO (Автор: WBW )
Сайт плагина: https://woobewoo.com

guest
Закрыть меню