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 );
}
}








