Я занимаюсь разработкой магазина Woocommerce и хочу предложить всем членам (пользователям, вошедшим в систему) скидку 20% на их итоговую сумму.
Я создал купон под названием «Twinspercent_off», и я программно применяю его с помощью пользовательского функция и хук в моих функциях. php. Это хорошо работает.
В настройках W C я установил флажок «Рассчитать купонные скидки последовательно», и это работает почти так, как я ожидал. Тем не менее, я хотел бы, чтобы мой «fiftypercent_off» всегда применялся последним в случаях, когда есть несколько купонов.
Независимо от того, что я пытался сделать (l oop через все купоны в текущем порядке, удалите все купоны, добавьте их обратно в нужном мне порядке) Я считаю, что Woo-commerce, кажется, всегда применяет их в порядке экономии денежных средств.
Например, если клиент заказывает продукты на сумму 100 долларов, и у них есть купон на 25 долларов, а также квалифицированный для получения 20% от общей суммы.
Я бы хотел рассчитать общую сумму как (100 -25) * 0,8 = 60
, но W C рассчитывается как такие (100 * 0,8) - 25 = $ 55
Я попробовал следующее, но без разницы:
if ( is_user_logged_in() ) {
$Coupon_code = 'twentypercent_off';
$Current_Coupons = WC()->cart->get_coupons();
$Non_Prog_Coupons=array();
// loop through all current coupons
foreach( $Current_Coupons as $code => $coupon ){
if($code==$coupon_code){
WC()->cart->remove_coupon( $code );
} else {
WC()->cart->remove_coupon( $code );
$Non_Prog_Coupons[]=$code; // array of non-programmatically added coupons
}
}
// loop through non-programmatically added coupons
foreach( $Non_Prog_Coupons as $x => $code ){
WC()->cart->add_discount( $code ); // add them again
}
// add programmatically added coupon last !
WC()->cart->add_discount($Coupon_code);
}
return;
Единственное возможное решение, с которым я столкнулся, это применить скидку 20%. в качестве отрицательной платы, которая не подходит для наших целей и была бы абсолютным последним средством
Любые идеи о том, как этого добиться, будут высоко оценены