Hai un sito e-commerce con WooCommerce? Ottimo! Decidi di aggiungere il pagamento alla consegna perchè, diciamocelo, molti clienti lo preferiscono in Italia. Dopo qualche mese, però, ti rendi conto che funziona benissimo… tranne quando non funziona affatto!
Il problema? Un sacco di gente non ritira i pacchi. Tu paghi la spedizione, la giacenza, il reso, e alla fine perdi solo soldi e pazienza.
A questo punto ti viene un’idea: “Mettiamo una commissione per il pagamento alla consegna!” Così chi vuole questo servizio se lo paga, e almeno recuperi qualcosa.
Carico a mille, vai su WooCommerce e cerchi il pulsante magico per aggiungere una tariffa extra al metodo di pagamento. Spoiler: non esiste.

Ma niente panico! Oggi ti spiego come farlo con due righe di codice, senza bisogno di installare un altro plugin che appesantisca il sito.
Pronto? Andiamo! 🚀
Come aggiungere una commissione al checkout di WooCommerce
Se speravi in una soluzione in due click… mi dispiace deluderti. Dovrai mettere mano al codice. Niente di complicato, ma se non ti va di sporcarti le mani, l’alternativa è installare un plugin che faccia il lavoro per te.
Personalmente, credo che evitare plugin inutili sia sempre una buona idea: più ne aggiungi, più il sito si rallenta e più aumentano le possibili rogne.
Quindi prenditi due minuti e fai questa piccola modifca manualmente. Ecco come fare.

Modifica il file functions.php del tuo tema
Apri il file functions.php del tuo tema (lo trovi in Aspetto -> Editor del tema o via FTP in /wp-content/themes/nome-tuo-tema/functions.php )
Aggiungi al file il seguente codice:
/** Add additional fee for cash on delivery payment method */
function woocommerce_add_checkout_fee_for_cash_on_delivery() {
$chosen_gateway = WC()->session->get('chosen_payment_method');
if ($chosen_gateway == 'cod') {
WC()->cart->add_fee(__('Cash on Delivery', 'sage'), 5);
}
}
add_action('woocommerce_cart_calculate_fees', 'woocommerce_add_checkout_fee_for_cash_on_delivery');
Ecco cosa fa questo codice:
- Controlla il metodo di pagamento selezionato dall’utente
- Se il metodo è “cod” (contrassegno), aggiunge una commissione di 5€
- Il valore della fee (5) può essere modificato a tuo piacimento
Usarlo per altri metodi di pagamento
Questo sistema non si applica solo al contrassegno. Puoi usarlo con qualsiasi metodo di pagmento, basta cambiare il codice identificativo.
Ecco alcuni esempi:
- Bonifico Bancario -> bacs
- Assegno -> cheque
- PayPal -> paypal
- Stripe (carte di credito) -> stripe
- Klarna -> klarna
- Scalapay -> scalapay
Come trovare i codici dei metodi di pagamento attivi
Non sei sicuro di quali metodi di pagamento siano attivi sul tuo WooCommerce? Nessun problema! Una questo snippet di codice per ottenere l’elenco direttamente nel footer della pagina checkout:
add_action('wp_footer', function() {
if (is_checkout()) {
$available_gateways = WC()->payment_gateways->get_available_payment_gateways();
echo '<pre>';
print_r(array_keys($available_gateways));
echo '</pre>';
}
});
Quandi visiti la pagina di checkout, vedrai un elenco come questo:
Array
(
[0] => ppcp-gateway
[1] => wc-scalapay-payin3
[2] => woocommerce_payments
[3] => cod
[4] => woocommerce_payments_klarna
)
Ora hai la lista completa dei codici e puoi usarli per applicare commissioni personalizzate ai diversi metodi di pagamento. 🤑

Conclusione
Aggiungere una commissione ai metodi di pagamento in WooCommerce è più semplice di quanto sembri, basta un piccolo snippet di codice e il gioco è fatto.
💡 Consiglio finale: se gestisci un e-commerce con WooCommerce, evita di installare troppi plugin per ogni singola funzione. Spesso basta un po’ di codice per fare la stessa cosa in modo più leggero ed efficiente.
Hai bisogno di una consulenza per il tuo sito WooCommerce? Scrivimi! 🚀
Visita anche il sito della mia agenzia per vedere tutti i servizi che offriamo.
Se ti è piaciuto questo articolo o ti è stato utile in qualche modo, lascia un commento, condividilo con i tuoi amici e seguimi sui social.
Grazie, mi hai salvata. al prossimo aggiornamento del tema mi si resetta? il function.php è uno dei file che vengono aggiornati?
Ciao Roberta,
Grazie per il tuo commento di incoraggiamento!
Se hai fatto la modifica su un tema acquistato molto probabilmente al prossimo aggiornamento perderai le modifiche.
Per far si che questo non accada la soluzione migliore è avere un tema child del tema acqauistato e modificare il functions.php nel tema child.
Se vuoi saperne di più sui temi child ti consiglio di leggere la documentazione ufficiale al seguente link https://developer.wordpress.org/themes/advanced-topics/child-themes/
Fammi sapere come và
Buon lavoro ;)