Cerca
Filtra la ricerca ...
Frase esatta
Categorie

WooCommerce, come visualizzare i prezzi solo agli utenti registrati

Oggi vediamo una funzione molto utile per WooCommerce, infatti diversi siti ecommerce richiedono la registrazione per visualizzare il prezzo; in questa guida spiego come creare una funzione in PHP che :

  1. nasconde i prezzi se l’utente non è loggato
  2. visualizza un link per l’accesso o la registrazione
  3. nascondo il pulsante acquista / aggiungi al carrello
  4. nega l’ordine e di conseguenza il checkout se l’utente non è loggato

Per fare ciò vado a lavorare sulle action di WooCommerce, una documentazione molto utile la si trova sul sito ufficiale https://docs.woocommerce.com/wc-apidocs/hook-docs.html.

Passiamo subito al codice.

Come nascondere i prezzi dei prodotti WooCommerce agli utenti che non hanno fatto accesso.

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

programmatore woocommerce

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.

Nella mia funzione faccio il link punta alla pagina “myaccount”, endpoint nativo di WooCommerce, ma potete inserire il link che volete.

Ora per visualizzare il link aggiungiamo due action alla funziona di prima, che diventerà quindi

Il codice va inserito nel file functions.php del vostra template, oppure ancora meglio potete sviluppare un plugin per WordPress.

Il risultato lo vedete su questo sito a cui ho sviluppato il plugin.

 

 

Potrebbe interessarti anche ...

5 commenti su “WooCommerce, come visualizzare i prezzi solo agli utenti registrati”

  1. Ho provato ad utilizzare il codice:
    1) nella pagina dello shop come giustamente hai detto, appare la scritta, ma se si clicca sull’immagine va al prodotto e quindi si vede il prezzo;
    2) Il mio sito è in multilingua e anche traducendo la stringa in WPML mi da sempre e solo l’inglese.

    Rispondi
  2. Ciao Alessio, è passato un pò di tempo da quando hai scritto questo articolo ma lo script funziona bene. Ho notato però che il prezzo rimane visibile nel widget dei prodotto “Visti di recente” c’è modo di aggiungere una riga di “remove action” per il prezzo indicato?
    Ultima curiosità: di solito “add_action” viene posto fuori dalle parentesi graffe cosa che in questo caso non vedo, come mai?
    Grazie 😉

    Rispondi

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.