Come utilizzare WooCommerce come catalogo

A volte, potrebbe essere necessario nascondere il pulsante acquista nel tuo WooCommerce, per disattivare la possibilità di acquistare i prodotti, anche se solo temporaneamente.
Non esiste un solo modo per farlo, questo è vero, ma ti posso consigliare quello che a mio parere è il migliore per compatibilità, semplicità e logica di funzionamento.
WooCommerce dispone di una funzione che controlla se il prodotto è vendibile oppure no in base ad una serie di fattori (se il prodotto esiste ancora ed è nello stato di pubblicato, ad esempio).
Al valore ritornato da questa funzione è applicato un filtro, che puoi alterare a piacimento per modificare lo stato di vendibilità e quindi, di fatto, disabilitare l’acquisto in WooCommerce.
- Leggi l'articolo, ti bastano solo 1 minuto, 54 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Il codice
Modifica quindi il file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
ed aggiungi le seguenti linee di codice:
// Disabilita la vendita dei prodotti add_filter( 'woocommerce_is_purchasable', '__return_false' );
In questo modo, tutti i prodotti vengono considerati non disponibili all’acquisto, cosa che disabilita la visualizzazione del tasto ACQUISTA, non permettendo quindi l’aggiunta al carrello dei prodotti.
Approfondimento: un passo verso il B2B
Naturalmente, questo tipo di filtro può essere utilizzato in maniera condizionale; ad esempio, spesso potresti avere la necessità di disabilitare l’acquisto solo per gli utenti non loggati. Semplice!
È necessario estendere quanto visto nel paragrafo precedente ed il gioco è fatto:
// Disabilita la vendita dei prodotti agli utenti non loggati add_filter( 'woocommerce_is_purchasable', function( $purchasable, $product ) { return is_user_logged_in() ? $purchasable : false; } );
Avrai sicuramente notato che stavolta la funzione richiamata dal filtro ha due parametri:
$purchasable
è una variabile di tipo booleano (vero/falso) che indica se il prodotto è vendibile o meno;
$product
è un oggetto istanza della classe WC_Product;
Nel caso preso in esame, non abbiamo fatto altro che controllare, tramite la funzione is_user_logged_in(), se l’utente che sta attualmente visitando il sito è loggato; in caso affermativo, restituiamo il valore originale della variabile $purchasable senza alterarlo, mentre nel caso l’utente non fosse loggato, restituiamo il valore false, disabilitando la possibilità di acquistare il prodotto.
Semplice no?