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

Como corrigir a lógica condicional que não funciona no WPForms

Time Full Services Time Full Services
Tipo Outros erros
Nome do erro Lógica condicional não funciona no WPForms EN: WPForms conditional logic not working
Severidade Grave
Descrição Quando o WPForms conditional logic não funciona, um campo continua visível (ou some) ignorando a escolha do visitante. A causa quase sempre é a regra: campo-fonte errado, operador de comparação incompatível com o tipo do campo, ou grupos AND/OR que se anulam. O conserto é auditar a aba Smart Logic.

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

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

Perguntas frequentes

Por que meu campo aparece o tempo todo mesmo com a regra criada?
Quase sempre a regra está em "Hide" quando deveria estar em "Show" (ou o contrário), ou o campo selecionado em "Select Field" não é o que o visitante preenche. Abra a aba Smart Logic do campo-alvo e confira o sentido Show/Hide e o campo observado.
Por que sumiram os operadores contains e greater than na minha regra?
Porque o campo-fonte é de escolha (Dropdown, Checkboxes ou Multiple Choice). Esses campos só aceitam "is", "is not", "empty" e "not empty". Para usar "contains" ou "greater than", o campo-fonte precisa ser de texto ou número.
Qual a diferença entre AND e OR na lógica condicional do WPForms?
Condições no mesmo grupo funcionam como AND: todas precisam ser verdadeiras. Para OR, em que qualquer condição basta, use "Add New Group" e coloque cada condição num grupo separado. Misturar os dois sem cuidado faz as regras se anularem.
A lógica condicional funciona em campos de seleção múltipla?
Funciona, mas com cuidado: a lógica condicional não procura match individual em campos multivalorados. Se o visitante marca várias opções, você precisa de regras extras para excluir os valores que não quer considerar, senão o resultado fica imprevisível.
Por que a regra funciona no construtor mas não no formulário publicado?
Costuma ser cache servindo o JavaScript antigo do WPForms. Salve o formulário, limpe o cache do site, do plugin de cache e do CDN, e teste a página numa janela anônima para garantir que o script atualizado é carregado.
A comparação da lógica condicional diferencia maiúsculas de minúsculas?
Não. As comparações da lógica condicional do WPForms não são sensíveis a maiúsculas e minúsculas. Se a regra não dispara, o problema não é o caso das letras, e sim o operador, o campo selecionado ou o valor escolhido que não casa com a opção real.
Posso usar lógica condicional para enviar notificações diferentes?
Sim. Além de mostrar e ocultar campos, a lógica condicional controla quais e-mails de notificação saem e qual confirmação aparece. A regra é montada nas configurações de Notificações e de Confirmações, com a mesma estrutura de campo, comparação e valor.
Preciso de código para corrigir a lógica condicional?
Na maioria dos casos não: o conserto é revisar a regra na aba Smart Logic. Código só é útil em cenários específicos, como forçar um valor padrão num campo oculto para a regra ter sempre o que comparar e não falhar quando o campo chega vazio ao processamento.

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