Ao analisar o Analytics, é comum encontrar muitas visitas à página de checkout, mas bem menos à página de pedido concluído. Isso pode acontecer por vários motivos, mas um deles é especialmente fácil de evitar: o cliente não sabe se o WooCommerce está processando o pedido corretamente.
Alguns gateways de pagamento precisam de vários segundos para validar o pagamento e criar o pedido. Durante esse tempo, o botão continua carregando, mas o WooCommerce nem sempre fornece uma explicação clara. O cliente pode pensar que a página travou, clicar novamente no botão, recarregá-la ou fechá-la antes de o processo terminar.
Neste tutorial, você aprenderá a exibir uma mensagem enquanto o WooCommerce processa um pedido, orientando o cliente a aguardar e não recarregar a página.
Por que vale a pena exibir um aviso durante o pagamento
Quando uma loja leva alguns segundos para concluir um pedido, a falta de informação gera incerteza. Isso é especialmente problemático em compras feitas com conexões lentas ou quando o gateway de pagamento precisa se comunicar com serviços externos.
Uma mensagem como esta deixa claro que o processo continua:
Aguarde enquanto processamos seu pedido
Não feche nem recarregue esta página.
O aviso não faz o WooCommerce processar o pagamento mais rapidamente, mas melhora a experiência de compra e reduz a possibilidade de o cliente interromper o pedido acidentalmente.
Snippet para exibir uma mensagem enquanto o WooCommerce processa um pedido
O código a seguir exibe uma janela sobreposta depois que o cliente clica no botão para fazer o pedido.
/**
* Exibe uma mensagem enquanto o WooCommerce processa o pedido.
*
* A mensagem aparece somente quando o formulário é válido.
*
* Compatível com:
* - Checkout em blocos do WooCommerce
* - Checkout clássico do WooCommerce
*/
add_action( 'wp_footer', function () {
// Carregar somente na página de checkout.
if (
! function_exists( 'is_checkout' ) ||
! is_checkout() ||
is_order_received_page()
) {
return;
}
?>
Aguarde enquanto processamos seu pedido
Não recarregue nem feche esta página.
O snippet funciona tanto com o checkout em blocos do WooCommerce quanto com o checkout clássico. Quando o processamento começa, ele exibe uma sobreposição com um indicador de carregamento e uma mensagem para o cliente.
Se o WooCommerce detectar um campo incompleto, termos não aceitos ou qualquer outro erro de validação, o aviso desaparecerá automaticamente para que o cliente possa corrigir as informações.
Como adicionar o código ao WordPress
Você pode instalar o snippet usando um plugin de fragmentos de código, como o Code Snippets, sem modificar diretamente os arquivos do tema.
Crie um novo snippet, cole o código completo, salve as alterações e ative-o para que seja executado na parte pública do site. Se você usar outro sistema para adicionar PHP personalizado, certifique-se de que o código não seja carregado apenas na área de administração.
Antes de usá-lo em uma loja ativa, sempre faça um pedido de teste.
O que o cliente verá durante o processamento
Depois de clicar no botão de pagamento, o cliente verá o aviso sobreposto enquanto o WooCommerce cria e processa o pedido. Durante esse período, será solicitado que ele não feche nem recarregue a página.
Se o pedido for concluído corretamente, o WooCommerce redirecionará o cliente para a página de confirmação. Se ocorrer algum erro, o aviso será fechado para que ele possa revisar o checkout e tentar novamente.
Esse comportamento ajuda a evitar cliques repetidos e transmite mais confiança durante uma das etapas mais delicadas de uma compra online.
Como personalizar o aviso
No próprio snippet, você pode alterar facilmente o título, o texto e as cores para adaptá-los ao design da sua loja. Não é necessário modificar o funcionamento para fazer essas alterações visuais.
É recomendável usar uma mensagem curta e tranquilizadora. O objetivo é que o cliente entenda imediatamente que o pedido está sendo processado e que deve manter a página aberta.
Como verificar se está funcionando corretamente
Abra a loja em uma janela anônima, adicione um produto ao carrinho e conclua o checkout como um cliente faria. Ao clicar no botão para fazer o pedido, o aviso deverá aparecer e permanecer visível até que o WooCommerce mostre a confirmação.
Teste também o formulário deixando um campo obrigatório vazio ou sem aceitar os termos. Nesse caso, o aviso deverá fechar para permitir a correção do erro.
Por fim, verifique o processo tanto no computador quanto no celular e, se a loja oferecer vários gateways, faça um teste com cada um deles.
Uma pequena melhoria que pode evitar pedidos abandonados
Nem todo abandono de checkout tem uma solução técnica simples. No entanto, quando o problema é a incerteza durante o processamento, uma mensagem clara pode fazer uma diferença importante.
Exibir uma mensagem enquanto o WooCommerce processa um pedido não reduz o tempo real de espera, mas melhora a percepção do processo. O cliente sabe que a loja está trabalhando, entende que precisa aguardar e tem menos motivos para fechar ou recarregar a página.
É uma pequena alteração, compatível com os principais tipos de checkout do WooCommerce e especialmente útil em lojas onde o pagamento leva vários segundos para ser concluído.
Perguntas frequentes
O aviso funciona tanto com o checkout em blocos quanto com o checkout clássico do WooCommerce?
Sim. O código foi preparado para detectar tanto o botão do checkout em blocos do WooCommerce quanto o botão do checkout clássico. Antes de usá-lo em uma loja ativa, é recomendável fazer um pedido de teste com a configuração específica do site.
Este snippet faz o WooCommerce processar os pedidos mais rapidamente?
Não. O snippet não acelera o servidor nem o gateway de pagamento. Sua função é informar ao cliente que o pedido está sendo processado, reduzir a incerteza e evitar que ele recarregue a página ou clique várias vezes no botão enquanto aguarda.
O que acontece se faltar um campo obrigatório ou se os termos e condições não forem aceitos?
O código aguarda a validação do formulário pelo WooCommerce. Se faltar uma informação obrigatória, a forma de pagamento for inválida ou os termos não tiverem sido aceitos, o aviso será ocultado para que o cliente possa corrigir o erro antes de fazer o pedido novamente.
É possível personalizar a mensagem, as cores e o indicador de carregamento?
Sim. Você pode modificar o título, o texto secundário, o fundo, a janela, a tipografia e a cor do indicador de carregamento. Os principais pontos estão identificados por comentários para que você possa adaptar o aviso ao design da sua loja.
É necessário modificar o arquivo functions.php para instalar o código?
Não. Você pode instalá-lo usando o plugin gratuito Code Snippets, sem editar os arquivos do tema. Também é possível adicioná-lo ao arquivo functions.php de um tema filho caso prefira gerenciar o código manualmente.
A mensagem é compatível com todas as formas de pagamento?
O aviso não depende diretamente de um gateway específico, por isso pode funcionar com cartão, PayPal, transferência bancária e outras formas de pagamento. Ainda assim, alguns gateways usam redirecionamentos ou validações próprias. Portanto, é recomendável testar todas as formas de pagamento disponíveis antes de publicar as alterações.
