🎉 USE O CUPOM FIM.DE.SEMANA.FULL | 20% OFF acima de R$ 100,00

Como corrigir os Data Stores do JetEngine que não salvam dados do usuário no WordPress

Time Full Services Time Full Services
Tipo Page Builders
Nome do erro Data Stores do JetEngine não salvam os dados do usuário EN: JetEngine Data Stores not saving user data
Severidade Atenção
Descrição O JetEngine Data Stores não salva quando o tipo de armazenamento escolhido é por sessao do navegador (Local Storage ou Cookies) e o visitante troca de dispositivo ou limpa o navegador, ou quando o tipo Users esta em uso mas o visitante não esta logado, fazendo os itens adicionados sumirem ao recarregar a página.

O que é JetEngine Data Stores não salva?

O JetEngine Data Stores e o recurso do JetEngine que permite ao visitante guardar uma colecao pessoal de posts no site, como favoritos, lista de desejos ou itens para comparar. Cada store tem um tipo de armazenamento que define ONDE os itens ficam: Local Storage e Cookies guardam no próprio navegador do visitante, enquanto o tipo Users grava no perfil do usuário logado (na tabela wp_usermeta) e o tipo baseado em banco grava em tabela do site.

A falha de salvar aparece quando esse tipo de armazenamento não combina com o comportamento esperado. Um store em Local Storage parece não salvar porque os itens vivem so naquele navegador e somem ao limpar o cache ou trocar de aparelho. Um store do tipo Users não grava nada quando o visitante esta deslogado, porque não existe usuário ao qual associar os dados. Cache de página sobre a saida dinâmica do store e falhas na chamada AJAX de adicionar o item completam os motivos mais comuns de o JetEngine Data Stores não salvar.

Como identificar

  • O visitante clica no botão de adicionar aos favoritos, o contador atualiza, mas ao recarregar a página o item sumiu do Data Store.
  • Os itens salvos aparecem em um navegador ou dispositivo, mas desaparecem quando o mesmo usuário acessa de outro aparelho ou de uma aba anonima.
  • O usuário faz login e a lista de favoritos volta vazia, mesmo tendo adicionado itens antes em outra sessao.
  • Em páginas com cache ativo, a Listing Grid ou contador do Data Store mostra sempre a mesma quantidade, ignorando adicoes recentes.
  • No console do navegador aparece falha na requisicao admin-ajax.php (resposta 400 ou 403) no momento em que o botão de adicionar ao store e clicado.
Antes de começar: Antes de alterar Store Type, mexer em regras de cache ou liberar o admin-ajax.php no firewall, faça um backup do site (arquivos e banco de dados) ou teste em um ambiente de staging, pois trocar o tipo de armazenamento pode descartar as colecoes já guardadas pelos visitantes.

Como prevenir

  • Escolha o Store Type pensando no objetivo desde o inicio: por navegador (Local Storage ou Cookies) para listas temporarias e por usuário logado quando a colecao precisa seguir a conta entre dispositivos.
  • Sempre exclua do cache de página as URLs que exibem Data Stores dinâmicos, evitando que estado antigo seja servido a todos os visitantes.
  • Quando o store depender de conta, condicione o botão de adicionar a usuários logados para não receber cliques que não tem onde ser salvos.
  • Documente o limite Max Number de cada store e revise quando o uso crescer, para que clientes ativos não percam itens ao bater o teto silenciosamente.

Causa

  • O Store Type esta configurado como Local Storage ou Cookies: os itens ficam guardados apenas no navegador daquele visitante, entao trocar de dispositivo, abrir aba anonima ou limpar o navegador apaga a colecao e da a impressao de que não salvou.
  • O Store Type esta como Users mas o visitante esta deslogado: sem um usuário logado o JetEngine não tem em qual perfil gravar os dados (wp_usermeta), entao a adicao não persiste e o store volta vazio ao recarregar.
  • Um plugin de cache de página (como WP Rocket ou LiteSpeed) esta servindo a saida estática da Listing Grid ou do contador do store, congelando o estado anterior e escondendo os itens recem adicionados.
  • A chamada AJAX de adicionar ao store falha por nonce expirado ou bloqueio de admin-ajax.php por firewall ou WAF, entao o clique no botão não chega a gravar o item no destino configurado.
  • O limite Max Number de itens do store foi atingido: ao bater o teto, novos itens não entram (ou empurram os antigos), dando a impressao de que o item adicionado não foi salvo.

