Не знаю, поможет ли это кому-нибудь, но напишу то, что сообразил. Решил сделать так: пользователь выбирает нужные фильтры, нажимает на кнопку-submit и отправляется GET-запрос на эту же страницу(страница перезагружается, но уже с GET-переменными в адресной строке). Далее значения переменных выводятся в скрытом блоке. JS забирает эти переменные и исходя из них удаляет со страницы не подходящие товары(которые перед этим были выведены с помощью шорткода products). Данный способ еще не проверил, но в теории все должно работать.