Я установил глобальную скидку 20% на все мои продукты woocommerce.Мне нужно создать процентный купон для корзины, который будет применяться к обычной цене продукта, а не к скидке 20%.
Я нашел следующий код:
add_filter('woocommerce_coupon_get_discount_amount', 'woocommerce_coupon_get_discount_amount', 10, 5 );
function woocommerce_coupon_get_discount_amount( $discount,
$discounting_amount, $cart_item, $single, $coupon ) {
if ($coupon->type == 'percent_product' || $coupon->type == 'percent') {
global $woocommerce;
$cart_total = 0;
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $cart_item ) {
$variable_product1= new WC_Product_Variation( $cart_item["variation_id"] );
$cart_total += $variable_product1 ->regular_price * $cart_item['quantity'];
}
$discount = round( ( $cart_total / 100 ) * $coupon->amount, $woocommerce->cart->dp );
return $discount;
}
return $discount;
}
Однакокажется, работает только для переменных продуктов в корзине.Как это можно изменить для работы как с переменными, так и с простыми продуктами в корзине?Спасибо.