Hai bisogno di un E-Commerce che funziona davvero?
Contattami Ora!Come mostrare la spedizione gratuita solo agli utenti loggati in WooCommerce
Se stai cercando un modo per offrire la spedizione gratuita solo ai clienti registrati, sei nel posto giusto. In WooCommerce non esiste un’opzione standard per farlo, ma con un semplice snippet PHP puoi ottenere questo risultato in modo elegante e funzionale.
In questa guida ti spiego come funziona, dove inserirlo e come personalizzarlo se vuoi ampliare la logica.
Perché limitare la spedizione gratuita agli utenti loggati
Offrire la spedizione gratuita come vantaggio per i clienti registrati è una strategia intelligente. Ecco alcuni motivi:
- 🔐 Incentiva la registrazione → più utenti registrati = più fidelizzazione
- 💬 Puoi inviare offerte personalizzate via email
- 💼 Gestione ordini più precisa grazie ai dati del cliente
- 🧠 Segmentazione marketing più efficace
In pratica: stai premiando chi si registra, offrendo un piccolo ma concreto vantaggio. Vediamo subito come farlo.
Snippet PHP per mostrare solo la spedizione gratuita agli utenti loggati
Ecco lo snippet che ti permette di nascondere tutte le opzioni di spedizione tranne quella gratuita – ma solo se il cliente ha fatto login.
add_filter('woocommerce_package_rates', 'mostra_solo_spedizione_gratuita_utenti_loggati', 100, 2);
function mostra_solo_spedizione_gratuita_utenti_loggati($rates, $package) {
// Se l'utente NON è loggato, mostra tutte le opzioni
if (!is_user_logged_in()) {
return $rates;
}
// Controlla se esiste almeno una spedizione gratuita
$spedizione_gratuita = array();
foreach ($rates as $rate_id => $rate) {
if ('free_shipping' === $rate->method_id) {
$spedizione_gratuita[$rate_id] = $rate;
}
}
// Se esiste almeno una spedizione gratuita, mostra solo quella
return !empty($spedizione_gratuita) ? $spedizione_gratuita : $rates;
}
Come installare lo snippet
1. Metodo consigliato: plugin Code Snippets
- Vai su Plugin > Aggiungi nuovo
- Cerca “Code Snippets“
- Installa e attiva il plugin
- Vai su Snippet > Aggiungi nuovo
- Incolla il codice
- Salva e attiva
💡 Semplice, sicuro e non rischi di perdere le modifiche con gli aggiornamenti del tema.
2. Metodo alternativo: file functions.php
del tema child
- Vai su:
/wp-content/themes/tuo-tema-child/functions.php
- Apri il file e incolla lo snippet in fondo
- Salva le modifiche
⚠️ Usa sempre un tema child, altrimenti le modifiche andranno perse agli aggiornamenti.
Come funziona lo snippet
Vediamolo in modo semplice:
Controlla se l’utente è loggato:
if (!isuser_logged_in()) return $rates;
Cerca le opzioni di spedizione gratuita nel carrello:
if ('free_shipping' === $rate->method_id)
Se c’è almeno una spedizione gratuita, mostra solo quella.
Altrimenti, mostra tutte le altre opzioni.
💡 Per gli utenti non loggati, WooCommerce continua a mostrare tutte le opzioni di spedizione normalmente.
Conclusione: premia i tuoi clienti registrati
Con questo semplice snippet puoi premiare la registrazione al sito offrendo la spedizione gratuita solo agli utenti loggati. Una soluzione pratica per:
✅ Fidelizzare
✅ Ridurre abbandoni del carrello
✅ Incentivare la creazione di account
✅ Semplificare la logistica
In più, tutto funziona senza plugin esterni e si integra perfettamente con WooCommerce.