🎉 USE O CUPOM DESCONTO.FULL | 20% OFF acima de R$ 50,00

Como corrigir o botão Adicionar ao carrinho que não funciona no WooCommerce

Time Full Services Time Full Services
Tipo WooCommerce
Nome do erro Botão Adicionar ao carrinho não funciona no WooCommerce EN: WooCommerce Add to Cart button not working
Severidade Grave
Descrição O botão add to cart do WooCommerce não funcionar significa que o cliente clica em comprar mas o produto não entra no carrinho: o botão fica girando, recarrega a página sem somar, ou nada acontece. Quase sempre vem de requisições AJAX bloqueadas, conflito de JavaScript de plugin ou tema, ou do produto sem estoque ou sem preço.

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.
Antes de começar: Faça backup e teste em staging antes de desativar plugins ou trocar o tema em uma loja no ar. Nunca remova o nonce do botão de adicionar ao carrinho para ‘resolver’ o AJAX: isso abre brecha de CSRF.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
PHP
// 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 );

Perguntas frequentes

Cliquei em adicionar ao carrinho e nada acontece. Por onde começo?
Abra o console do navegador com F12 e tente de novo. Um erro de JavaScript ou uma chamada admin-ajax.php retornando 403/500 indica conflito de plugin, tema ou bloqueio de AJAX. Teste com tema padrão e plugins desativados para isolar a causa.
Por que o botão aparece como 'Selecione opções' em vez de adicionar direto?
Isso acontece em produtos variáveis: o WooCommerce não adiciona ao carrinho até o cliente escolher uma variação. Se o produto deveria ser simples, confira se ele não foi salvo como variável sem variações configuradas no editor de produto.
Um plugin de cache pode quebrar o botão de adicionar ao carrinho?
Sim. Se o cache minifica ou combina o JavaScript do WooCommerce, o script de AJAX pode quebrar, e o botão para de responder. Exclua os scripts do WooCommerce da otimização e marque carrinho e checkout como não-cacheáveis.
O botão some completamente do produto. O que verificar?
Confira se o produto tem preço definido e estoque disponível. O WooCommerce esconde o botão de comprar quando o item está sem preço, fora de estoque ou marcado como esgotado nas configurações de inventário.
Funciona no meu computador mas não no do cliente. Por quê?
Geralmente é cache do navegador ou da CDN servindo uma versão antiga do JavaScript, ou uma extensão bloqueando scripts. Limpe o cache da CDN, teste em aba anônima e confirme que nenhum bloqueador está barrando o admin-ajax.php.
O erro 'wc_add_to_cart_params is not defined' aparece no console. O que é?
Significa que o script do WooCommerce que carrega os parâmetros de AJAX não foi enfileirado, normalmente por um tema que não chama o wp_enqueue ou por jQuery ausente. Atualize o tema ou force o carregamento dos scripts wc-add-to-cart e wc-cart-fragments.

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →

Uma nova era para o WordPress.

A FULL Services redefine o CMS com uma arquitetura modular que transforma o WordPress em um motor de crescimento digital. 

Painéis personalizados

Um novo nível de controle para o WordPress. Acompanhe métricas, automações e evolução do seu site em um único painel visual.

A força por trás de grandes marcas

Para agências, estúdios e profissionais independentes que desejam oferecer soluções de alto nível com sua própria marca.

Componentes

Hero Sections

30 componentes

Seções de CTA

14 componentes

Login

14 componentes

Blog

14 componentes

Cabeçalhos

24 componentes

Seções de FAQ

53 componentes

Cadastro

53 componentes

Blog individual

53 componentes

Rodapés

28 componentes

Seções de contato

27 componentes

Seções de preços

27 componentes

Faixas

27 componentes

Portfólio

16 componentes

Seções de equipe

12 componentes

Números

12 componentes

Logotipos

12 componentes