Como corrigir o redirecionamento que não funciona no WPForms
O que é redirecionamento do WPForms?
O redirecionamento do WPForms e definido pela confirmacao do formulário, configurada em Settings e depois Confirmations dentro do construtor. O WPForms oferece três tipos de confirmacao após o envio: Message, que mostra uma mensagem de sucesso no lugar do formulário; Show Page, que leva o visitante a uma página publicada do próprio site ou de volta a página anterior; e Go to URL (Redirect), que envia o visitante para qualquer URL, inclusive externa. Quando o formulário fica na mensagem padrão e nunca leva o usuário para a página de obrigado, o redirecionamento não funcionou.
O WPForms envia o formulário via AJAX por padrão, sem recarregar a página, e e o JavaScript do plugin que dispara o redirect ao receber a resposta de sucesso. Por isso o problema costuma estar em um destes pontos: a confirmacao não esta no tipo de redirecionamento, a URL de destino esta vazia ou mal formada, uma confirmacao condicional anterior venceu a disputa, ou cache e conflitos de script interromperam o envio antes do redirect acontecer.
Como identificar
- Após o envio o formulário exibe a mensagem padrão ‘Thanks for contacting us! We will be in touch with you shortly.’ e nunca redireciona para a página esperada.
- O formulário envia com sucesso e mostra a mensagem de confirmacao, mas o visitante continua na mesma página em vez de ir para a página de obrigado.
- A confirmacao Go to URL foi configurada, porém o redirect aponta para um endereco errado ou retorna 404 após o envio.
- Com várias confirmacoes condicionais, sempre dispara a confirmacao errada e o redirecionamento previsto nunca acontece.
- No console do navegador aparecem erros de JavaScript ao enviar o formulário, e a aba Network mostra a requisicao admin-ajax travada ou sem resposta de sucesso.
Como prevenir
- Sempre que o objetivo for levar o visitante a uma página de obrigado, configure a confirmacao em Go to URL ou Show Page logo na criação do formulário, e não deixe no tipo Message padrão.
- Mantenha a página que contem formulários fora do cache estático, adicionando a URL a lista de páginas nunca cacheadas do plugin de cache e do CDN.
- Ao usar confirmacoes condicionais, documente a ordem das regras e envie um teste para cada cenario antes de publicar, já que a primeira regra que casa vence.
- Atualize WPForms, plugins e tema em staging e valide o envio de um formulário de teste após cada atualização, evitando que um conflito de script quebre o redirect em producao.
Causa
- A confirmacao do formulário esta no tipo Message (padrão) em vez de Go to URL (Redirect) ou Show Page, entao o WPForms apenas exibe a mensagem de sucesso e nunca executa um redirecionamento.
- O campo de URL da confirmacao Go to URL esta vazio ou com a URL mal formada (sem https, com espaco ou domínio digitado errado), fazendo o redirect falhar ou cair em 404.
- Existem várias confirmacoes condicionais e uma regra anterior, avaliada de cima para baixo, foi atendida primeiro e disparou outra confirmacao, parando a verificacao antes de chegar na que tinha o redirecionamento.
- Um plugin de cache de página serve uma versão estática antiga do formulário, com nonce expirado, e o envio AJAX falha sem retornar a resposta de sucesso que dispara o redirect do WPForms.
- Um conflito de JavaScript com outro plugin ou tema quebra o script do WPForms no carregamento, entao o envio AJAX não completa e o redirect, que depende desse script, nunca e executado.
Como resolver
- Confira o tipo da confirmacao do formulário: Abra o formulário no construtor e va em Settings e depois Confirmations. Confirme que o tipo escolhido e Go to URL (Redirect), para enviar a uma URL qualquer, ou Show Page, para levar a uma página publicada do site. Se estiver em Message, o WPForms so mostra a mensagem e nunca redireciona.
Painel WP -> WPForms -> Todos os Formulários -> abra o formulário No construtor: Settings -> Confirmations Em Confirmation Type, selecione 'Go to URL (Redirect)' ou 'Show Page' - Valide a URL de destino do redirecionamento: No tipo Go to URL, preencha a URL completa com https e sem espacos. No tipo Show Page, escolha a página certa no dropdown de páginas publicadas. Abra a URL de destino em outra aba para garantir que ela existe e não retorna 404 antes de salvar.
Em Confirmation Redirect URL, cole a URL completa (ex.: https://seusite.com/obrigado/) No tipo Show Page, selecione a página no dropdown 'Confirmation Page' Abra a URL em outra aba do navegador e confirme que carrega sem 404 Clique em Save para salvar o formulário - Revise a ordem das confirmacoes condicionais: Se o formulário tem mais de uma confirmacao, o WPForms avalia as regras de cima para baixo e dispara a primeira que casar, parando ali. Reordene para que a confirmacao com o redirecionamento certo esteja na posicao correta e teste cada regra com um envio real.
No construtor: Settings -> Confirmations Arraste as confirmacoes para ajustar a ordem de avaliacao (topo vence primeiro) Revise as regras de lógica condicional de cada confirmacao Envie um teste para cada cenario e confirme qual confirmacao dispara - Limpe o cache e exclua a página do formulário do cache: Limpe o cache do plugin de cache e do CDN, depois adicione a página que contem o formulário as páginas nunca cacheadas. Cache de página serve uma versão antiga com nonce expirado e quebra o envio AJAX, impedindo o redirect de disparar.
Limpe todo o cache no painel do seu plugin de cache e do CDN Adicione a URL da página do formulário a lista 'Never Cache URLs' do plugin de cache Recarregue a página do formulário com o cache do navegador limpo e teste o envio - Isole conflito de JavaScript no envio: Se o redirect ainda falha, abra o console do navegador, envie o formulário e veja se ha erro de JavaScript. Desative os outros plugins um a um e troque para um tema padrão, testando o envio a cada passo para achar o que quebra o script do WPForms.
Abra o console do navegador (F12 -> Console) e envie o formulário Painel WP -> Plugins -> desative os demais plugins um a um Painel WP -> Aparencia -> Temas -> ative um tema padrão (ex.: Twenty Twenty-Four) Teste o envio a cada passo até o redirecionamento voltar a funcionar
<?php
// Forca o redirecionamento de um formulario WPForms apos o envio,
// como rede de seguranca quando a confirmacao Go to URL nao dispara.
add_action( 'wpforms_process_complete', 'full_wpforms_force_redirect', 10, 4 );
function full_wpforms_force_redirect( $fields, $entry, $form_data, $entry_id ) {
// Troque 123 pelo ID real do seu formulario (WPForms -> Todos os Formularios).
if ( (int) $form_data['id'] !== 123 ) {
return;
}
$destino = home_url( '/obrigado/' );
// Redirect compativel com o envio AJAX do WPForms.
wpforms()->get( 'process' )->redirect_url = esc_url_raw( $destino );
}














