Spesso capita, soprattuto negli e-commerce B2B, di dover impostare un minimo d’ordine solo su determinati paesi.
Per farlo è molto semplice, vi basterà utilizzare questo codice:
/** * @snippet Come impostare un minimo d'ordine per paesi specifici * @author Supercode */ function minimo_ordine_per_paesi_specifici( $order_id ) { $paesi_con_minimo_ordine = array('GB', 'FR' ); // Elenco dei codici ISO dei paesi che richiedono un importo minimo $importo_minimo = 250; // Modificare l'importo minimo desiderato if ( in_array( WC()->customer->get_billing_country(), $paesi_con_minimo_ordine ) ) { $order = wc_get_order( $order_id ); if ( WC()->cart->total < $importo_minimo ) { wc_add_notice( sprintf( 'L\'importo minimo d\'ordine per il tuo paese è di %s, attualmente il tuo ordine è di %s.', wc_price( $importo_minimo ), wc_price( WC()->cart->total ) ), 'error' ); } } } add_action( 'woocommerce_checkout_process', 'minimo_ordine_per_paesi_specifici' );
Ecco una spiegazione dettagliata del codice:
- Dichiarazione della funzione
minimo_ordine_per_paesi_specifici
: Questa funzione viene chiamata passandole l’ID dell’ordine come parametro. - Elenco dei paesi con un importo minimo d’ordine (
$paesi_con_minimo_ordine
): Viene creato un array contenente i codici ISO (ad esempio, ‘GB’ per il Regno Unito, ‘FR’ per la Francia) dei paesi per i quali si vuole imporre un importo minimo d’ordine. Questo elenco può essere modificato aggiungendo o rimuovendo codici paese in base alle esigenze. - Impostazione dell’importo minimo (
$importo_minimo
): Questa variabile definisce l’importo minimo richiesto per gli ordini dai paesi specificati nell’array precedente. L’importo è impostato a 250 (presumibilmente nella valuta predefinita del negozio), ma può essere modificato a seconda delle necessità. - Controllo del paese di fatturazione: Utilizzando
in_array
, il codice controlla se il paese di fatturazione del cliente (ottenuto tramiteWC()->customer->get_billing_country()
) è presente nell’elenco dei paesi che richiedono un importo minimo d’ordine. - Recupero dell’ordine e controllo dell’importo: Se il paese di fatturazione del cliente rientra tra quelli specificati, il codice procede recuperando i dettagli dell’ordine tramite
wc_get_order($order_id)
. Successivamente, verifica se il totale dell’ordine nel carrello (WC()->cart->total
) è inferiore all’importo minimo impostato. Se è così, viene visualizzato un messaggio di errore utilizzandowc_add_notice
. Questo messaggio informa il cliente che l’importo dell’ordine attuale è inferiore all’importo minimo richiesto per il suo paese, mostrando sia l’importo minimo che quello attuale dell’ordine. - Aggiunta dell’azione a WooCommerce: Infine, il codice utilizza
add_action
per agganciare la funzioneminimo_ordine_per_paesi_specifici
all’hookwoocommerce_checkout_process
. Ciò significa che la funzione verrà eseguita durante il processo di checkout di WooCommerce, permettendo di imporre l’importo minimo d’ordine per i paesi specificati prima che l’ordine venga completato.
In sintesi, questo codice assicura che gli ordini provenienti da determinati paesi raggiungano un importo minimo prima che il checkout possa essere completato con successo, aiutando a gestire le politiche di vendita internazionali o le esigenze specifiche del negozio online.
Come aggiungere questo codice personalizzato?
Copia e incolla il codice nel file “functions.php” presente nella cartella del tuo tema. Se usi un tema “child” inseriscilo all’interno della cartella del tema “child” e non nella cartella del tema principale.