🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o filtro de produtos do WooCommerce no JetSmartFilters

Time Full Services Time Full Services
Tipo WooCommerce
Nome do erro JetSmartFilters não filtra produtos do WooCommerce EN: JetSmartFilters not filtering WooCommerce products
Severidade Grave
Descrição O Product Filter do WooCommerce no JetSmartFilters não filtra produtos quando o provedor escolhido em 'This filter for' ou o Query ID do widget de filtro não apontam para a mesma query que monta a grade da loja. Sem esse pareamento, o filtro envia a busca para um lugar diferente do que exibe os produtos, e a vitrine continua igual.

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

  1. 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.
  2. 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.
  3. 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
  4. 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
  5. 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
  6. 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.
PHP
// 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 );

Perguntas frequentes

Apliquei o filtro e a grade de produtos não muda. Por onde comeco?
Comece pelo campo 'This filter for' do widget de filtro. Ele precisa apontar para o mesmo provedor que renderiza os produtos na página: archive padrão do WooCommerce, Products Grid do JetWooBuilder ou Listing Grid do JetEngine. Provedor errado e a causa mais comum de o filtro rodar sem mexer na vitrine.
O que e o Query ID e quando preciso preencher?
Query ID e um texto curto que liga um filtro a uma grade específica. So e necessário quando ha mais de uma grade na mesma página e você precisa dizer qual delas o filtro deve atualizar. Se houver uma única grade, deixe o Query ID em branco nos dois lados para o pareamento ser automático.
Meus filtros de atributo aparecem vazios, sem opções. Por que?
Geralmente porque o atributo foi criado como atributo personalizado do produto, e não como taxonomia global. Crie o atributo em Produtos -> Atributos do WooCommerce e associe os termos aos produtos; assim o filtro por atributo passa a ter opções para exibir e filtrar.
Preciso ligar o Indexer do JetSmartFilters?
Sim, para filtros de categoria e atributo em loja. O Indexer e quem calcula a contagem de itens e aplica o recorte por taxonomia. Com ele desativado, o filtro pode marcar a opção mas não reduzir a lista. Ative em JetSmartFilters, na aba Settings, em Indexer Settings.
Escolhi 'Page reload' e o filtro não dispara nada. O que falta?
Quando o Apply type e 'Page reload', e preciso ligar o toggle 'Show apply button' para o usuário ter como confirmar a selecao. Sem o botão, a escolha fica registrada mas nunca recarrega a loja. Confira também o campo 'Apply on' do widget.
Funciona numa página de teste mas não na loja real. Por que?
A página de teste e a loja costumam usar provedores diferentes: a loja roda a archive padrão do WooCommerce e o teste usa uma Listing Grid. Como o filtro guarda o provedor configurado, ele atualiza a grade certa apenas na página cujo provedor bate. Ajuste o 'This filter for' para o provedor da loja real.
A resposta AJAX vem com produtos mas a tela não troca. O que isso indica?
Indica pareamento quebrado: o filtro consulta uma query, mas o trecho de HTML que ele tenta substituir não corresponde a grade visivel. Quase sempre e Query ID divergente ou provedor que não bate com a grade renderizada. Alinhe provedor e Query ID dos dois lados.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes