Como corrigir o JetCompareWishlist que não adiciona produtos no WordPress
O que é JetCompareWishlist que não adiciona produtos?
O JetCompareWishlist é o plugin da Crocoblock que adiciona dois recursos a lojas WooCommerce e listagens JetEngine: comparar produtos lado a lado e salvar produtos numa lista de desejos. O fluxo funciona assim: o visitante clica no botão Comparar ou Lista de Desejos, o plugin dispara uma requisição AJAX, grava o ID do produto em um cookie no navegador e atualiza o contador. Depois, as páginas dedicadas de comparação e de lista de desejos leem esses cookies e exibem os itens salvos.
O sintoma JetCompareWishlist não adiciona produto aparece quando esse fluxo é interrompido em algum ponto. O botão não tem um produto válido para identificar (porque está fora do loop de listagem), as páginas de destino não foram criadas e atribuídas nas configurações do plugin, ou a requisição AJAX é bloqueada por cache de página, conflito de scripts ou cookies desativados. Em qualquer um desses casos o clique não tem efeito visível: o contador continua em zero e a página de comparação ou de desejos abre vazia.
Como identificar
- O visitante clica no botão Comparar ou Lista de Desejos e nada acontece: o contador continua em zero e o produto não entra na lista.
- A página de comparação ou a página de lista de desejos abre vazia mesmo depois de clicar no botão em vários produtos.
- No console do navegador (F12) aparece um erro na requisição AJAX (admin-ajax.php) ao clicar no botão, ou a requisição retorna status diferente de 200.
- O botão do JetCompareWishlist nem aparece no card do produto, ou aparece mas fica sem reação ao clique.
- O item some da lista assim que a página é recarregada, indicando que o cookie não foi gravado.
Como prevenir
- Defina as páginas de comparação e de lista de desejos nas configurações do JetCompareWishlist logo na instalação, antes de publicar os botões na loja.
- Sempre insira os botões Comparar e Lista de Desejos dentro do loop de produtos ou do template de produto único, nunca soltos em uma seção da página.
- Mantenha as páginas dinâmicas do plugin na lista de exclusão de cache do site para que o AJAX nunca seja servido a partir de HTML estático.
- Atualize WooCommerce, JetEngine e JetCompareWishlist juntos e valide em staging antes de aplicar em produção, acompanhando as mudanças de compatibilidade da Crocoblock.
- Configure o banner de consentimento de cookies para liberar cookies funcionais, já que o plugin depende deles para guardar os itens da lista.
Causa
- O botão Comparar ou Lista de Desejos foi inserido fora de um loop de produtos (Products Loop do WooCommerce, Listing Grid do JetEngine ou template de single product): sem o contexto da listagem o plugin não recebe o ID do produto e o clique não salva nada.
- As páginas de Comparação e de Lista de Desejos não foram criadas e atribuídas em JetCompareWishlist nas Configurações: sem essas páginas de destino definidas o plugin não tem onde exibir os itens e o fluxo de salvar quebra.
- Um plugin de cache de página (WP Rocket, LiteSpeed, W3 Total Cache) está servindo HTML estático e bloqueia a requisição AJAX dinâmica que adiciona o produto, ou guarda em cache a página com o contador zerado.
- Os cookies do navegador estão bloqueados, ou um banner de consentimento LGPD/cookie só libera os cookies após o aceite, impedindo o JetCompareWishlist de gravar o ID do produto no navegador.
- Um conflito de JavaScript com outro plugin ou com a minificação/combinação de scripts (WP Rocket, Perfmatters, Autoptimize) interrompe o script do JetCompareWishlist antes do clique disparar o AJAX.
- O WooCommerce está inativo ou desatualizado em uma loja que usa os botões nos produtos do WooCommerce, então o plugin não encontra o objeto de produto esperado para registrar o item.
Como resolver
- Crie e atribua as páginas de comparação e lista de desejos: Crie uma página para a comparação e outra para a lista de desejos e atribua as duas nas configurações do JetCompareWishlist. Sem as páginas de destino definidas o plugin não tem onde mostrar os itens e o salvar não conclui.
Painel WP -> Páginas -> Adicionar nova: crie 'Comparar produtos' e 'Lista de desejos' Painel WP -> JetCompareWishlist -> Settings (Configurações) Em Compare Page e Wishlist Page selecione as páginas criadas e salve - Coloque o botão dentro de um loop de produtos: Confirme que o botão Comparar ou Lista de Desejos está dentro de um loop de produtos (Products Loop do WooCommerce, Listing Grid do JetEngine ou template de produto único). Fora do loop o botão não recebe o ID do produto e o clique não salva o item.
Edite o template da listagem (Listing Item do JetEngine ou Products Loop do Elementor) Arraste o widget Compare Button ou Wishlist Button para dentro do item do loop Salve o template e recarregue a página de listagem para testar o clique - Exclua as páginas do plugin do cache: Adicione as páginas de comparação e de lista de desejos à exclusão de cache e limpe o cache do site. Cache de página servindo HTML estático bloqueia o AJAX que adiciona o item e congela o contador.
No plugin de cache, abra as regras de exclusão (Never Cache URLs) Adicione as URLs /comparar-produtos/ e /lista-de-desejos/ Limpe todo o cache do site (Purge All) e teste novamente o botão - Libere os cookies e isole conflito de JavaScript: Garanta que os cookies não estão bloqueados pelo banner de consentimento e desative a minificação ou combinação de JavaScript para verificar se um conflito de script trava o clique. O JetCompareWishlist depende de cookies e de seu próprio JS para gravar o produto.
Configure o banner de consentimento para liberar cookies funcionais por padrão Em WP Rocket ou Perfmatters, desative temporariamente Minify/Combine JavaScript Abra o console (F12 -> Console) e recarregue para checar erros de JS ao clicar - Atualize WooCommerce, JetEngine e o JetCompareWishlist: Em lojas WooCommerce, confirme que o WooCommerce está ativo e atualizado, e atualize o JetEngine e o JetCompareWishlist para a versão estável mais recente. Versões defasadas quebram a integração que registra o produto na lista.
Painel WP -> Plugins: confirme WooCommerce ativo e na versão mais recente Painel WP -> Plugins -> Atualizações: atualize JetEngine e JetCompareWishlist Após atualizar, limpe o cache e teste o botão em um produto
<?php
/**
* Exclui as paginas do JetCompareWishlist do cache de pagina.
* Evita que o HTML estatico em cache bloqueie o AJAX que adiciona o produto.
*/
add_filter( 'rocket_cache_reject_uri', 'full_jcw_excluir_cache' );
function full_jcw_excluir_cache( $uris ) {
$uris[] = '/comparar-produtos/(.*)';
$uris[] = '/lista-de-desejos/(.*)';
return $uris;
}
/**
* Garante que o cookie do JetCompareWishlist nao seja
* tratado como estatico pelo cache (mantem a sessao do visitante).
*/
add_filter( 'rocket_cache_dynamic_cookies', 'full_jcw_cookies_dinamicos' );
function full_jcw_cookies_dinamicos( $cookies ) {
$cookies[] = 'jet-cw-compare';
$cookies[] = 'jet-cw-wishlist';
return $cookies;
}














