WooCommerce non prevede di default la possibilità di mostre il prezzo dei prodotti solamente agli utenti loggati. Questo articolo mostra una soluzione al problema senza l’utilizzo di plugin aggiuntivi, che permette di nascondere i prezzi ed il pulsante “Aggiungi al carrello” agli utenti non autenticati. Solo gli utenti loggati possono visualizzare i prezzi dei prodotti e procedere con l’acquisto. Ideale per cataloghi riservati, listini dedicati o siti web B2B.
Per nascondere il prezzo, inseriamo all’interno del file functions.php del tema il codice seguente:
// Nascondi prezzi e pulsante "Aggiungi al carrello" ai non loggati
add_filter( 'woocommerce_get_price_html', 'euge_hide_price_show_login_button', 99, 2 );
add_filter( 'woocommerce_cart_item_price', 'euge_hide_price_show_login_button', 99, 2 );
add_filter( 'woocommerce_cart_item_subtotal', 'euge_hide_price_show_login_button', 99, 2 );
function euge_hide_price_show_login_button( $price, $product ) {
if ( ! is_user_logged_in() ) {
$login_url = wc_get_page_permalink( 'myaccount' );
return '<a href="' . esc_url( $login_url ) . '" class="button login-to-see-price" style="margin-top:8px; display:inline-block;">
Accedi per vedere i prezzi
</a>';
}
return $price;
}
// Nascondi pulsante "Aggiungi al carrello" ai non loggati
add_filter( 'woocommerce_is_purchasable', 'euge_hide_add_to_cart_for_guests', 99, 2 );
function euge_hide_add_to_cart_for_guests( $purchasable, $product ) {
if ( ! is_user_logged_in() ) {
return false;
}
return $purchasable;
}








