Como corrigir checkout do WooCommerce que não funciona
O que é o checkout do WooCommerce que não funciona?
O checkout do WooCommerce é a página onde o cliente informa dados de entrega e pagamento e finaliza o pedido. Quando ele ‘não funciona’, o fluxo de compra trava nesse ponto: o botão ‘Finalizar compra’ não dispara, os campos não validam, ou a página não carrega o formulário. É o erro mais caro de uma loja, porque acontece exatamente no momento da conversão e derruba o faturamento.
Como identificar
- O botão ‘Finalizar compra’ / ‘Place order’ não responde ao clique e a página apenas recarrega.
- A página de checkout abre em branco ou sem o formulário de cobrança e entrega.
- Mensagem genérica no topo do formulário sem dizer o campo, ou o console do navegador mostra erro ‘admin-ajax.php 403/500’.
- O carrinho está cheio, mas o checkout diz ‘Seu carrinho está vazio’ ou redireciona de volta ao carrinho.
Como prevenir
- Mantenha carrinho, checkout e minha conta sempre fora do cache e da minificação de JS
- Atualize WooCommerce, tema e gateways em staging antes de aplicar na loja ao vivo
- Monitore o console do navegador e os logs (WooCommerce > Status > Logs) para pegar erros de AJAX cedo
Causa
- Conflito de plugin (gateway, cache ou otimização de JS) quebrando o JavaScript do checkout do WooCommerce.
- Requisições AJAX para admin-ajax.php ou para a Store API bloqueadas por firewall/WAF ou retornando 403/500.
- Página de Checkout sem o shortcode [woocommerce_checkout] ou sem o bloco de Checkout, ou apontada para a página errada nas configurações.
- Tema desatualizado ou com template de checkout customizado incompatível com a versão atual do WooCommerce.
- Cache de página inteira cacheando o checkout (deveria ser sempre dinâmico), servindo um nonce ou fragmento expirado.
Como resolver
- Confirme a página de checkout: em WooCommerce > Configurações > Avançado, verifique se 'Página de finalização da compra' aponta para a página correta, e que ela contém o bloco Checkout ou o shortcode [woocommerce_checkout].
- Teste com tema padrão e plugins desativados: ative temporariamente um tema padrão (Storefront/Twenty Twenty-Four) e desative os plugins exceto o WooCommerce. Se o checkout voltar, reative um a um para achar o conflito.
- Exclua o checkout do cache: no plugin de cache, marque carrinho, checkout e minha conta como páginas que nunca devem ser cacheadas, e exclua o JS do WooCommerce da minificação/combinação.
- Verifique o AJAX no console: abra o checkout, pressione F12 > aba Rede, tente finalizar e veja se admin-ajax.php ou a Store API retorna 403/500. Se sim, peça ao host/WAF para liberar essas rotas.
- Atualize WooCommerce e o tema: atualize o WooCommerce e o tema para as versões mais recentes e cheque em WooCommerce > Status se há templates desatualizados (em vermelho) que precisam ser regerados.
// functions.php — impede o cache de cachear paginas dinamicas do WooCommerce
// (carrinho, checkout e minha conta devem ser SEMPRE dinamicos)
add_action( 'template_redirect', function () {
if ( function_exists( 'is_checkout' ) && ( is_checkout() || is_cart() || is_account_page() ) ) {
if ( ! defined( 'DONOTCACHEPAGE' ) ) {
define( 'DONOTCACHEPAGE', true );
}
nocache_headers();
}
}, 0 );














