Olá pessoal, hoje eu quero mostar uma function para WooCommerce que talvez pode ser útil, porque eu sempre vejo pessoas perguntando: “Como Exibir no WooCommerce o Botão Comprar e o Preço somente após o cadastro”… É muito simples aplicar esse metodo…

Nessa imagem abaixo, podemos ver um modelo padrão da página de produto do WooCommerce:

woocommerce-with-price

Vamos dar inicio a esse tutorial, primeiramente vamos criar uma function, para ocultar o Preço do Produto.

Aplique esse código dentro do arquivo “functions.php” do seu tema ativo.

<?php
/*
* Function - Show the price only after logging
*/
add_filter('woocommerce_get_price_html','show_price_logged');
function show_price_logged($price){
if( is_user_logged_in() ){
return $price;
} else {
return '<a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '" title="Já tenho Conta" class="btn-myaccount">Já tenho Conta</a> ou <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '" title="Registrar para visualizar o preço!" class="btn-registrar">Registrar para visualizar o preço!</a>';
}
}
view raw functions.php hosted with ❤ by GitHub

Como vocês podem ver eu apliquei uma function chamada show_price_logged() no hook woocommerce_get_price_html do WooCommerce.

Após criar essa function eu realizei um verificação bem simples de usuário, se o cliente está logado “is_user_logged_in() ou não na loja…

Se o mesmo não estiver cadastrado na loja, será adicionado esses botões no local do preço:

woocommerce-function

Essa function que criamos será aplicada em todo o site onde existir preço, veja como fica no loop dos produtos:

woocommerce-loop-function

Para finalizar esse processo, vamos remover os botões de “Comprar ou Ver opções”. Como vocês podem ver nas imagens acima os mesmo ainda estão ativos, então agora vamos aplicar outra verificação para removê los:

<?php
/*
* Function - Remove Loop/Single Button Add to Cart
*/
add_action('init','remove_add_to_cart');
function remove_add_to_cart(){
if(is_user_logged_in()){}else{
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 );
}
}
view raw functions.php hosted with ❤ by GitHub

Nessa function que eu utilizei tem um conceito muito similar com o que já foi aplicado para remover o preço, mas a diferença que agora não vamos aplicar em um hook do WooCommerce e sim criamos uma function para sobrepondo um padrão do WooCommerce e removendo os botões.

Agora com essa function já podemos ver nas imagens tanto o preço e o botão comprar, já foram removidos e só seram exibidos após o cliente se cadastrar em sua loja.

Veja como ficou a página principal do seu produto:

woocommerce-remove-button

E também já foi alterado no loop dos produtos tanto na listagem dos produtos como nos produtos relacioados, que ficam logo abaixo do produto.

woocommerce-loop-remove-button

Espero que vocês tenham gostado desse tutorial e até breve, por favor se você gostou deixe seu like e também compartilha.

Até Mais

César Ribeiro
Written by

Hi, my name’s Cesar H. Ribeiro, I’m Brazilian and I live in São Paulo country town. I’ve been working with Web Development since 2006, I’m Web Developer Freelancer, my main specialty is deploying custom Web Sites using the WordPress platform with base, transforming PSD/Layouts for Custom Themes. In feel years with Developer Freelancer, I worked with many agencies around the world like: Brazil, Australia, USA, Germany and Austria.

Related Posts