Created
November 30, 2021 10:38
-
-
Save AnanthFlycart/69a75d30e7a15ae9b228a8129a1a775b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Round discount value for both Price and Cart Rules (Ex: 9.99 round down to 9.95 and 9.94 round down to 9.90) | |
| if (!function_exists('advanced_woo_discount_rules_round_discount_price')) { | |
| function advanced_woo_discount_rules_round_discount_price($price) { | |
| $rounded_price = wc_round_discount($price, 1); | |
| $diff = wc_round_discount($price - $rounded_price, 2); | |
| if ($diff == 0.05) { | |
| return $rounded_price + 0.05; | |
| } else if ($diff >= 0) { | |
| return $rounded_price; | |
| } else { | |
| return $rounded_price - 0.05; | |
| } | |
| } | |
| } | |
| 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); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment