Come impostare un minimo d’ordine per paesi specifici

Woocommerce

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:

  1. Dichiarazione della funzione minimo_ordine_per_paesi_specifici: Questa funzione viene chiamata passandole l’ID dell’ordine come parametro.
  2. 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.
  3. 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à.
  4. Controllo del paese di fatturazione: Utilizzando in_array, il codice controlla se il paese di fatturazione del cliente (ottenuto tramite WC()->customer->get_billing_country()) è presente nell’elenco dei paesi che richiedono un importo minimo d’ordine.
  5. 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 utilizzando wc_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.
  6. Aggiunta dell’azione a WooCommerce: Infine, il codice utilizza add_action per agganciare la funzione minimo_ordine_per_paesi_specifici all’hook woocommerce_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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Compila questo campo
Compila questo campo
Inserisci un indirizzo email valido.
Devi accettare i termini per procedere