Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Aelia Currency Switcher for WooCommerce - Return the price of a product in
- * a specific currency.
- *
- * HOW TO USE THIS CODE
- * Add the code to the bottom of your theme's functions.php file (see https://www.skyverge.com/blog/add-custom-code-to-wordpress/).
- * After doing so, call function aelia_get_product_price_in_currency() to get
- * the product price in a specific currency.
- *
- * Examples
- * --------
- * In the following examples, "123" is a product ID. You can also pass an instance
- * of a product to the function.
- * - aelia_get_product_price_in_currency(123, 'EUR', 'incl'); // Get product price in EUR, inclusive of tax
- * - aelia_get_product_price_in_currency(123, 'EUR', 'excl'); // Get product price in EUR, exclusive of tax
- * - aelia_get_product_price_in_currency(123, 'USD', 'incl'); // Get product price in USD, inclusive of tax
- * - aelia_get_product_price_in_currency(123, 'USD', 'excl'); // Get product price in USD, exclusive of tax
- *
- * 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
- */
- /**
- * Returns a product price, inclusive or exclusive of tax, in a specific currency.
- *
- * @param WC_Product product
- * @param string currency
- * @param incl_tax
- * @return float
- */
- function aelia_get_product_price_in_currency($product, $currency, $incl_tax) {
- if(is_numeric($product)) {
- $product = wc_get_product($product);
- }
- // Create a dynamic function that will allow to set the currency on the fly
- $currency_override_func = function($selected_currency) use ($currency) {
- return $currency;
- };
- // Set the currency to the specified one
- add_filter('wc_aelia_cs_selected_currency', $currency_override_func, 10);
- // Get the price inclusive of exclusive of tax
- switch($incl_tax) {
- case 'incl':
- $price = wc_get_price_including_tax($product);
- break;
- case 'excl':
- $price = wc_get_price_excluding_tax($product);
- break;
- default:
- $price = $product->get_price();
- }
- // Remove the custom filter, to restore the original currency, before
- // returning the price
- remove_filter('wc_aelia_cs_selected_currency', $currency_override_func, 10);
- return $price;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement