Como corrigir o JetFormBuilder que não envia formulários
O que é JetFormBuilder não envia formulário?
JetFormBuilder é o plugin de formulários da Crocoblock que envia dados por meio de Post Submit Actions configuradas na aba JetForm de cada formulário. Quando o formulário não envia, ou o navegador trava no botão Enviar (Submit Type AJAX), ou a página recarrega sem rodar a ação, ou a ação Send Email roda mas o e-mail nunca chega. São falhas diferentes com causas diferentes, e tratar tudo como um problema só leva a horas perdidas.
Como identificar
- O botão Enviar fica girando o preloader e nada acontece, sinal de erro no Submit Type AJAX (resposta da requisição admin-ajax.php nunca volta).
- A página recarrega e mostra a mensagem ‘Form successfully submitted.’ mas nenhum e-mail chega na caixa de entrada.
- O formulário exibe ‘reCAPTCHA validation failed’ ou simplesmente bloqueia o envio quando o captcha está ativo.
- No console do navegador aparece um erro 500 ou 403 na chamada para admin-ajax.php com action=jet_form_builder_form_submit.
- A mensagem ‘Required field is empty’ aparece num campo que o usuário acha que preencheu, porque o atributo Form field name está duplicado entre dois campos.
Como prevenir
- Sempre adicione a ação Send Email já na criação do formulário e mande um envio de teste antes de publicar a página.
- Mantenha um plugin SMTP configurado no site para que toda mensagem do WordPress, inclusive a do JetFormBuilder, saia por um canal autenticado.
- Ao instalar plugins de cache ou otimização de JS, exclua o script frontend-forms.js do JetFormBuilder do minify e do combine.
- Use sempre o From Email Address com um endereço do próprio domínio do site para não cair em SPF ou DMARC.
Causa
- A aba JetForm do formulário não tem nenhuma Post Submit Action do tipo Send Email adicionada, então o JetFormBuilder registra o envio mas não dispara nenhum e-mail.
- A ação Send Email está com o campo From Email Address apontando para um domínio diferente do site, e o servidor de e-mail rejeita a mensagem por SPF ou DMARC antes de ela chegar ao destinatário.
- O Submit Type está em AJAX e algum plugin de cache ou minificação de JS quebra o jet-form-builder.js, fazendo a requisição admin-ajax.php nunca completar.
- O captcha (reCAPTCHA v3, hCaptcha ou Turnstile) está com Site Key ou Secret Key trocada entre os campos em JetFormBuilder Settings, e a validação falha silenciosamente no servidor.
- Para reCAPTCHA v3, o Score Threshold em Captcha Settings está acima de 0.5 e está reprovando envios legítimos como se fossem bots.
- O WordPress está usando a função wp_mail nativa sem plugin SMTP, e o host de hospedagem bloqueia a porta de envio, então a ação Send Email roda mas o e-mail nunca sai do servidor.
Como resolver
- Confirme que existe a ação Send Email: Abra o formulário no editor, vá até a aba JetForm e role até Post Submit Actions. Se não houver nenhuma ação Send Email, adicione uma e salve o formulário. Sem essa ação, o envio é registrado mas nenhum e-mail é disparado.
Editor do formulário -> aba JetForm -> Post Submit Actions -> New Action -> Send Email - Ajuste o remetente da ação Send Email: Na ação Send Email, defina o From Email Address com um endereço do mesmo domínio do site e o Mail To como Admin email para o teste. Endereços de domínio externo costumam ser barrados por SPF ou DMARC antes da entrega.
Mail To: Admin email From Email Address: [email protected] - Teste o Submit Type sem cache: Em Form Settings, troque o Submit Type de AJAX para Page Reload e envie de novo. Se funcionar em Page Reload e falhar em AJAX, a causa é o JavaScript do formulário quebrado por cache ou minificação. Exclua o script do JetFormBuilder do cache de JS.
Form Settings -> Submit Type -> Page Reload Excluir do minify/combine: jet-form-builder/assets/js/frontend-forms.js - Revise as chaves do captcha: Em JetFormBuilder Settings, abra Captcha Settings e confira se Site Key e Secret Key estão nos campos certos e batem com o provedor. Para reCAPTCHA v3, baixe o Score Threshold para 0.5 para parar de reprovar envios legítimos.
WP Admin -> JetFormBuilder -> Settings -> Captcha Settings Score Threshold: 0.5 - Force o envio de e-mail por SMTP: Se a ação Send Email roda mas o e-mail não chega, instale um plugin SMTP, configure host, porta e autenticação do seu provedor e mande um e-mail de teste. Isso tira o envio da função wp_mail nativa que muitos hosts bloqueiam.
Instalar plugin SMTP -> configurar host, porta 587 e autenticação Enviar e-mail de teste pelo painel do plugin SMTP
PHP
add_filter( 'jet-form-builder/captcha/v3/threshold', function( $threshold ) {
return 0.4;
} );
add_action( 'jet-form-builder/mail/before-send', function( $mail, $handler ) {
error_log( 'JFB Send Email para: ' . print_r( $mail->get( 'mail_to' ), true ) );
}, 10, 2 );
Perguntas frequentes
Por que o JetFormBuilder não envia formulário mesmo mostrando mensagem de sucesso?
A mensagem de sucesso confirma só que o JetFormBuilder recebeu os dados. Se não houver uma Post Submit Action do tipo Send Email na aba JetForm, nenhum e-mail é disparado, mesmo com o envio aparecendo como concluído.
O formulário envia em Page Reload mas trava em AJAX, o que fazer?
Isso indica que o JavaScript do formulário foi quebrado por cache ou minificação. Exclua o arquivo frontend-forms.js do JetFormBuilder das regras de minify e combine do seu plugin de cache e limpe o cache.
A ação Send Email roda mas o e-mail nunca chega, por quê?
Quase sempre é entrega de e-mail, não o formulário. O WordPress usa a função wp_mail nativa, que muitos hosts bloqueiam. Instale e configure um plugin SMTP e mande um e-mail de teste para confirmar a entrega.
O captcha está bloqueando envios legítimos no JetFormBuilder?
Em Captcha Settings, confirme que Site Key e Secret Key não estão trocadas entre os campos. Para reCAPTCHA v3, baixe o Score Threshold para 0.5, porque valores mais altos reprovam usuários reais como se fossem bots.
Por que aparece erro 500 na chamada admin-ajax.php do formulário?
O erro 500 em admin-ajax.php com action jet_form_builder_form_submit costuma vir de conflito de plugin ou limite de memória PHP. Desative outros plugins um a um e confira o log de erros do PHP para isolar a causa.
Um campo obrigatório acusa vazio mesmo preenchido, como resolver?
Verifique o atributo Form field name de cada campo. Dois campos com o mesmo Form field name fazem o JetFormBuilder sobrescrever um valor pelo outro, e o campo aparece como vazio na validação. Dê um nome único a cada campo.
Preciso do JetFormBuilder PRO para enviar e-mails?
Não. A ação Send Email faz parte da versão gratuita do JetFormBuilder. O plano PRO adiciona ações avançadas como gateways de pagamento e geração de PDF, mas o envio básico de e-mail funciona na versão livre.














