businessdad icon

Flycart Woo Discount Rules - Basic Integration

businessdad | PRO | 09/11/19 08:36:55 AM UTC | 0 ⭐ | 1039 👁️ | Never ⏰ | []
PHP |

2.06 KB

|

None

|

0 👍

/

0 👎

/**
 * Basic integration between WooCommerce Discount Rules, by FlyCart, and 
 * WooCommerce Currency Switcher,  by Aelia (https://aelia.co). 
 * DISCLAIMER
 * Aelia and any member of its staff are not responsible for any data loss or damage incurred
 * when using the code, which you can use at your own risk.
 *
 * GPL DISCLAIMER
 * Because this code program is free of charge, there is no warranty for it, to the extent permitted by applicable law.
 * Except when otherwise stated in writing the copyright holders and/or other parties provide the program "as is"
 * without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of
 * merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the program
 * is with you. should the program prove defective, you assume the cost of all necessary servicing, repair or correction.
 *
 * Need a consultation, or assistance to customise this code? Find us on Codeable: https://aelia.co/hire_us
 */   
 
/**
 * Intercepts the discount set by the WooCommerce Discount Rules plugin and passes them
 * to the conversion functions.
 *
 * NOTES
 * This filter assumes that the price passed to it is always in shop's base currency, and
 * that function get_woocommerce_currency() always returns the correct active currency (i.e.
 * that other plugins DON'T change the currency returned by the Aelia Currency Switcher).
 *
 * @param float price
 * @param WC_Product product
 * @param WC_Cart cart
 * @return string|float
 */
add_filter('woo_discount_rules_before_apply_discount', function($price, $product, $cart) {
  if(is_numeric($price) && !empty($price)) {
    // Get the source currency. We assume that it's always shop's base currency
    $from_currency = get_option('woocommerce_currency');
    // Pass the price to the currency conversion filter provided by the Currency Switcher. This
    $price = apply_filters('wc_aelia_cs_convert', $price, $from_currency, get_woocommerce_currency());
  }
  
  return $price;
}, 10, 3);

Comments