Я создал купон Woocommerce с типом скидки, установленным на фиксированную скидку корзины и начальную сумму купона.
Я хочу, чтобы купон функционировал таким образом, чтобы, когда покупатель вводит код купона, вычисляется общая скидка и устанавливается как сумма купона. Я использую ловушку woocommerce_applied_coupon в файле function.php темы.
Вот как я кодировал:
add_action( 'woocommerce_applied_coupon', 'action_woocommerce_applied_coupon', 10, 3 );
function action_woocommerce_applied_coupon( $array, $int, $int ){
$total_discount = 0;
$wc = wc();//use the WC class
foreach($wc->cart->get_cart() as $cart_item){
//loop through each cart line item
$total_discount += ...; //this is where the total discount is computed
}
//use the WC_COUPON class
$wc_coupon = new WC_Coupon("coupon-code");// create an instance of the class using the coupon code
$wc_coupon->set_amount($total_discount);//set coupon amount to the computed discounted price
var_dump($wc_coupon->get_amount());//check if the coupon amount did update
}
Var_dump отображает $ total_discount. Но когда я проверил итоги корзины, я все еще вижу начальную сумму купона как скидку.
Как мне обновить сумму купона и применить ее в качестве скидки к общей сумме корзины?