Como resolver

  1. Confirme o Store Type adequado ao comportamento esperado: Abra a configuração do Data Store no JetEngine e verifique o campo Store Type. Se você espera que a lista siga o usuário entre dispositivos, ela precisa estar atrelada a conta, não ao navegador. Local Storage e Cookies são por navegador e não acompanham o usuário em outro aparelho.
    Painel WP -> JetEngine -> Data Stores -> abra o store
    Localize o campo Store Type
    Para colecao por dispositivo: Local Storage ou Cookies
    Para colecao que segue a conta entre dispositivos: tipo baseado em usuário logado
  2. Exija login quando o store for por usuário: Se o store grava no perfil do usuário, um visitante deslogado não tem onde os dados serem salvos. Restrinja o botão de adicionar a usuários logados ou mostre um aviso de login, para que a adicao so ocorra quando houver um usuário valido associado.
    Painel WP -> Aparencia ou Templates -> abra o template com o botão do store
    Aplique Dynamic Visibility ou condicao 'usuário logado' ao botão de adicionar
    Para visitantes deslogados, exiba um link de login no lugar do botão
  3. Exclua a página do cache para o store dinâmico: O Data Store muda por visitante, entao a página que o exibe não pode ser entregue do cache estático. Adicione a URL a lista de exclusoes do plugin de cache e limpe o cache existente para que o estado atual do store seja lido a cada acesso.
    Painel WP -> abra as configurações do plugin de cache (ex.: WP Rocket -> Avancado)
    Adicione a URL da página do store em Nunca armazenar em cache (URLs)
    Salve e clique em Limpar cache
  4. Diagnostique a falha de AJAX no clique de adicionar: Abra o console do navegador e clique no botão de adicionar para ver se a requisicao admin-ajax.php retorna erro. Resposta 403 costuma ser firewall ou WAF bloqueando, e 400 com nonce invalido indica página cacheada com nonce velho. Libere o admin-ajax.php e desative o cache na página para renovar o nonce.
    Abra o navegador -> tecle F12 -> aba Network
    Clique no botão de adicionar ao store e observe a chamada admin-ajax.php
    Se 403: libere admin-ajax.php no firewall ou WAF
    Se 400 (nonce): garanta que a página não esta sendo entregue do cache
  5. Reveja o limite Max Number do store: Volte a configuração do Data Store e confira o campo de quantidade maxima de itens. Se o limite já foi atingido, eleve o número ou aceite que itens antigos são substituidos, para que novas adicoes não pareçam falhar ao bater o teto.
    Painel WP -> JetEngine -> Data Stores -> abra o store
    Localize o campo Max Number (quantidade maxima de itens)
    Aumente o valor conforme a necessidade e salve
PHP
<?php
// Exclui a pagina que exibe um JetEngine Data Store do cache do WP Rocket,
// para o estado por visitante nao ser servido estatico (favoritos somem).
add_filter( 'rocket_cache_reject_uri', 'full_jetengine_store_no_cache' );
function full_jetengine_store_no_cache( $uris ) {
    // Ajuste para o caminho real da pagina que mostra o store.
    $uris[] = '/minha-lista-de-favoritos/';
    return $uris;
}

// Garante que o botao de adicionar ao store por usuario so apareca logado.
add_filter( 'jet-engine/data-stores/can-use-store', 'full_jetengine_store_require_login' );
function full_jetengine_store_require_login( $can_use ) {
    return is_user_logged_in() ? $can_use : false;
}

Perguntas frequentes

Por que o JetEngine Data Stores não salva os itens ao recarregar a página
Na maioria das vezes o Store Type esta como Local Storage ou Cookies, que guardam a colecao apenas no navegador daquele visitante, ou esta como Users com o visitante deslogado. Ajuste o tipo de armazenamento ao comportamento que você espera e exija login quando o store for por usuário.
Qual a diferenca entre Local Storage, Cookies e store por usuário no JetEngine
Local Storage e Cookies guardam os itens no próprio navegador do visitante, entao a lista não segue a conta em outro dispositivo. O tipo baseado em usuário grava no perfil do usuário logado, fazendo a colecao acompanhar a conta em qualquer aparelho onde ele faca login.
O visitante precisa estar logado para o Data Store salvar
Depende do Store Type. Para stores por navegador (Local Storage ou Cookies) o login não e necessário. Para o store atrelado ao usuário o login e obrigatório, pois sem um usuário não ha perfil onde gravar os dados e a adicao não persiste.
O cache pode fazer o JetEngine Data Stores parecer vazio
Sim. Se um plugin de cache entrega a saida estática da Listing Grid ou do contador do store, o estado fica congelado e adicoes recentes não aparecem. Exclua a URL da página do cache e limpe o cache para que o store seja lido a cada acesso.
Por que a lista de favoritos some quando o usuário troca de dispositivo
Porque o store esta usando Local Storage ou Cookies, que vivem so no navegador onde os itens foram adicionados. Para a lista acompanhar a pessoa em qualquer aparelho, use um store atrelado ao usuário logado, que grava no perfil da conta.
O que significa o erro 403 no admin-ajax.php ao adicionar ao store
Indica que a requisicao de adicionar o item foi bloqueada, geralmente por um firewall ou WAF filtrando o admin-ajax.php. Libere esse endpoint na configuração do firewall para que o clique no botão chegue a gravar o item no Data Store.
Existe um limite de itens no JetEngine Data Store
Sim. O store tem o campo Max Number que define a quantidade maxima de itens guardados. Ao atingir o teto, novas adicoes deixam de entrar ou substituem itens antigos, o que pode parecer que o item não foi salvo. Aumente o limite se precisar de mais itens.

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