Checkout do WooCommerce não funciona? Como diagnosticar os erros mais comuns
O checkout é uma das etapas mais críticas de uma loja virtual. Quando apresenta erros, cada minuto pode representar vendas perdidas. Se o botão de finalizar compra trava, a página fica em branco ou o pagamento é recusado sem explicação clara, o impacto é direto no faturamento.
Não existe uma causa única para erros no checkout. O processo de pagamento depende de múltiplas peças funcionando em conjunto — o core do WooCommerce, o tema ativo, os plugins instalados, o gateway de pagamento, a configuração de cache e o servidor de hospedagem. Qualquer dessas camadas pode ser a origem do problema.
Este artigo mostra como identificar a causa de forma estruturada, em 8 camadas de diagnóstico.
Por que o checkout com erros não tem uma resposta única
O ecossistema do checkout
Para entender por que o checkout falha, é preciso entender do que ele é feito. O checkout do WooCommerce não é um componente isolado. Ele é o resultado da interação de diversas camadas:
- Core do WooCommerce: a base que processa pedidos, estoque, impostos e lógica de pagamento.
- Tema: a camada visual que pode incluir overrides de template — arquivos que substituem o comportamento padrão do WooCommerce.
- Plugins ativos: cada extensão adiciona funcionalidade, mas também pode introduzir conflitos. Plugins de pagamento, frete, campos personalizados, segurança e otimização interagem com o checkout.
- Gateway de pagamento: o serviço externo (Stripe, PagSeguro, Mercado Pago, PagBank, etc.) que processa a transação financeira.
- Cache: plugins de cache, cache de servidor e CDN podem interferir no funcionamento dinâmico do checkout.
- Servidor: a versão do PHP, a memória disponível, o banco de dados e a configuração do servidor influenciam diretamente na performance e estabilidade.
Quando o checkout apresenta um erro, a primeira pergunta não é “qual plugin está causando isso?” — é “qual camada está falhando?”. Essa mudança de perspectiva evita tentativas aleatórias e direciona o diagnóstico.
Checkout Block vs. Checkout Clássico
Outro ponto importante: existem duas versões do checkout no WooCommerce, e a diferença entre elas pode influenciar o diagnóstico.
Checkout Clássico é o modelo tradicional, que usa o shortcode [woocommerce_checkout] e templates PHP. É o formato mais comum em temas legados e em lojas que foram criadas antes de 2023.
Checkout Block é o modelo mais recente, que usa blocos do Gutenberg. Os blocos de checkout se tornaram a experiência padrão para novas instalações a partir do WooCommerce 8.3, em novembro de 2023 (documentação oficial). Lojas existentes que já estavam ativas antes dessa versão não foram migradas automaticamente — o checkout em blocos precisa ser ativado manualmente.
Por que isso importa:
- Alguns plugins ainda não são totalmente compatíveis com Checkout Block.
- Overrides de template em temas legados podem não funcionar com o novo checkout.
- O comportamento de AJAX e validação pode ser diferente entre os dois modelos.
Para identificar qual está em uso, acesse a página do checkout no painel do WordPress. Se ela usa o bloco “Finalizar Compra” do Gutenberg, é Checkout Block. Se usa o shortcode [woocommerce_checkout], é o modelo clássico.
Não há recomendação de qual usar neste artigo — o objetivo é diagnosticar o que está ativo na sua loja.
Os sintomas mais comuns e o que cada um indica
Antes de partir para o diagnóstico de checkout com erros, é importante identificar com precisão o que está acontecendo. Cada sintoma aponta para um conjunto diferente de causas possíveis.
Checkout em branco
A página carrega, mas não mostra o formulário de pagamento. Pode exibir um erro 500 ou simplesmente ficar em branco.
O que isso indica: geralmente é um erro PHP fatal que impede o WooCommerce de renderizar o checkout. Pode ser causado por conflito entre plugins, tema com override de template quebrado ou incompatibilidade de versão.
Por onde começar: verificar os logs de erro do PHP (Camada 3 deste guia).
Carregamento infinito
O botão “Finalizar compra” fica girando sem nunca processar. O formulário aparece normalmente, mas a ação não se completa.
O que isso indica: o erro costuma estar na camada de AJAX. Pode ser um conflito de JavaScript, um nonce inválido ou cache interferindo nas requisições assíncronas.
Por onde começar: abrir o console do navegador (F12 > Console) e verificar erros em vermelho. Em seguida, verificar a aba Network para identificar requisições que estão falhando.
Campos ou métodos de pagamento ausentes
A seção de pagamento não aparece, aparece vazia ou mostra apenas parte das opções disponíveis.
O que isso indica: o plugin de pagamento pode estar desativado, com conflito ou configurado incorretamente. Também pode ser cache servindo uma versão antiga da página.
Por onde começar: verificar WooCommerce > Configurações > Pagamentos para confirmar que o gateway está ativo. Testar em navegador anônimo para descartar cache.
Mensagem de validação sem clareza
Erros genéricos como “Ocorreu um erro” ou “Não foi possível processar o pedido” aparecem sem indicar o que está errado.
O que isso indica: pode ser campo obrigatório faltando, validação customizada com problema ou conflito com plugin de campos personalizados.
Por onde começar: tentar o checkout com diferentes dados (outro CPF, outro endereço, outro método de pagamento) para ver se o erro muda. Verificar logs do WooCommerce.
Pagamento recusado pelo gateway
O pedido aparece como “Falhou” ou “Pendente” após a tentativa de pagamento. O cliente pode ver uma mensagem de erro do gateway.
O que isso indica: pode ser credencial de API incorreta ou expirada, ambiente de teste ativo em produção (ou vice-versa), cartão recusado pelo emissor ou problema com 3D Secure.
Importante: nem toda recusa de pagamento é um bug. O gateway pode estar recusando legitimamente por falta de saldo, dados incorretos ou suspeita de fraude. Nesses casos, o problema não está no WooCommerce.
Por onde começar: verificar os logs específicos do gateway de pagamento no painel do serviço (Stripe Dashboard, painel do PagSeguro, etc.). (documentação sobre troubleshooting de pagamentos)
Pedido criado com pagamento pendente ou falho
O pedido aparece no WooCommerce, mas o pagamento não foi confirmado. O status fica como “Pendente” ou “Falho”.
O que isso indica: o gateway pode não estar conseguindo notificar o WooCommerce sobre o resultado do pagamento. Pode ser webhook não processado, URL de retorno configurada incorretamente ou timeout no servidor.
Por onde começar: verificar as notas do pedido (WooCommerce > Pedidos > [pedido] > Notas do pedido) e os logs de webhook no gateway. (documentação sobre status de pedidos)
Retorno ou webhook não processado
O cliente é redirecionado de volta ao site após o pagamento, mas o pedido não é atualizado. O pagamento pode ter sido processado, mas o WooCommerce não recebeu a confirmação.
O que isso indica: a URL de retorno pode estar bloqueada por firewall, o HTTPS pode não estar configurado corretamente ou o servidor pode estar em timeout.
Por onde começar: verificar logs do servidor, configuração de HTTPS e regras de firewall. Entrar em contato com a hospedagem se necessário.
Erro que ocorre apenas para alguns clientes ou dispositivos
O checkout funciona para você, mas clientes reportam problemas. Pode funcionar no desktop, mas não no mobile. Ou funcionar no Chrome, mas não no Safari.
O que isso indica: pode ser conflito com navegadores específicos, problemas em dispositivos móveis, cache por dispositivo ou geolocalização afetando cálculos de frete e imposto.
Por onde começar: testar o checkout em múltiplos dispositivos e navegadores. Verificar se o problema está restrito a clientes de regiões específicas ou a tipos de pagamento específicos.
Como diagnosticar o problema — as 8 camadas
O método de diagnóstico de checkout com erros é baseado em isolar variáveis. Cada camada elimina possibilidades até encontrar a causa raiz. Siga na ordem, mas pule direto para a camada que mais se aproxima do seu sintoma.
Regra de ouro: nunca altere diretamente na loja em produção sem backup completo e ambiente de staging. Testes na loja ativa podem piorar o problema ou causar perda de dados.
Camada 1 — Identificar exatamente o sintoma
Antes de qualquer ação técnica, documente o que está acontecendo. Quanto mais preciso for o diagnóstico inicial, mais rápido será a solução.
Perguntas para responder:
- O que exatamente acontece? (página em branco, spinner infinito, mensagem de erro, pagamento recusado)
- Aparece alguma mensagem de erro específica? Se sim, qual?
- O erro ocorre em todos os dispositivos e navegadores?
- O erro ocorre para todos os clientes ou apenas alguns?
- O erro ocorre com qualquer produto ou apenas com itens específicos?
- O erro ocorre com qualquer método de pagamento ou apenas com alguns?
- Quando começou o problema? Houve alguma alteração recente (atualização de plugin, mudança de configuração)?
Por que isso importa: “o checkout não funciona” é vago. “O checkout trava no spinner apenas quando o cliente tenta pagar com Pix no Chrome mobile” é um sintoma que direciona todo o diagnóstico.
Quem pode fazer: o próprio lojista, com base em relatos de clientes e testes pessoais.
Camada 2 — Verificar WooCommerce Status e logs
O painel do WooCommerce oferece informações valiosas sobre o estado da loja.
O que fazer:
- Acesse WooCommerce > Status no painel do WordPress.
- Verifique as versões: WordPress, WooCommerce, PHP, MySQL.
- Verifique se há atualizações pendentes ou incompatibilidades reportadas.
- Acesse WooCommerce > Status > Logs.
- Filtre por data (o dia em que o problema começou) e tipo de erro.
- Procure por erros fatais PHP, warnings sobre plugins ou problemas de permissão.
O que procurar:
Fatal error: indica que uma função PHP parou de funcionar.Parse error: indica erro de sintaxe no código.WarningouNotice: problemas menores, mas que podem indicar incompatibilidades.- Mensagens sobre plugins incompatíveis ou desatualizados.
Referência oficial: WooCommerce System Status
Quem pode fazer: o próprio lojista, acessando o painel do WordPress.
Camada 3 — Verificar erros de PHP e JavaScript
Se os logs do WooCommerce não mostram claramente a causa, é necessário ir mais fundo. Antes de editar arquivos, verifique os logs do WooCommerce (Camada 2) e os logs de erro da hospedagem. Se possível, realize este diagnóstico em ambiente de staging.
Ativar modo de depuração do WordPress:
Atenção: esta etapa requer edição do arquivo
wp-config.php. Se você não tem familiaridade com FTP ou edição de arquivos PHP, é recomendável contar com um desenvolvedor. Logs de depuração podem conter informações sensíveis — antes de compartilhar, remova dados pessoais, tokens, credenciais e informações de pagamento.
- Acesse o arquivo
wp-config.phpvia FTP ou Gerenciador de Arquivos da hospedagem. - Adicione ou altere as seguintes linhas:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
- Reproduza o erro no checkout.
- Acesse o arquivo
wp-content/debug.logvia FTP. - Procure por erros PHP associados à tentativa de checkout.
- Desative o modo de depuração após o diagnóstico (
WP_DEBUG= false).
Referência oficial: WordPress Debug Log
Verificar erros no navegador:
- Abra o checkout no navegador.
- Pressione F12 para abrir as ferramentas do desenvolvedor.
- Vá aba Console e procure por erros em vermelho.
- Vá aba Network, filtre por
admin-ajax.phpouwc-ajax, e tente finalizar a compra. - Verifique se alguma requisição retorna erro 4xx ou 5xx.
O que procurar:
- PHP:
Fatal error,Parse error,Undefined function,Call to undefined method. - JavaScript:
Uncaught TypeError,Failed to fetch,nonce invalid,403 Forbidden.
Quem pode fazer: lojista com experiência técnica pode realizar este diagnóstico. Caso contrário, é recomendável contar com um desenvolvedor.
Camada 4 — Analisar gateway e retorno do pagamento
Se o WooCommerce não apresenta erros internos, o problema pode estar na comunicação com o gateway de pagamento.
O que fazer:
- Verifique se o gateway está ativo em WooCommerce > Configurações > Pagamentos.
- Confirme se as credenciais de API estão corretas.
- Verifique se o gateway está no modo correto (sandbox para testes, production para vendas reais).
- Acesse o painel do gateway (Stripe Dashboard, painel do PagSeguro, etc.) e verifique se há logs de erro.
- Verifique se os webhooks estão configurados e funcionando.
- Teste com um pedido de valor baixo (R$1,00) em ambiente de teste, se disponível.
O que procurar:
- Credenciais expiradas ou incorretas.
- Modo sandbox ativo em produção (ou vice-versa).
- Webhooks com URL incorreta ou bloqueada.
- Erros de 3D Secure ou autenticação.
- Mensagens de “card declined” que indicam recusa legítima pelo emissor.
Diferenciação importante: nem toda falha de pagamento é um bug. O gateway pode estar recusando legitimamente o pagamento por dados incorretos, saldo insuficiente ou suspeita de fraude. Nesses casos, o problema não está no WooCommerce, mas sim na transação.
Quando buscar o gateway: se o erro aparece apenas no painel do gateway, sem erros correspondentes no WooCommerce. Cada gateway tem seu próprio suporte técnico.
Quem pode fazer: lojista pode verificar configurações básicas. Para problemas de webhook ou credenciais, pode ser necessário contato com o suporte do gateway.
Camada 5 — Verificar cache, CDN e otimizações
O cache é uma das causas mais comuns de problemas no checkout, porque páginas dinâmicas podem ser servidas como estáticas. (documentação sobre cache no WooCommerce)
O que fazer:
- Identifique se há plugin de cache ativo (WP Rocket, LiteSpeed Cache, W3 Total Cache, etc.).
- Verifique se o checkout está sendo cacheado — não deveria.
- Limpe o cache do plugin e da CDN.
- Verifique regras de cache no servidor (LiteSpeed, Nginx, Apache).
- Teste em navegador anônimo, sem extensões.
O que procurar:
- Checkout servido em cache (página estática com dados de outro usuário).
- Cart fragments bloqueados por cache.
- CDN servindo versão antiga de scripts JavaScript.
- Plugin de otimização minificando JavaScript do checkout.
Regra importante: páginas de checkout, carrinho e “Minha conta” nunca devem ser cacheadas. Se o seu plugin de cache está incluindo essas páginas, ajuste as regras de exclusão.
Quem pode fazer: lojista pode limpar cache e testar em navegador anônimo. Ajustar regras de cache no servidor pode exigir ajuda da hospedagem ou de um desenvolvedor.
Camada 6 — Investigar conflitos entre plugins e tema
Conflitos entre plugins são uma das causas mais difíceis de identificar, porque podem ser intermitentes e afetar apenas cenários específicos.
O que fazer:
- Crie um ambiente de staging — nunca faça isso diretamente na loja em produção.
- Faça backup completo antes de qualquer teste.
- Desative todos os plugins exceto WooCommerce e o gateway de pagamento.
- Teste o checkout.
- Se funcionar, reative os plugins um por um, testando o checkout após cada reativação.
- Quando o checkout quebrar novamente, você identificou o plugin conflitante.
O que procurar:
- Plugin que modifica campos de checkout.
- Plugin de segurança bloqueando requisições AJAX.
- Plugin de otimização minificando JavaScript do checkout.
- Tema com override de template desatualizado.
Antes de investigar overrides de template, verifique se o site usa Checkout Block ou Checkout Clássico. Overrides de template só se aplicam ao checkout clássico.
Quem pode fazer: lojista com acesso ao WordPress pode desativar plugins. Se o problema persistir ou o conflito for complexo, é recomendável contar com um desenvolvedor especializado.
Camada 7 — Avaliar servidor e ambiente
Se todas as camadas anteriores estiverem normais, o problema pode estar no servidor de hospedagem.
O que verificar:
- Versão do PHP: o WooCommerce recomenda PHP 8.3 ou superior. A versão mínima compatível é PHP 7.4, mas versões antigas, sem suporte ou incompatíveis com os componentes da loja podem causar problemas. (requisitos de servidor)
- Limite de memória PHP (
memory_limit): recomendado no mínimo 256M para lojas com múltiplos plugins. - Tempo máximo de execução (
max_execution_time): o valor ideal depende da complexidade da loja e plugins utilizados. Consulte a documentação da sua hospedagem para recomendações específicas. - Logs de erro do servidor: verifique se há erros de resource limit ou timeout.
O que procurar:
- Versão antiga, sem suporte ou incompatível com os componentes da loja.
- Memória insuficiente.
- Servidor compartilhado sem recursos suficientes para o volume de tráfego.
Quando buscar a hospedagem: se os logs do servidor mostram erros de resource limit, timeout ou falhas de conexão com o banco de dados. A hospedagem pode precisar ajustar configurações ou recomendar um plano com mais recursos.
Quem pode fazer: lojista pode verificar versões no painel da hospedagem. Ajustes de configuração do servidor geralmente exigem contato com o suporte da hospedagem.
Camada 8 — Reproduzir o problema com segurança em staging
Se você identificou uma possível causa, mas não tem certeza, a última camada é testar a correção em ambiente controlado.
O que fazer:
- Crie um ambiente de staging idêntico ao produção.
- Copie banco de dados e arquivos.
- Proteja o staging: use senha forte, ative noindex e bloqueie o acesso público.
- Configure pagamentos em sandbox — nunca use credenciais de produção em staging.
- Bloqueie ou intercepte e-mails para evitar que notificações sejam enviadas a clientes reais.
- Cuidado com webhooks: se o gateway estiver apontando para o staging, desative ou redirecione os webhooks.
- Proteja ou anonimize dados de clientes em conformidade com a LGPD.
- Reproduza o erro em staging.
- Teste a correção sem risco para a loja ativa.
- Documente cada alteração feita.
- Só aplique a correção na produção após confirmar que funciona em staging.
Por que isso importa: testar direto na loja em produção pode piorar o problema ou causar perda de dados. Staging permite testar com segurança.
Ferramentas: muitas hospedagens oferecem staging automático (Cloudways, Kinsta, SiteGround, etc.). Se sua hospedagem não oferece, um desenvolvedor pode criar manualmente.
Quem pode fazer: lojista com hospedagem que oferece staging pode criar o ambiente. Caso contrário, é recomendável contar com um desenvolvedor.
Quando o problema não é no checkout
Nem todo erro de pagamento é um bug no WooCommerce. É importante diferenciar falhas técnicas de outros tipos de problema.
Abandono de carrinho vs. falha técnica: abandono ocorre quando o cliente desiste por preço, frete ou desconfiança — é questão de conversão. Falha técnica é quando o checkout trava ou retorna erro — é bug que precisa de diagnóstico. Estudos como os do Baymard Institute (fonte) apontam taxas médias de abandono em torno de 70%, mas isso inclui todos os motivos, não apenas erros técnicos.
Quando o problema é o gateway: se o erro aparece apenas no painel do gateway, se o pedido cria normalmente mas o pagamento falha depois, ou se o gateway reporta erro de credencial — entre em contato com o suporte do serviço de pagamento.
Quando o problema é o servidor: se há erros de timeout ou memória nos logs, se a loja está lenta em geral, ou se os problemas começaram após mudança de hospedagem — contacte a hospedagem.
Recusa legítima do pagamento: nem toda recusa é bug. Se o erro indica “cartão recusado”, se ocorre apenas com cartões específicos, ou se o gateway confirma recusa pelo emissor — oriente o cliente a verificar dados ou entrar em contato com o banco. Esse não é um problema técnico da loja.
Checklist: por onde começar agora
- Documentar o sintoma exato (dispositivo, navegador, produto, método de pagamento).
- Verificar WooCommerce > Status e logs.
- Verificar logs de erro da hospedagem.
- Testar em navegador anônimo e em outro dispositivo.
- Verificar se o gateway está ativo e com credenciais corretas.
- Limpar cache do plugin e da CDN.
- Verificar versão do PHP e limites do servidor.
Quando buscar ajuda especializada
Sinais de que o problema exige especialista
- Múltiplos plugins envolvidos e você não consegue isolar o conflito.
- Erros intermitentes que não podem ser reproduzidos consistentemente.
- Gateway reporta erro sem explicação clara.
- Loja em produção com vendas paradas e urgência de resolver.
- Você não tem experiência com staging, logs ou depuração.
O que um especialista faz diferente
- Diagnóstico estruturado com ferramentas profissionais (Query Monitor, New Relic, logs detalhados).
- Testes em ambiente controlado (staging) sem risco para a loja.
- Identificação da causa raiz, não apenas do sintoma.
- Correção que resolve o problema de verdade, não apenas “ajeita” por enquanto.
Se sua loja WooCommerce está com problemas no checkout e você não consegue identificar a causa, a Panacea oferece uma análise inicial gratuita. Envie a URL da sua loja e descreva o problema — vamos diagnosticar e indicar o caminho certo.
Dúvidas sobre este artigo?
Encontrou uma situação diferente na sua loja ou ficou com alguma dúvida? Envie sua pergunta. As questões que puderem ajudar outros lojistas poderão ser respondidas e publicadas nesta página.
Dúvida enviada com sucesso. Obrigado pela contribuição.
Artigos relacionados
Pedido duplicado no WooCommerce: por que acontece e como resolver
Identifique as causas de pedidos duplicados no WooCommerce e saiba como diagnosticar, resolver e prevenir o problema na sua loja.
Cupom de desconto WooCommerce: como criar, limitar e não queimar a margem
Aprenda a criar cupom de desconto WooCommerce, aplicar restrições e limites de uso e proteger a margem da loja em cada promoção.
Checkout lento no WooCommerce: por que clientes desistem e como resolver
Checkout lento no WooCommerce faz clientes desistirem antes de pagar, mesmo sem erro na tela. Veja as causas mais comuns e como resolver cada uma.