Checkout e Conversão Atualizado em 05 de ago. de 2026

Checkout do WooCommerce não funciona? Como diagnosticar os erros mais comuns

J
Jorge Henrique de Oliveira
Ilustração de um checkout do WooCommerce com erro, conectado a gateway de pagamento, plugins, cache, servidor e logs de diagnóstico.

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:

  1. Acesse WooCommerce > Status no painel do WordPress.
  2. Verifique as versões: WordPress, WooCommerce, PHP, MySQL.
  3. Verifique se há atualizações pendentes ou incompatibilidades reportadas.
  4. Acesse WooCommerce > Status > Logs.
  5. Filtre por data (o dia em que o problema começou) e tipo de erro.
  6. 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.
  • Warning ou Notice: 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.

  1. Acesse o arquivo wp-config.php via FTP ou Gerenciador de Arquivos da hospedagem.
  2. Adicione ou altere as seguintes linhas:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
  1. Reproduza o erro no checkout.
  2. Acesse o arquivo wp-content/debug.log via FTP.
  3. Procure por erros PHP associados à tentativa de checkout.
  4. Desative o modo de depuração após o diagnóstico (WP_DEBUG = false).

Referência oficial: WordPress Debug Log

Verificar erros no navegador:

  1. Abra o checkout no navegador.
  2. Pressione F12 para abrir as ferramentas do desenvolvedor.
  3. Vá aba Console e procure por erros em vermelho.
  4. Vá aba Network, filtre por admin-ajax.php ou wc-ajax, e tente finalizar a compra.
  5. 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:

  1. Verifique se o gateway está ativo em WooCommerce > Configurações > Pagamentos.
  2. Confirme se as credenciais de API estão corretas.
  3. Verifique se o gateway está no modo correto (sandbox para testes, production para vendas reais).
  4. Acesse o painel do gateway (Stripe Dashboard, painel do PagSeguro, etc.) e verifique se há logs de erro.
  5. Verifique se os webhooks estão configurados e funcionando.
  6. 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:

  1. Identifique se há plugin de cache ativo (WP Rocket, LiteSpeed Cache, W3 Total Cache, etc.).
  2. Verifique se o checkout está sendo cacheado — não deveria.
  3. Limpe o cache do plugin e da CDN.
  4. Verifique regras de cache no servidor (LiteSpeed, Nginx, Apache).
  5. 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:

  1. Crie um ambiente de staging — nunca faça isso diretamente na loja em produção.
  2. Faça backup completo antes de qualquer teste.
  3. Desative todos os plugins exceto WooCommerce e o gateway de pagamento.
  4. Teste o checkout.
  5. Se funcionar, reative os plugins um por um, testando o checkout após cada reativação.
  6. 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:

  1. Crie um ambiente de staging idêntico ao produção.
  2. Copie banco de dados e arquivos.
  3. Proteja o staging: use senha forte, ative noindex e bloqueie o acesso público.
  4. Configure pagamentos em sandbox — nunca use credenciais de produção em staging.
  5. Bloqueie ou intercepte e-mails para evitar que notificações sejam enviadas a clientes reais.
  6. Cuidado com webhooks: se o gateway estiver apontando para o staging, desative ou redirecione os webhooks.
  7. Proteja ou anonimize dados de clientes em conformidade com a LGPD.
  8. Reproduza o erro em staging.
  9. Teste a correção sem risco para a loja ativa.
  10. Documente cada alteração feita.
  11. 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.

Artigos relacionados