Como corrigir a lógica condicional que não funciona no WPForms
O que é o WPForms conditional logic que não funciona?
A lógica condicional do WPForms (Smart Logic) mostra ou esconde campos, dispara notificações e troca confirmações conforme o que o visitante escolhe no formulário. Quando ela não funciona, a regra existe no construtor mas não reage: o campo fica sempre visível, some na hora errada, ou a notificação condicional não sai. Na grande maioria dos casos não é bug do plugin, e sim a regra montada com o campo-fonte errado, com um operador de comparação que o tipo do campo não aceita, ou com grupos AND/OR que entram em conflito. O conserto é revisar a regra na aba Smart Logic campo a campo.
Como identificar
- O campo configurado para aparecer só em certa escolha fica visível o tempo todo, ignorando a seleção do visitante.
- A regra existe na aba “Smart Logic” do campo, mas nada muda na visualização do formulário publicado.
- Em campos de múltipla escolha (Dropdown, Checkboxes, Multiple Choice), os operadores “contains” ou “greater than” somem e só restam “is”, “is not”, “empty” e “not empty”.
- Com duas ou mais condições, o campo aparece ou some de forma errada porque os grupos estão em modo “AND” quando deveriam estar em “OR”.
- A notificação ou a confirmação condicional não dispara mesmo quando o visitante preenche o gatilho esperado.
- Em campos de seleção múltipla, a comparação “is” falha quando o visitante marca mais de uma opção ao mesmo tempo.
Como prevenir
- Teste todo formulário com lógica condicional numa janela anônima antes de publicar, simulando cada caminho de escolha do visitante.
- Escolha o tipo de campo-fonte pensando no operador que vai precisar: campo de texto ou número quando a regra exigir “contains”, “greater than” ou “less than”.
- Evite renomear opções de campos já usados em regras; se renomear, reabra cada regra e reselecione a opção pelo dropdown.
- Documente as regras AND/OR de formulários complexos para não criar condições que se anulam ao adicionar grupos novos.
Causa
- No campo-alvo, a opção "Show" e "Hide" está invertida: a regra esconde quando deveria mostrar (ou o contrário) na aba "Smart Logic".
- O dropdown "Select Field" aponta para o campo errado, então a regra observa um campo que o visitante nem preenche.
- O operador escolhido em "Comparison" é incompatível com o tipo do campo-fonte: campos de escolha (Dropdown, Checkboxes, Multiple Choice) só aceitam "is", "is not", "empty" e "not empty", não "contains" nem "greater than".
- O valor em "Select Choice" não casa exatamente com a opção real do campo (texto digitado à mão divergente da label da opção, ou opção renomeada depois de criar a regra).
- Há vários grupos de condição em "AND" (todas precisam ser verdadeiras ao mesmo tempo) quando o caso pede "OR" via "Add New Group", e as condições se anulam entre si.
- A regra aponta para um campo de seleção múltipla (vários valores marcados), e a lógica condicional não procura match em campos multivalorados sem uma regra extra para excluir os valores indesejados.
- Um plugin de cache ou de minificação serviu o JavaScript antigo do WPForms, e a página exibida não roda a lógica condicional recém-salva.
Como resolver
- Abra a aba Smart Logic do campo-alvo: no construtor do formulário, clique no campo que deveria aparecer ou sumir, abra o painel de opções do campo e vá até a aba de lógica inteligente. Confirme que a lógica condicional está de fato ligada.
WPForms -> Todos os formulários -> editar formulário Clicar no campo-alvo -> Field Options -> Smart Logic -> Enable Conditional Logic - Corrija o sentido Show/Hide e o campo observado: verifique se a regra está em "Show" ou "Hide" conforme a intenção, e se o dropdown de seleção de campo aponta para o campo que o visitante realmente preenche, não para outro parecido.
Show / Hide -> defina o sentido correto Select Field -> o campo-fonte que o visitante preenche - Use um operador compatível com o tipo do campo: em campos de escolha (Dropdown, Checkboxes, Multiple Choice) só existem quatro operadores. Se você precisa de "contains" ou "greater than", o campo-fonte tem de ser de texto ou número, não de escolha.
Comparison (campo de escolha): is | is not | empty | not empty Comparison (texto/número): contains | greater than | less than | starts with - Confira o valor exato em Select Choice: o valor que dispara a regra precisa bater exatamente com a label da opção no campo-fonte. Se você renomeou a opção depois, reabra a regra e selecione a opção de novo pelo dropdown, em vez de deixar o texto antigo.
Select Choice -> reescolher a opção exata pelo dropdown - Ajuste a relação AND/OR entre as condições: se você tem mais de uma condição, decida se todas precisam ser verdadeiras ao mesmo tempo (AND, no mesmo grupo) ou se qualquer uma basta (OR, em grupos separados). Para OR, separe as condições em grupos.
Mesmo grupo = AND (todas verdadeiras) Add New Group = OR (qualquer grupo verdadeiro) - Limpe o cache e teste o formulário publicado: salve o formulário, limpe o cache do site e do plugin de cache, e abra a página real numa aba anônima. Preencha o campo-fonte e confirme que o campo-alvo aparece e some no momento certo.
Salvar formulário -> limpar cache do site e do CDN Abrir a página em janela anônima e testar o gatilho
// functions.php do tema filho — garante um valor padrao num campo oculto pela
// logica condicional, para a comparacao nunca chegar vazia ao processar o envio.
// Troque 123 pelo ID do formulario e 7 pelo ID do campo (veja no construtor).
add_filter( 'wpforms_process_before', function ( $entry, $form_data ) {
if ( (int) $form_data['id'] !== 123 ) {
return;
}
if ( empty( $entry['fields'][7] ) ) {
$entry['fields'][7] = 'nao_informado';
}
return $entry;
}, 10, 2 );














