Applicare un coupon in base al peso totale dell’ordine WooCommerce

Applicare un coupon in base al peso totale dell'ordine WooCommerce

Quando abbiamo clienti che ordinano molti prodotti sul nostro Ecommerce e vogliamo premiarli con uno sconto, possiamo implementare una funzione che applica in automatico un coupon in base al peso totale dell’ordine che il cliente sta effettuando.

Utilizziamo questo codice che consentirà di applicare uno sconto se il peso totale dell’ordine è maggiore di 10 Kg.

add_action('woocommerce_before_calculate_totals', 'discount_based_on_weight_threshold');
function discount_based_on_weight_threshold( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    // Inserisci le tue impostazioni
    $coupon_code = 'CODICE_COUPON'; // Coupon code
    $weight_threshold = 10; // Total weight threshold

    // Inizializzazione delle variabili
    $total_weight = $cart->get_cart_contents_weight();
    $applied_coupons  = $cart->get_applied_coupons();
    $coupon_code = sanitize_text_field( $coupon_code );

    // Applicazione coupon
    if( ! in_array($coupon_code, $applied_coupons) && $total_weight >= $weight_threshold ){
        $cart->apply_coupon( $coupon_code );
        wc_clear_notices();
        wc_add_notice( sprintf(
            __("Il tuo ordine supera i %s quindi abbiamo applicato uno sconto del %s! Il tuo ordine totale pesa %s.", "woocommerce"),
            wc_format_weight( $weight_threshold ), '10%', '<strong>' . wc_format_weight( $total_weight ) . '</strong>'
        ), "notice");
    }
    // Rimozione del coupon
    elseif( in_array($coupon_code, $applied_coupons) && $total_weight < $weight_threshold ){
        $cart->remove_coupon( $coupon_code );
    }
}

Hai bisogno di personalizzazioni su WooCommerce?

Lascia un commento

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

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Torna in alto