Round discount value for both price and cart rules
Round discount values for both product and cart rules.
if(!function_exists('advanced_woo_discount_rules_round_discount_price')){
function advanced_woo_discount_rules_round_discount_price($price){
return wc_round_discount($price, 2);
}
}
add_filter('advanced_woo_discount_rules_discount_prices_of_product', function ($discount_prices, $product, $quantity, $cart_item){
//FOR CHANGING DISCOUNTED_PRICE you can change it in $discount_prices['discounted_price']
if(isset($discount_prices['discounted_price'])){
$discount_prices['discounted_price'] = advanced_woo_discount_rules_round_discount_price($discount_prices['discounted_price']);
}
if(isset($discount_prices['discounted_price_with_tax'])){
$discount_prices['discounted_price_with_tax'] = advanced_woo_discount_rules_round_discount_price($discount_prices['discounted_price_with_tax']);
}
if(isset($discount_prices['discount_lines'])){
foreach ($discount_prices['discount_lines'] as $key => $value){
if($key !== 'non_applied'){
$line_discount = $discount_prices['discount_lines'][$key]['discounted_price'];
$discount_prices['discount_lines'][$key]['discounted_price'] = advanced_woo_discount_rules_round_discount_price($line_discount);
}
}
}
return $discount_prices;
}, 10, 4);
add_filter('advanced_woo_discount_rules_discounts_of_each_rule', function ($discounts, $rule, $product_price){
if(!empty($discounts) && is_array($discounts)){
$discounts = array_map(
function($v){
return advanced_woo_discount_rules_round_discount_price($v);
}, $discounts);
}
return $discounts;
}, 10, 3);
add_filter('advanced_woo_discount_rules_coupon_value', function ($discount_value, $label, $cart_item_keys){
return advanced_woo_discount_rules_round_discount_price($discount_value);
}, 10, 3);