=== Currency Switcher for WooCommerce Pro ===
Contributors: wpwham
Tags: currency switcher, multicurrency, multi currency, currency, switcher
Requires at least: 4.4
Tested up to: 6.9
Stable tag: 2.16.6
Currency Switcher for WooCommerce.
== Description ==
Currency Switcher for WooCommerce.
= Features =
* Automatic currency exchange rates updates.
* Prices on per product basis.
* Currency by country (i.e. by IP).
* Currency by language (i.e. locale).
* Option to revert to original currency on checkout.
* Option to override currency by user selected billing or shipping country.
* Various currency switcher placement and format options.
* Option to add currency switcher as widget or as shortcodes.
* Option to additionally change order currency by admin.
= Currency Switcher Shortcodes =
* `[woocommerce_currency_switcher_drop_down_box]` - currency switcher in drop down box format.
* `[woocommerce_currency_switcher_radio_list]` - currency switcher in radio list format.
* `[woocommerce_currency_switcher_link_list]` - currency switcher in links list format.
= More Shortcodes =
* `[woocommerce_currency_switcher_product_price_table]` - product prices preview in all currencies.
* `[woocommerce_currency_switcher_convert_price]` - convert any price to another currency.
* `[woocommerce_currency_switcher_current_currency_symbol]` - show current currency symbol.
* `[woocommerce_currency_switcher_current_currency_code]` - show current currency code.
= Feedback =
* We are open to your suggestions and feedback. Thank you for using or trying out one of our plugins!
* Drop us a line at [https://wpwham.com](https://wpwham.com).
= More =
* Visit the [Currency Switcher for WooCommerce plugin page](https://wpwham.com/products/currency-switcher-for-woocommerce/).
== Installation ==
1. Upload the entire 'currency-switcher-woocommerce-pro' folder to the '/wp-content/plugins/' directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Start by visiting plugin settings at WooCommerce > Settings > Currency Switcher.
== Screenshots ==
1. Currency Switcher for WooCommerce - Currencies.
2. Currency Switcher for WooCommerce - Exchange Rates.
3. Currency Switcher for WooCommerce - Currency Countries (by IP).
4. Currency Switcher for WooCommerce - General.
5. Currency Switcher for WooCommerce - General - Switcher Placement and Format.
6. Currency Switcher for WooCommerce - General - Exchange Rates Final Price Correction.
7. Currency Switcher for WooCommerce - General - Advanced Options.
8. Currency Switcher for WooCommerce - Price Formats.
9. Currency Switcher for WooCommerce - Languages.
10. Currency Switcher for WooCommerce - Shortcodes - Product Price Table.
== Changelog ==
= 2.16.6 - 2026-03-16 =
* FIX: additional currencies not displaying in certain circumstances (107135).
= 2.16.5 - 2026-03-07 =
* FIX: PHP notices.
* FIX: missing some data on Analytics pages when HPOS enabled (104281).
= 2.16.4 - 2025-05-31 =
* FIX: PHP notice.
= 2.16.3 - 2025-03-06 =
* FIX: PHP 8.2 notices.
* FIX: currency not changing from admin edit order page metabox when HPOS enabled (92665).
= 2.16.2 - 2024-09-26 =
* FIX: PHP error on admin "Add New Order" page (89847, 89530).
= 2.16.1 - 2024-08-30 =
* FIX: PHP error on admin "Add New Order" page.
= 2.16.0 - 2024-08-29 =
* NEW: added new exchange rate server: Currencyapi.com.
* UPDATE: reorganize settings slightly for improved clarity.
* UPDATE: updated .pot file for translations.
= 2.15.2 - 2023-07-07 =
* FIX: PHP 8.2 notices.
* NEW: added filter "wpwham_currency_switcher_change_shipping_price_by_currency" (thanks to Elias Chalhoub).
* NEW: added submit button to allow for form submission with JS disabled (thanks to @jacobeva).
= 2.15.1 - 2022-07-07 =
* FIX: conflict with WP block widgets.
* FIX: various issues with WC reports filter.
= 2.15.0 - 2021-10-07 =
* NEW: added compatibility with "WooCommerce Product Add-ons" plugin.
* FIX: issue with WooCommerce Price Filter Widget min/max prices not applying exchange rate.
* FIX: clear out per-product sale prices from all currencies after sale ends. (WooCommerce automatically deletes the sale price in the shop's default currency; we added a hook to do the same thing for any additional currencies. If you don't want this and want to keep the old prices, use the new hook 'wpwham_currency_switcher_cleanup_ended_sales_prices').
* UPDATE: PHP 8 now officially supported.
* UPDATE: performance improvement -- load our admin assets only when needed.
* UPDATE: updated .pot file for translations.
= 2.14.0 - 2021-04-07 =
* NEW: added a setting "Apply Currency Conversion to Shipping Amount". (Previously, the shipping amount was always adjusted).
* NEW: added a setting "Apply Currency Conversion to WooCommerce Price Filter Widget". (Previously, the price filters were always adjusted).
* NEW: added filter 'wpw_currency_switcher_adjust_package_rate' so you can disable currency conversion on shipping programmatically, either for one shipping method or for all.
* FIX: added a fallback method to try and fetch exchange rates a different way if simplexml_load_file fails (e.g. simplexml_load_file will fail if the server configuration has allow_url_fopen=0).
* FIX: analytics currency filters updated to work with newer versions of Woo Admin.
* FIX: make WooCommerce Price Filter Widget apply currency conversion when filtering.
* FIX: updated CoinMarketCap to use latest API version. (NOTE: CoinMarketCap now requires an API Key -- if you are using this service, you must obtain a key and enter it in the settings under WooCommerce / Settings / Currency Switcher / Exchange Rates).
* FIX: various issues with National Bank of Georgia exchange rates: error when a certain currency pair is not available; results not always returned in the same order; exchange rates which are quoted in quantities other than 1.
* UPDATE: added support for custom headers in remote API calls (necessary now for CoinMarketCap).
* UPDATE: improved UI on exchange rate settings page: you can now test different servers' exchange rates without having to save your settings between each one.
* UPDATE: updated .pot file for translations.
= 2.13.0 - 2021-01-19 =
* NEW: Ability to filter WooCommerce Analytics by currency.
* FIX: add 'post_type==shop_order' check to function 'is_admin_order_page' (thanks to Pablo).
* FIX: include 'currency' argument in function 'price_format' (thanks to Pablo).
* FIX: issue on product edit page where variations tab shows the current currency code from the frontend, instead of the shop default.
= 2.12.4 - 2020-09-17 =
* UPDATE: bump tested versions
= 2.12.3 - 2020-08-20 =
* FIX: apply currency conversion to coupon min/max thresholds.
* FIX: shipping price doesn't adjust in cart if subtotal is zero.
* UPDATE: minor text change.
* UPDATE: updated .pot file for translations.
* UPDATE: updated updater.
= 2.12.2 - 2020-08-07 =
* FIX: issue where changing back to default locale does not also switch back to default currency. (When using "Currency Languages (Locales)" feature).
* FIX: PHP notice.
* UPDATE: display our settings in WC status report.
* UPDATE: updated .pot file for translations.
= 2.12.1 - 2020-06-13 =
* FIX: possible conflict with Polylang (i.e. our plugin loading too early, before Polylang is ready)
* UPDATE: minor text change.
* UPDATE: updated .pot file for translations.
= 2.12.0 - 2020-05-27 =
* NEW: added new exchange rate servers: Bank of England, TCMP.
* UPDATE: updated Free Currency Converter API to v7, including new API Key requirement. (Free Currency Converter now requires an API Key -- if you are using this service, you must obtain a key and enter it in the settings under WooCommerce / Settings / Currency Switcher / Exchange Rates).
* UPDATE: removed Google Finance API (service was discontinued).
* UPDATE: miscellaneous refactoring.
* UPDATE: updated .pot file for translations.
= 2.11.5 - 2019-12-17 =
* UPDATE: bump tested versions
= 2.11.4 - 2019-11-15 =
* UPDATE: bump tested versions
= 2.11.3 - 2019-11-04 =
* FIX: issue where scheduled sale prices ignore the schedule
= 2.11.2 - 2019-10-31 =
* FIX: issue where someone could force a currency that is not enabled in the settings
= 2.11.1 - 2019-09-29 =
* FIX: possible PHP error
= 2.11.0 - 2019-08-14 =
* NEW: Added compatibility with WooCommerce Chained Products plugin (https://woocommerce.com/products/chained-products/)
= 2.10.0 - 2019-07-23 =
* NEW: implement software licensing system; allows for one-click updates of the Premium version
* UPDATE: updated .pot file for translations
= 2.9.5 - 2018-11-06 =
* Improve CURL setup
* Add option to format price on admin order page
* Fix cart currency when cart is empty
= 2.9.4 - 2018-09-22 =
* Explain how to force currency by url on readme
* Replace currency input step from 'ALG_WC_CS_EXCHANGE_RATES_STEP' to 'any'
= 2.9.3 - 2018-09-11 =
* Fix price filter widget currency format
* Fix price filter rounding
* Add 'alg_wc_currency_switcher_correction' filter to override 'Final Price Correction options'
* Add FAQ question about override rounding with 'alg_wc_currency_switcher_correction' filter
= 2.9.2 - 2018-09-10 =
* Add CoinMarketCap exchange server
* Add CoinMarketCap question on FAQ
= 2.9.1 - 2018-09-10 =
* Add Free Currency Converter API exchange server
* Remove Yahoo exchange server
* Remove Fixer.io exchange server
* Remove CoinMarketCap exchange server
= 2.9.0 - 2018-08-21 =
* Add question on plugin's description about getting converted values
* Add 'alg_wc_cs_get_exchange_rate' filter allowing managing the exchange rate externally
* Add 'National Bank of Georgia' exchange server
= 2.8.9 - 2018-08-08 =
* Improve compatibility with WooCommerce Product Addons plugin
* Add compatibility with price filter widget
= 2.8.8 - 2018-07-30 =
* Add compatibility with WooCommerce Product Addons plugin
* Add karzin as contributor
= 2.8.7 - 2018-07-13 =
* Dev - Admin settings descriptions updated.
= 2.8.6 - 2018-06-14 =
* Fix - Exchange Rates - "Google" exchange rates server removed (fallback - default "European Central Bank (ECB)" server).
* Dev - Countries - "Override Country" options added.
* Dev - General - Order Options - "Order Currency" options added.
* Dev - `alg_convert_price()` function (and `[woocommerce_currency_switcher_convert_price]` shortcode) - Special `%cart_total%` case for `price` attribute added; `currency_from` attribute (empty by default) added.
* Dev - Plugin link updated from https://wpcodefactory.com to https://wpfactory.com.
= 2.8.5 - 2018-05-08 =
* Dev - General - "Apply Currency Conversion for Cart Fees" option added.
* Dev - General - Exchange Rates Final Price Correction Options - "Apply Rounding and Pretty Price to Shipping Rates" option added.
= 2.8.4 - 2018-04-20 =
* Dev - `[woocommerce_currency_switcher_link_list]` - `no_links` attribute added.
* Dev - `[woocommerce_currency_switcher_link_list]` - `%product_price%` - Checking for single product page disabled.
= 2.8.3 - 2018-03-07 =
* Dev - Advanced - Section added (some options moved from "General" section).
* Dev - Advanced - "Default customer location" option added.
* Dev - Advanced - "Show Flags in Admin Settings Section" option removed.
* Dev - Core - Variation price hash - Minor changes.
* Fix - Flags - Checking file to exist at URL - Removed.
* Dev - Flags - "World" and "N/A" flags added (e.g. for Bitcoin etc.).
* Dev - Flags - Some cryptocurrencies icons added.
* Dev - Flags - `alg_wc_currency_switcher_country_flag_image_url` filter added.
* Dev - Functions - Selector - Code refactoring (`alg_get_country_flag_code()` function added).
= 2.8.2 - 2018-02-21 =
* Dev - Exchange Rates - Server - "Google" server added.
= 2.8.1 - 2018-01-28 =
* Dev - Exchange Rates - "Offset" options added.
* Dev - Code refactoring.
* Fix - Session (WC) functions - Additional checks added.
* Dev - "WC tested up to" added to plugin header.
= 2.8.0 - 2017-12-26 =
* Dev - General - Advanced Options - WooCommerce v3.2 compatibility - Apply Currency Conversion for Fixed Amount Coupons.
* Dev - General - Advanced Options - Show Flags in Admin Settings Section - Defaults to `no` now.
* Dev - General - Advanced Options - "Add Base Currency for Fixed Amount Coupons" option added.
* Dev - General - Advanced Options - "Price Filters to Remove" option added.
* Dev - Exchange Rates - Secondary server option added.
* Dev - Exchange Rates - Precision set 12 decimals (was 6).
* Dev - Exchange Rates - Server - "CoinMarketCap" server added.
* Dev - Exchange Rates - Server - "Coinbase" server added.
* Dev - Functions - Exchange Rates - Code refactoring - `alg_get_currency_exchange_rates_url_response()` function added.
* Dev - Functions - Code refactoring - Exchange rates functions moved to a new `alg-switcher-exchange-rates-functions.php` file.
* Dev - `uninstall.php` added.
= 2.7.0 - 2017-11-12 =
* Dev - General - Advanced Options - "Session Save Path" option added.
* Dev - Exchange Rates - Server - Yahoo finance - URL updated.
* Dev - Exchange Rates - Server - "Fixer.io" server added.
* Dev - Exchange Rates - Server - Default value changed to "European Central Bank".
= 2.6.0 - 2017-10-16 =
* Dev - WooCommerce v3.2 compatibility - Admin settings - `select` settings type fixed.
* Dev - WooCommerce v3.2 compatibility - `change_shipping_price_by_currency()` - Taxes.
* Dev - `[woocommerce_currency_switcher_current_currency_symbol]` and `[woocommerce_currency_switcher_current_currency_code]` shortcodes added.
* Dev - General - Advanced Options - "Price Conversion Method" option added.
* Dev - "Global" flag image added.
* Dev - Settings sections array saved as main class property.
= 2.5.2 - 2017-09-05 =
* Dev - General - Switcher Placement and Format Options - "Link List Switcher - Separator" option added.
= 2.5.1 - 2017-09-03 =
* Fix - Price Formats - "Currency Code" option renamed to "Currency Symbol".
* Dev - Flags - Settings description updated.
= 2.5.0 - 2017-09-02 =
* Dev - `format_price` attribute (defaults to `yes`) added to `alg_convert_price()` function (and `[woocommerce_currency_switcher_convert_price]` shortcode).
* Dev - "Currency Languages (Locales)" section added.
* Dev - General - "Show Flags in Admin Settings Section" option added.
* Dev - General - Settings section restyled.
* Dev - Countries - "Enter Countries as Comma Separated Text" option added.
* Dev - Countries - Section renamed from "Currency Countries (by IP)".
* Dev - Price Formats - "Currency Code" options added.
* Dev - Minor code refactoring.
= 2.4.4 - 2017-08-02 =
* Dev - Flags added.
= 2.4.3 - 2017-07-30 =
* Fix - General - Pretty Price - If "Price Formats" section is enabled - now uses corresponding currency "Number of decimals" instead of shop's default.
* Dev - General - Advanced Options - "Apply Rounding and Pretty Price to Shop's Default Currency" option added.
* Dev - Price Format - Default shop currency added ("Additional currency code position (optional)" as new option; other options are copied from "WooCommerce > Settings > General").
* Dev - Functions - `alg_get_product_price_by_currency()` - Code refactoring.
= 2.4.2 - 2017-07-29 =
* Fix - Skipping price by currency calculation for shop default currency (this fixes the issue with original prices rounded, when rounding is enabled).
* Fix - Skipping price formatting for shop default currency.
= 2.4.1 - 2017-07-28 =
* Dev - `[woocommerce_currency_switcher_convert_price]` shortcode added.
= 2.4.0 - 2017-07-03 =
* Dev - "Price Formats" section added.
* Dev - "Reset settings" option added.
* Dev - Autoloading plugin options.
* Dev - Code cleanup.
* Dev - Plugin link updated from http://coder.fm to https://wpcodefactory.com.
= 2.3.1 - 2017-05-21 =
* Dev - "Apply Currency Conversion for Fixed Amount Coupons" option added.
= 2.3.0 - 2017-04-14 =
* Dev - WooCommerce v3.x.x compatibility - Price filters.
* Dev - WooCommerce v3.x.x compatibility - Product ID.
* Dev - WooCommerce v3.x.x compatibility - `alg_get_product_display_price()`.
* Dev - WooCommerce v3.x.x compatibility - `wc_get_formatted_variation()`.
* Fix - `alg_get_product_price_html_by_currency()` - variable and grouped products fixed.
* Dev - Functions - `alg_get_exchange_rate_yahoo()` - cURL prioritized over `allow_url_fopen` (`file_get_contents()`).
* Tweak - Per product settings metabox restyled.
= 2.2.4 - 2017-03-11 =
* Dev - General - "Switcher Wrapper" option added.
* Dev - General - Switcher Item Format - `%currency_symbol%` value added.
* Dev - General - Switcher Item Format - `%product_price%` value added.
* Dev - `[woocommerce_currency_switcher_product_price_table]` shortcode added.
* Dev - Code refactoring.
= 2.2.3 - 2017-03-06 =
* Dev - General - "Reposition Page after Currency Switch" option added.
= 2.2.2 - 2017-03-01 =
* Dev - Functions - `alg_get_exchange_rate_yahoo()` - cURL fallback added for Yahoo server rates (in case `allow_url_fopen` is disabled).
* Dev - Functions - `alg_get_exchange_rate_yahoo()` - Time limit (`set_time_limit()`) increased to 10 seconds.
* Dev - Language (POT) file updated.
= 2.2.1 - 2017-02-20 =
* Dev - Free shipping minimum order amount conversion by currency added.
* Dev - Language (POT) file updated.
* Tweak - General - Settings divided in sections.
= 2.2.0 - 2017-02-19 =
* Fix - Rounding and Precision added to variable hash.
* Dev - General - "Make Pretty Price" option added.
* Dev - Exchange Rates - "Exchange Rates Server" option added (and "European Central Bank" server added).
* Dev - JS "grab exchange rate" button changed to AJAX.
* Dev - Autoload set to `no` in `add_option`.
* Dev - Language (POT) file updated.
* Tweak - Link to "All Currencies for WooCommerce" plugin added.
= 2.1.1 - 2016-12-31 =
* Dev - Admin - General - "Advanced: Fix Mini Cart" option added.
* Dev - Admin - General - "Switcher Format" option added.
* Dev - Admin - General - "Advanced: Additional Price Filters" option added.
* Dev - Language (POT) file updated.
* Tweak - Tag added.
= 2.1.0 - 2016-12-14 =
* Dev - Admin - General - "Advanced: Disable on URI" option added.
= 2.0.0 - 2016-12-08 =
* Dev - Admin - Exchange Rates - "Reset All Rates" button added.
* Dev - Admin - Currencies - "Update All Exchange Rates Now" button added.
* Dev - Admin - Currencies - "Auto Generate PayPal Supported Currencies" button added.
* Dev - "Currency Countries (by IP)" section added.
* Fix - `load_plugin_textdomain` moved to constructor.
* Tweak - `get_woocommerce_currency()` replaced with `get_option( 'woocommerce_currency' )`.
* Tweak - Admin - Exchange Rates - Full currency name and number added.
* Tweak - Admin - Exchange Rates - "Grab rate" button restyled.
* Tweak - Admin - Currencies - "Currency (Shop's Default)" added.
* Tweak - Admin - Currencies - Code added to currency name in list.
* Tweak - Tooltip added to custom number admin settings.
* Tweak - Check for Pro rewritten.
* Tweak - Author added.
* Tweak - Major code refactoring.
= 1.0.1 - 2016-08-04 =
* Fix - `custom_number` replaced with `alg_custom_number` - this fixes the issue with "Total Currencies" field duplicating.
* Dev - Language (POT) file added.
= 1.0.0 - 2016-07-24 =
* Initial Release.