Como corrigir o botão Adicionar ao carrinho que não funciona no WooCommerce
O que é o botão Add to Cart no WooCommerce?
O botão Adicionar ao carrinho é o que envia o produto para o carrinho do WooCommerce, normalmente via AJAX para que a página não recarregue. Quando ele não funciona, o cliente clica e o item não aparece no mini-carrinho, o contador não muda, ou a página recarrega vazia. É um erro de topo de funil que mata a venda antes mesmo do checkout, porque o cliente desiste sem nunca chegar a finalizar a compra.
Como identificar
- O botão ‘Adicionar ao carrinho’ fica girando (loading) e o produto nunca aparece no carrinho.
- Ao clicar, a página recarrega mas o contador do mini-carrinho continua em zero.
- No console do navegador (F12) aparece ‘admin-ajax.php 400/403/500’ ou um erro de JavaScript ‘wc_add_to_cart_params is not defined’.
- O botão mostra ‘Selecione opções’ ou ‘Leia mais’ e leva à página do produto em vez de adicionar direto, mesmo em produto simples.
Como prevenir
- Mantenha os scripts do WooCommerce fora da minificação e combinação de JS, e carrinho e checkout fora do cache
- Teste o botão de adicionar ao carrinho como visitante anônimo após cada atualização de tema, plugin ou cache
- Acompanhe o console do navegador e WooCommerce > Status > Logs para detectar erros de AJAX antes que afetem as vendas
Causa
- Requisições AJAX para wc-ajax=add_to_cart ou para admin-ajax.php bloqueadas por firewall/WAF ou retornando 403/500.
- Conflito de plugin de cache ou de otimização que minifica ou combina o JS do WooCommerce e quebra o script add-to-cart.min.js.
- Tema com template de produto customizado que não carrega o wc_add_to_cart_params (jQuery ausente ou enfileirado fora de ordem).
- Produto sem preço definido, fora de estoque ou marcado como variável sem variações configuradas, fazendo o WooCommerce esconder ou desabilitar o botão.
- Opção 'Habilitar adição ao carrinho via AJAX nas páginas de arquivo' desligada combinada com cache servindo um nonce expirado.
Como resolver
- Confirme o produto e o estoque: em Produtos, abra o item e verifique se ele tem preço definido, está com estoque disponível e, se for variável, tem ao menos uma variação configurada. Sem preço ou sem estoque o WooCommerce não mostra o botão de comprar.
- Teste com tema padrão e plugins desativados: ative um tema padrão (Storefront ou Twenty Twenty-Four) e desative todos os plugins exceto o WooCommerce. Se o botão voltar a funcionar, reative um a um para isolar o conflito.
- Exclua o JS do WooCommerce da otimização: no plugin de cache/otimização, remova os scripts do WooCommerce (add-to-cart, cart-fragments) da minificação e da combinação de JS, e marque carrinho e checkout como nunca cacheados.
- Verifique o AJAX no console: abra um produto, pressione F12, vá em Rede, clique em adicionar e veja se a chamada wc-ajax=add_to_cart ou admin-ajax.php retorna 403/500. Se sim, peça ao host ou ao WAF para liberar essas rotas.
- Atualize WooCommerce e o tema: atualize o WooCommerce e o tema e cheque em WooCommerce > Status se há templates desatualizados marcados em vermelho, que podem conter uma versão antiga do botão de adicionar ao carrinho.
// functions.php do tema filho — garante que o script add-to-cart via AJAX
// seja carregado em todas as paginas de loja, inclusive arquivos e busca
add_action( 'wp_enqueue_scripts', function () {
if ( function_exists( 'is_woocommerce' ) && ( is_shop() || is_product_category() || is_product() ) ) {
wp_enqueue_script( 'wc-add-to-cart' );
wp_enqueue_script( 'wc-cart-fragments' );
}
}, 20 );














