
🔧 Como corrigir o botão adicionar ao carrinho em falta no WooCommerce
Porque é que o botão «Adicionar ao carrinho» desaparece dos produtos WooCommerce
Estava a configurar a sua loja, adicionou uma dúzia de produtos, mas quando abre a página não há nada onde o botão «Adicionar ao carrinho» deveria estar. Os clientes não podem comprar. Pânico. Mas o problema é mais fácil de resolver do que pode parecer à primeira vista.
Existem exatamente cinco razões para o botão desaparecer: desde uma ficha de produto incompleta até ao mod_security do lado do servidor. Duas delas resolvem-se em dois cliques. Mais duas com um par de linhas de código. E apenas uma requer contactar o seu fornecedor de alojamento. Abaixo está uma análise passo a passo com código, capturas de ecrã e ações específicas.
💡 Visão geral rápida:
- Verifique primeiro a ficha de produto: preço e estado de stock são obrigatórios
- Desative todos os plugins de uma vez e ative apenas o WooCommerce: se o botão aparecer, a culpa é de um conflito
- Vá ao personalizador do tema: o botão pode estar simplesmente oculto por um interruptor
- Corrija o template do tema através do editor de código: substituir três linhas no
single.php - Abra a consola do navegador: erro de JavaScript → contacte o seu alojamento, o problema é o mod_security
1. Verifique a ficha de produto: preço e estado de stock
O WooCommerce mostra o botão «Adicionar ao carrinho» apenas quando o produto pode ser comprado. Se não pode ser comprado, não há botão. Lógica simples.
Abra Produtos → Todos os produtos → selecione o problemático → Editar. No bloco «Dados do produto», verifique três campos:
- Preço: o preço normal é obrigatório, mesmo que o produto esteja em promoção. O campo «Preço» não pode estar vazio.
- Estado de stock: «Em stock» ou «Disponível por encomenda». O valor «Esgotado» oculta o botão.
- Produtos variáveis: cada variação deve ter o seu próprio preço e estado de stock.
Erro comum: criou um produto variável, adicionou atributos (cor, tamanho), mas não introduziu preços para variações específicas. Neste caso, o WooCommerce não sabe a que preço vender e simplesmente não mostra o botão.
Preencheu → Atualizar → abra a página do produto no site. Na maioria dos casos simples, o problema já está resolvido neste passo.
2. Encontre o conflito de plugins
O WordPress monta o código a partir do tema ativo e de todos os plugins ativos. Se dois plugins usarem nomes de funções idênticos, se ligarem aos mesmos hooks ou forem simplesmente incompatíveis, o WooCommerce pode perder o botão.
Procedimento de diagnóstico:
- Vá a Plugins → Instalados. Selecione todos (caixa de seleção no topo), no menu suspenso «Ações em massa» escolha «Desativar» → Aplicar.
- Ative apenas o WooCommerce. Abra a página do produto problemático.
- O botão apareceu: conflito confirmado. Ative os plugins um a um, verificando a página do produto após cada um. O plugin após cuja ativação o botão desaparecer novamente é o culpado.
- Substitua o plugin problemático por uma alternativa ou contacte o seu programador.
Um subtipo separado deste problema é um conflito com o filtro woocommerce_show_variation_price. Alguns temas e plugins retornam false para este hook, e o WooCommerce oculta o preço da variação e perde o botão. Se o botão estiver no lugar depois de desativar todos os plugins, mas não houver um «culpado» visível, verifique o functions.php do tema ativo por linhas que contenham woocommerce_show_variation_price.
Pode forçar a exibição com este filtro:
1 add_filter('woocommerce_show_variation_price', function() { 2 return true; 3 });
Insira este código no functions.php do seu tema ativo (filho) ou através do plugin Code Snippets. Depois de guardar, verifique o produto.

3. Personalizador do tema: o interruptor invisível
Alguns temas adicionam o seu próprio interruptor de visibilidade do botão. A lógica dos programadores: «vamos dar flexibilidade aos utilizadores». Na prática, o interruptor vem por defeito como «ocultar» e o dono da loja não sabe disso.
Vá a Aparência → Personalizar. Procure uma secção:
- WooCommerce → Página de produto (ou Conteúdo → WooCommerce, dependendo do tema);
- Parâmetro «Botão Adicionar ao carrinho» → Visível (ou «Mostrar»).
Guarde as configurações e verifique o produto. Isto funciona para temas que usam secções do personalizador para WooCommerce além do template padrão. É popular em temas do ThemeForest: Avada, Flatsome, WoodMart.
4. Corrija o template do tema no editor
Se os passos anteriores não ajudaram, o problema é mais profundo: o tema usa um template de página de produto não padrão e não chama a função do WooCommerce que produz o botão.
O que está a acontecer. O WordPress carrega a página de produto através do ficheiro do tema single.php (ou index.php como alternativa). Dentro, há uma chamada get_template_part() que inclui o bloco de conteúdo. O tema deveria passar o controlo ao WooCommerce chamando wc_get_template_part('content', 'single-product'), mas alguns temas não o fazem. Resultado: o layout do tema está lá, mas o botão não.
Como corrigir:
- Aparência → Editor de ficheiros do tema. Confirme o aviso do WordPress.
- Na coluna da direita, encontre os ficheiros
single.phpeindex.php:

