Nascondere prezzi in WooCommerce. Hai un negozio online o stai per crearlo ed hai l’esigenza di far visualizzare i prezzi dei vari prodotti solo per gli utenti che si sono registrati nel tuo sito ecommerce; ora vedremo come nascondere i prezzi in WooCommerce, per essere più preciso vedremo come fare per far visualizzare i prezzi solo agli utenti registrati.
Sommario
Nascondere prezzi in WooCommerce
Vediamo una funzione molto utile: nascondere prezzi in WooCommerce utilizzata da diversi siti ecommerce che richiedono la registrazione per visualizzare il prezzo del prodotto.
In questa mini guida vi mostrerò come nascondere i prezzi di WooCommerce da codice senza l’utilizzo di plugin.
Occorre creare una funzione PHP che :
- nasconde i prezzi se l’utente non è loggato
- mostra un link per effettuare l’accesso o la registrazione al sito
- nasconde il pulsante acquista\ aggiungi al carrello
- nega l’ordine e di conseguenza il check-out se l’utente non è loggato.
Nascondere il prezzo dei prodotti agli utenti non registrati
Per prima cosa inizializziamo la funzione che andiamo a scrivere con : add_action(‘init’, ‘woo_hide_action’);
Ora scriviamo la funzione che nasconde il pulsante Acquista e Aggiungi al Carrello
function woo_hide_action() {
if ( !is_user_logged_in() ) {
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 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
}
}
Come si può notare prima di rimuovere i filtri eseguo un controllo per vedere se l’utente è loggato utilizzando la funzione di WordPress is_user_logged_in(), quindi se non è loggato procedo con la mia funzione.
A questo punto abbiamo quindi eliminato i due pulsanti, ora però per non limitarci solo a nasconderli senza dare un motivo apparente all’utente che naviga, scriviamo un’altra funzione PHP che mostrà il link per accedere o registrarsi.
Funzione Accedi/Registrazione
Ora, nella funzione faccio il link punta alla pagina “myaccount”, endpoint nativo di WooCommerce, ma potete inserire il link che volete.
function woo_show_login() {
echo '<a class="button" style="white-space:pre-wrap;line-height:20px;"
href="' . get_permalink(wc_get_page_id('myaccount')) . '">'
. __('Accedi per vedere i prezzi e ordinare', 'theme_name') . '</a>';
}
Ora per visualizzare il link aggiungiamo due action alla funziona di prima, che diventerà quindi
add_action('init', 'woo_hide_action');
function woo_hide_action() {
if ( !is_user_logged_in() ) {
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 );
remove_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_price’, 10 );
remove_action( ‘woocommerce_after_shop_loop_item_title’, ‘woocommerce_template_loop_price’, 10 );
add_action( ‘woocommerce_single_product_summary’, ‘woo_show_login’, 31 );
add_action( ‘woocommerce_after_shop_loop_item’, ‘woo_show_login’, 11 );
}
}
function woo_show_login() {
echo ‘<a class=”button” style=”white-space:pre-wrap;line-height:20px;” href=”‘ . get_permalink(wc_get_page_id(‘myaccount’)) . ‘”>’ . __(‘Accedi per vedere i prezzi e ordinare’, ‘theme_name’) . ‘</a>’;
}
Conclusione
Il codice che trovi in questo post va inserito nel file functions.php del tuo sito web. Ti consiglio di inserirlo nel tema child in modo che non perdi le modifiche in caso di aggiornamento del tuo tema installato.
Bene, ora puoi nascondere prezzi in WooCommerce e forzare i tuoi utenti a registrarsi sul tuo sito web.
Se vuoi puoi anche consultare la documentazione di WooCommerce.
Per qualsiasi chiarimento o approfondimento, non esitare a contattarmi lasciando un commento.
Se invece ti è semplicemente piaciuto questo articolo o lo hai trovato utile, condividilo! ?