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.
Artigos relacionados
O WooCommerce é grátis? O custo real de ter uma loja online
WooCommerce é gratuito mesmo? Saiba o que é de graça e quanto custa realmente hospedar, usar plugins e aceitar pagamentos numa loja WooCommerce.
Como escolher um desenvolvedor web para o seu negócio
Escolher o parceiro técnico certo vai muito além de comparar preços. Veja um roteiro prático para avaliar portfólio, processo e resultado.