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:
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>'; | |
} | |
} |
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:
Essa function que criamos será aplicada em todo o site onde existir preço, veja como fica no loop dos produtos:
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 ); | |
} | |
} |
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:
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.
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