Je voudrais appliquer un coupon automatiquement en fonction du montant total dépensé par le client. Ce coupon doit être appliqué une seule fois par le client.
C'est ce que j'ai essayé jusqu'à présent, mais je n'obtiens qu'un écran vide :
add_action( 'woocommerce_before_calculate_totals', 'loyalty_order_discount', 10, 1 );
function loyalty_order_discount( $order_id ) {
global $woocommerce;
$coupon = 'loyaltydiscount';
$customer = new WC_Customer(get_current_user_id());
$total_spent = 30;
$order = wc_get_order( $order_id );
foreach( $order->get_used_coupons( $customer ) as $coupon_name ){
// Retrieving the coupon ID
$coupon_post_obj = get_page_by_title($coupon_name, OBJECT, 'shop_coupon');
$coupon_id = $coupon_post_obj->ID;
$coupons_obj = new WC_Coupon($coupon_id);
if( $coupons_obj == $coupon && $customer->get_total_spent() < $total_spent ){
$woocommerce->cart->remove_coupon( $coupon );
}
elseif ( ! $coupons_obj == $coupon && $customer->get_total_spent() >= $total_spent){
$woocommerce->cart->add_discount( $coupon );
}
}
}
Toute aide est appréciée.