No dinâmico mundo do comércio eletrônico, a experiência do usuário é um fator crucial para o sucesso de qualquer loja virtual. Uma das frustrações que os clientes podem enfrentar é encontrar um produto desejado, mas descobrir que ele está fora de estoque somente ao tentar adicioná-lo ao carrinho. Para otimizar a jornada de compra e evitar essa decepção, uma prática recomendada é ocultar o botão de compra e exibir uma mensagem clara de “Produto fora de estoque” assim que o estoque de um item atinge zero.
Este artigo tem como objetivo fornecer um script prático e de fácil implementação para lojas WooCommerce que desejam adotar essa melhoria na experiência do usuário. O código apresentado, quando adicionado corretamente ao seu tema filho, fará com que o botão “Adicionar ao carrinho” desapareça e uma mensagem informativa seja exibida sempre que um produto não tiver unidades disponíveis em estoque. Vamos ao código!
O Script Personalizado para WooCommerce
A seguir, apresentamos o código PHP que você pode utilizar para alcançar o resultado desejado. Explicaremos cada parte para garantir que você entenda como ele funciona.
Você pode copiar e colar o seguinte bloco de código no arquivo functions.php do seu tema filho:
<?php
/**
* Remove o botão "Adicionar ao Carrinho" e exibe uma mensagem
* quando o produto está fora de estoque no WooCommerce.
*/
add_action( 'woocommerce_after_shop_loop_item', 'custom_out_of_stock_message', 10 );
add_action( 'woocommerce_single_product_summary', 'custom_out_of_stock_message', 30 );
function custom_out_of_stock_message() {
global $product;
if ( ! $product->is_in_stock() ) {
// Remove o botão "Adicionar ao carrinho"
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
// Exibe a mensagem de produto fora de estoque
echo '<p class="out-of-stock-message">Produto fora de estoque</p>';
}
}
/**
* Adiciona um estilo básico para a mensagem de fora de estoque.
*/
add_action( 'wp_head', 'custom_out_of_stock_style' );
function custom_out_of_stock_style() {
?>
<style>
.out-of-stock-message {
color: #D32F2F; /* Vermelho mais escuro para destaque */
font-weight: bold;
text-align: center;
padding: 10px;
border: 1px solid #EF9A9A; /* Borda mais clara */
background-color: #FFCDD2; /* Fundo levemente avermelhado */
margin-top: 15px;
font-size: 1.1em;
border-radius: 5px;
}
</style>
<?php
}
?>
Entendendo o Código
add_action( 'woocommerce_after_shop_loop_item', 'custom_out_of_stock_message', 10 );: Esta linha de código Hook a funçãocustom_out_of_stock_messagena açãowoocommerce_after_shop_loop_item. Essa ação é disparada após a exibição de cada item na página de listagem de produtos (como a página da loja ou categorias).add_action( 'woocommerce_single_product_summary', 'custom_out_of_stock_message', 30 );: Similar à linha anterior, esta Hook a mesma função na açãowoocommerce_single_product_summary. Esta ação ocorre dentro da página de detalhes de um único produto, após o resumo do produto.function custom_out_of_stock_message() { ... }: Esta é a função principal que contém a lógica para verificar o estoque e exibir a mensagem.global $product;: Torna a variável global$productdisponível dentro da função, permitindo acessar os dados do produto atual.if ( ! $product->is_in_stock() ) { ... }: Esta condição verifica se o produto atual não está em estoque. A função$product->is_in_stock()retornatruese o estoque for maior que zero efalsecaso contrário.remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );: Remove a função padrão do WooCommerce que adiciona o botão “Adicionar ao carrinho” nas páginas de listagem de produtos.remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );: Remove a função padrão que adiciona o botão “Adicionar ao carrinho” na página de detalhes do produto.echo '<p class="out-of-stock-message">Produto fora de estoque</p>';: Exibe uma mensagem HTML informando que o produto está fora de estoque. A mensagem é envolvida em uma tag<p>com a classeout-of-stock-messagepara facilitar a estilização via CSS.
add_action( 'wp_head', 'custom_out_of_stock_style' );: Hook a funçãocustom_out_of_stock_stylena açãowp_head. Essa ação permite adicionar código ao<head>do seu site.function custom_out_of_stock_style() { ... }: Esta função adiciona um estilo CSS básico para a mensagem de “Produto fora de estoque”, tornando-a mais visível e formatada. Você pode personalizar completamente este CSS para se adequar ao design da sua loja.
Como Implementar o Script
Para implementar este script em sua loja WooCommerce, siga os passos abaixo:
- Crie ou acesse o tema filho: É fundamental adicionar qualquer personalização de código em um tema filho. Isso garante que suas alterações não sejam perdidas quando o tema principal for atualizado. Se você ainda não tem um tema filho, pode criar um facilmente. Existem diversos tutoriais online que ensinam como fazer isso.
- Abra o arquivo
functions.phpdo tema filho: Localize o arquivofunctions.phpdentro da pasta do seu tema filho (geralmente emwp-content/themes/nome-do-seu-tema-filho/). - Cole o código: Copie o código PHP fornecido acima e cole-o no final do arquivo
functions.php. Certifique-se de colar antes da tag de fechamento?>se ela existir. Caso contrário, pode colar no final do arquivo. - Salve as alterações: Salve as modificações feitas no arquivo
functions.php.
Após salvar, o script estará ativo em sua loja. Visite as páginas de seus produtos e verifique o comportamento dos itens com estoque zerado. O botão de compra deverá ter desaparecido, e a mensagem “Produto fora de estoque” deverá ser exibida em seu lugar.
Conclusão
Implementar essa pequena modificação pode melhorar significativamente a experiência de compra em sua loja WooCommerce. Ao informar claramente aos clientes quando um produto está fora de estoque e removendo o botão de compra, você evita frustrações e otimiza a navegação em seu site. Lembre-se sempre de utilizar um tema filho para suas personalizações e de testar as alterações em um ambiente de desenvolvimento antes de aplicar em sua loja ao vivo.
Esperamos que este artigo e o código fornecido sejam úteis para aprimorar sua loja virtual! Se tiver alguma dúvida ou precisar de ajuda adicional, não hesite em perguntar.