- Abra o
single.php(se existir). Se não, oindex.php. - Encontre a linha com
get_template_part. Substitua todo o bloco de saída de conteúdo por:
1 if (is_singular('product')) { 2 wc_get_template_part('content', 'single-product'); 3 } else { 4 wc_get_template_part('content', get_post_format()); 5 }
- Guarde o ficheiro.

Antes de editar, faça uma cópia de segurança do ficheiro do tema. Copie o conteúdo para um editor de texto ou use um tema filho: editar diretamente o tema principal será reposto na próxima atualização.
Depois de guardar, abra a página do produto. O botão deverá aparecer.
5. Problema do servidor: mod_security bloqueia scripts
Se chegou até aqui e o botão ainda não está lá, a causa está muito provavelmente do lado do servidor. O módulo mod_security (firewall Apache/LiteSpeed) bloqueia o carregamento dos ficheiros JavaScript do WooCommerce. Sem JavaScript, o carrinho não funciona.
Diagnóstico:
- Abra a página do produto problemático.
- Pressione
F12→ separador Consola. - Procure um erro de carregamento de script do WooCommerce, geralmente
cart.min.js,add-to-cart.min.jsoujquery.blockUI.min.jscom o código403 Forbidden. - Se o vir, o problema é o mod_security.
Solução: contacte o seu fornecedor de alojamento e peça-lhe para adicionar uma exceção para o caminho URL /wp-content/plugins/woocommerce/ nas regras do mod_security. O suporte resolve isto em poucos minutos.
Em alternativa, desative o mod_security para o domínio via .htaccess (se o seu alojamento permitir):
1 <IfModule mod_security.c> 2 SecFilterEngine Off 3 SecFilterScanPOST Off 4 </IfModule>
Mas é melhor coordenar com o seu alojamento: em alojamento partilhado, o mod_security protege o servidor inteiro e desativá-lo cria um risco de segurança.
Tabela resumo: o que verificar
Problema | Sintoma | Tempo para resolver |
|---|---|---|
Ficha de produto não preenchida | Botão em falta num produto específico | 2 min |
Conflito de plugins | Botão desapareceu após instalar um novo plugin | 5-15 min |
Personalizador do tema | Botão em falta em todos os produtos, tema ThemeForest | 1 min |
Código do template | Botão em falta, tema personalizado ou obscuro | 5 min |
mod_security | Erro JS na consola (403) | Chamada para o alojamento |
Guia em vídeo detalhado cobrindo todos os cinco passos: da ficha de produto à edição de templates e diagnóstico do servidor.
⁉️🤔 Perguntas frequentes
O botão desapareceu apenas para produtos variáveis. O que se passa?
Quase de certeza que os preços das variações não estão preenchidos. Abra o produto, separador «Variações», expanda cada uma: o campo «Preço» deve estar preenchido. Um preço de variação vazio significa que o WooCommerce considera o produto «não está à venda» e remove o botão. Para 50 ou mais variações, use a importação CSV: Produtos → Importar.
O botão desapareceu após uma atualização do tema. O que devo fazer?
A atualização do tema sobrescreveu o
single.php. Restaure a edição do passo 4. Para evitar repetir isto a cada atualização, mova o template para um tema filho: crie uma pasta/woocommerce/no tema filho e copie osingle-product.phpcorrigido para lá.
Posso restaurar o botão sem editar código?
Sim, em metade dos casos: verifique a ficha de produto (passo 1) e o personalizador do tema (passo 3). O código só é necessário quando o tema produz o template do produto de forma não padrão ou quando um plugin ou tema suprime o hook
woocommerce_show_variation_price.
O botão está lá, mas não funciona. Clica e não acontece nada?
Isto é um erro de JavaScript. Abra a consola do navegador (
F12) e veja quais os scripts que estão a falhar. Na maioria das vezes, é um conflito de versão do jQuery (o tema carrega um jQuery antigo sobre o padrão do WordPress) ou JS minificado em cache que não foi atualizado. Limpe a cache do seu plugin de cache e regenere os scripts minificados.
Preciso de desativar o AJAX de adicionar ao carrinho?
Apenas para diagnóstico. Vá a WooCommerce → Configurações → Produtos e desmarque «Ativar botões de adicionar ao carrinho com AJAX». Se o botão aparecer depois disto, o problema está no manipulador de AJAX do seu tema específico. Deixe o AJAX desativado ou substitua o tema.
O que fazer se o botão ainda não apareceu
Os cinco passos acima cobrem a grande maioria dos casos em que o botão «Adicionar ao carrinho» desaparece. Se nenhum deles funcionou, o problema é mais profundo e requer depuração manual.
Lista de verificação rápida de último recurso:
- Mude o tema para Storefront, o tema oficial do WooCommerce. O botão apareceu? O problema está no seu tema.
- Verifique WooCommerce → Estado → Ações agendadas por tarefas cron bloqueadas.
- Vá a WooCommerce → Estado → Registos e procure por
fatal-errorsdos últimos dias.
Ainda sem sorte? Descreva a sua situação nos comentários: versão do WooCommerce, nome do tema, lista de plugins ativos. Encontraremos a causa.



