Como corrigir o filtro de produtos do WooCommerce no JetSmartFilters
O que é o Product Filter do WooCommerce no JetSmartFilters?
O Product Filter do WooCommerce no JetSmartFilters e o conjunto de widgets de filtro (Checkboxes, Select, Range) que o usuário aplica numa página de loja para reduzir a lista de produtos por categoria, atributo ou preco. Cada widget de filtro precisa declarar PARA QUEM ele filtra: o campo ‘This filter for’ define o provedor (por exemplo ‘WooCommerce Archive’, ‘JetWooBuilder Products Grid’ ou ‘JetEngine Listing Grid’) e o Query ID liga o filtro a uma grade específica daquela página. Quando esse provedor ou esse Query ID não batem com a query que de fato renderiza os produtos, o filtro ‘roda’ mas não mexe na vitrine: a selecao e enviada, porém para uma consulta que ninguem esta exibindo.
Como identificar
- O usuário marca uma categoria ou atributo no filtro, a página recarrega ou faz AJAX, mas a grade de produtos continua exatamente a mesma.
- O contador de produtos não muda e nenhum item some, mesmo aplicando filtros que deveriam reduzir muito a lista.
- O filtro funciona numa Listing Grid de teste mas não na página real da loja (shop), ou vice-versa.
- No console do navegador aparece a resposta AJAX de ‘jet-smart-filters’ com itens, mas o HTML visivel da loja não e trocado.
- Filtros de atributo (cor, tamanho) aparecem vazios ou sem opções para escolher.
Como prevenir
- Defina o mesmo provedor ‘This filter for’ em todos os widgets de filtro de uma página antes de publicar, sempre igual ao widget que renderiza os produtos
- Use Query ID identico no filtro e na grade apenas quando houver mais de uma grade na mesma página; fora disso, deixe ambos em branco
- Crie atributos de produto como taxonomia global em Produtos -> Atributos para que os filtros por cor, tamanho e marca tenham termos disponiveis
- Após editar qualquer filtro, teste a loja como visitante anonimo e confira se a grade realmente muda ao aplicar a selecao
Causa
- Provedor errado no campo 'This filter for': o filtro aponta para 'JetEngine Listing Grid' enquanto a loja usa a archive padrão do WooCommerce, entao o filtro atualiza uma grade que não existe naquela página.
- Query ID divergente entre o widget de filtro e a grade de produtos: o filtro tem Query ID preenchido e a Products Grid esta vazia (ou com outro valor), quebrando o pareamento que diz qual grade recarregar.
- Toggle do content widget desligado em Crocoblock -> JetPlugins Settings -> JetSmartFilters -> General Settings, deixando o provedor (ex.: WooCommerce Archive ou JetWooBuilder) indisponivel para o filtro.
- Indexer desativado em JetSmartFilters -> Settings -> Indexer Settings: sem indexação os filtros de taxonomia e atributo não calculam contagem nem aplicam o recorte nos produtos.
- Apply type 'Page reload' sem o toggle 'Show apply button' ligado, ou 'Apply on' apontado para outra acao: a selecao fica registrada mas nunca dispara a nova query da loja.
- Atributo de produto criado como atributo custom do produto em vez de taxonomia global em Produtos -> Atributos, entao o filtro por atributo não tem termos para filtrar.
Como resolver
- Confirme qual widget monta a loja: abra a página da loja no editor e identifique se os produtos vem da archive padrão do WooCommerce (tema classico), de uma Products Grid do JetWooBuilder ou de uma Listing Grid do JetEngine. O provedor do filtro precisa ser exatamente esse.
- Acerte o provedor em 'This filter for': em cada widget de filtro, abra Content e ajuste o dropdown 'This filter for' para o provedor que você identificou no passo 1, salvando o widget.
- Pareie o Query ID dos dois lados: se você usa Query ID, ele deve ser identico no widget de filtro e na grade de produtos. Se não precisa segmentar várias grades na mesma página, deixe os dois em branco para o JetSmartFilters parear automaticamente.
loja-produtos - Habilite o content widget do provedor: no painel, abra Crocoblock e ligue o toggle do provedor usado, para que ele apareca como opção valida no filtro.
Crocoblock -> JetPlugins Settings -> JetSmartFilters -> General Settings - Ligue o Indexer: ative a indexação para que filtros de categoria e atributo calculem contagem e apliquem o recorte nos produtos.
JetSmartFilters -> Settings -> Indexer Settings -> Enable Indexer - Revise Apply type e Apply on: se o Apply type for 'Page reload', ligue o toggle 'Show apply button'; confirme também o campo 'Apply on' para que a selecao dispare a nova query. Depois teste a loja como visitante em aba anonima.
// functions.php do tema filho — registra no log o provedor e o Query ID
// que CADA filtro JetSmartFilters carregou na pagina da loja. Util pra
// flagrar provedor errado ou Query ID divergente sem abrir cada widget.
add_action( 'jet-smart-filters/render/filter-template/end', function ( $args ) {
if ( empty( $args ) || ! is_array( $args ) ) {
return;
}
$provider = isset( $args['content_provider'] ) ? $args['content_provider'] : '(vazio)';
$query_id = isset( $args['query_id'] ) ? $args['query_id'] : '(vazio)';
error_log( sprintf(
'JetSmartFilters: filtro renderizado | provider=%s | query_id=%s',
$provider,
$query_id
) );
}, 10, 1 );














