Como corrigir a lógica condicional que não funciona no WPForms
O que é lógica condicional WPForms que não funciona?
A lógica condicional WPForms (aba Smart Logic, opção Enable Conditional Logic) controla, no navegador do visitante, quais campos aparecem ou somem conforme a escolha em um campo gatilho como Dropdown, Multiple Choice ou Checkboxes. Quando ela não funciona, o formulário ignora as regras Show/Hide: campos que deveriam aparecer continuam ocultos, ou campos que deveriam sumir permanecem visiveis, geralmente porque o arquivo wpforms.min.js não foi carregado ou foi alterado por outro plugin.
Como identificar
- O campo configurado com a regra Show ou Hide nunca muda de estado ao selecionar a opção gatilho no formulário publicado.
- No console do navegador aparece o erro Uncaught ReferenceError: wpforms is not defined ou uma falha 404 ao carregar wpforms.min.js.
- A lógica funciona normalmente na previa dentro do construtor (Form Builder), mas não funciona na página real do site.
- Após ativar um plugin de cache ou de otimização, o formulário que funcionava parou de aplicar as regras condicionais.
Como prevenir
- Sempre que ativar ou reconfigurar um plugin de cache, abra um formulário com lógica condicional em aba anonima e confirme que as regras Show e Hide ainda disparam.
- Adicione os caminhos de assets do WPForms a lista de exclusão de JavaScript do cache logo na configuração inicial, antes de publicar formulários complexos.
- Ao renomear ou excluir um campo gatilho, revise todas as regras Smart Logic que apontavam para ele, porque a condicao orfa para de funcionar silenciosamente.
- Evite usar campos do tipo Layout ou Page Break como gatilho de condicao; prefira Dropdown ou Multiple Choice, que são suportados oficialmente.
Causa
- A opção Enable Conditional Logic na aba Smart Logic do campo não esta marcada, ou a regra aponta para um campo gatilho que foi renomeado ou excluido depois de criada.
- Um plugin de cache como WP Rocket ou LiteSpeed Cache esta com Combine JavaScript ou Delay JavaScript Execution ligado e quebra ou atrasa o arquivo wpforms.min.js que executa a lógica.
- O modo Minify JavaScript do plugin de otimização corrompe o script do WPForms, gerando o erro Uncaught ReferenceError: wpforms is not defined no console.
- O campo gatilho usado na condicao e do tipo Layout, Page Break, Entry Preview ou outro campo não suportado pela lógica condicional, entao a regra nunca dispara.
- Um tema ou plugin carrega uma versão antiga ou duplicada do jQuery que entra em conflito com o jquery.confirm que o WPForms usa para avaliar as condicoes.
Como resolver
- Confirme a regra dentro do construtor: Abra o formulário, clique no campo que deveria aparecer ou sumir e va até a aba Smart Logic. Verifique se Enable Conditional Logic esta marcada e se o campo gatilho selecionado em Select Field ainda existe e e do tipo suportado.
WPForms -> Todos os Formulários -> editar formulário -> clicar no campo -> aba Smart Logic -> Enable Conditional Logic - Troque o campo gatilho por um tipo suportado: Se o gatilho era um campo de Layout ou Page Break, recrie a condicao usando um campo suportado como Dropdown, Multiple Choice, Checkboxes ou Single Line Text. A lógica condicional so dispara a partir desses tipos.
Tipos suportados como gatilho: Single Line Text, Dropdown, Multiple Choice, Checkboxes, Email, Number Slider, Rating - Abra o console e identifique o erro de JavaScript: Na página publicada do formulário, abra as ferramentas do navegador na aba Console e recarregue. Se aparecer que wpforms não esta definido ou um 404 no script, o problema e o carregamento do JavaScript, não a regra.
F12 -> aba Console -> recarregar a página (Ctrl+F5) Procurar: Uncaught ReferenceError: wpforms is not defined - Exclua o WPForms da otimização de JavaScript: No plugin de cache, desative a combinacao, o adiamento e a minificacao de JavaScript para os scripts do WPForms. No WP Rocket isso fica em File Optimization; depois limpe todo o cache e teste de novo.
WP Rocket -> File Optimization -> desmarcar Combine JavaScript files WP Rocket -> File Optimization -> Delay JavaScript Execution -> adicionar exclusão: /wpforms/assets/js/ Limpar cache: WP Rocket -> Dashboard -> Clear and preload cache - Force o WPForms a carregar o JavaScript no rodape: Se o conflito de carregamento persistir, ajuste em WPForms a forma de incluir os scripts para que carreguem sem depender da otimização agressiva, e teste o formulário em uma aba anonima com o cache limpo.
WPForms -> Configurações -> Geral -> Carregar Assets -> alternar entre as opções de carregamento
/* functions.php do tema filho: garante que os assets do WPForms
carregam em todas as paginas, evitando que a logica condicional
falhe quando o formulario e inserido via shortcode/bloco. */
add_filter( 'wpforms_global_assets', '__return_true' );
/* Exclusao para WP Rocket: nao adiar/combinar o JS do WPForms.
Cole em wp-rocket-config ou no filtro abaixo (functions.php). */
add_filter( 'rocket_delay_js_exclusions', function( $excluded ) {
$excluded[] = '/wpforms/assets/js/';
$excluded[] = 'wpforms';
return $excluded;
} );














