Price Based on Country for WooCommerce


Price Based on Country for WooCommerce allows you to sell the same product in multiple currencies based on the country of the customer.

How it works

The plugin detects automatically the country of the website visitor throught the geolocation feature included in WooCommerce (2.3.0 or later) and display the currency and price you have defined previously for this country.

You have two ways to set product’s price for each country:

  • Calculate price by applying the exchange rate.
  • Set price manually.

When country changes on checkout page, the cart, the order preview and all shop are updated to display the correct currency and pricing.


Sell and receive payments in different currencies, reducing the costs of currency conversions.

Country Switcher

The extension include a country switcher widget to allow your customer change the country from the frontend of your website.

Shipping currency conversion

Apply currency conversion to Flat and International Flat Rate Shipping.

Compatible with WPML

WooCommerce Product Price Based on Countries is officially compatible with WPML.

Upgrade to Pro

This plugin offers a Pro addon which adds the following features:

  • Guaranteed support by private ticket system.
  • Automatic updates of exchange rates.
  • Add an exchange rate fee.
  • Round to nearest.
  • Display the currency code next to price.
  • Compatible with the WooCommerce built-in CSV importer and exporter.
  • Thousand separator, decimal separator and number of decimals by pricing zone.
  • Currency switcher widget.
  • Support to WooCommerce Subscriptions by Prospress .
  • Support to WooCommerce Product Bundles by SomewhereWarm .
  • Support to WooCommerce Product Add-ons by WooCommerce .
  • Support to WooCommerce Bookings by WooCommerce .
  • Support to WooCommerce Composite Product by SomewhereWarm.
  • Support to WooCommerce Name Your Price by Kathy Darling.
  • Bulk editing of variations princing.
  • Support for manual orders.
  • More features and integrations is coming.

Get Price Based on Country Pro now


  • WooCommerce 3.4 or later.
  • If you want to receive payments in more of one currency, a payment gateway that supports them.


  • /assets/screenshot-1.png
  • /assets/screenshot-2.png
  • /assets/screenshot-3.png
  • /assets/screenshot-4.png
  • /assets/screenshot-5.png
  • /assets/screenshot-6.png


  1. Download, install and activate the plugin.
  2. Go to WooCommerce -> Settings -> Product Price Based on Country and configure as required.
  3. Go to the product page and sets the price for the countries you have configured avobe.

Adding a country selector to the front-end

Once you’ve added support for multiple country and their currencies, you could display a country selector in the theme. You can display the country selector with a shortcode or as a hook.


[wcpbc_country_selector other_countries_text=”Other countries”]

PHP Code

do_action(‘wcpbc_manual_country_selector’, ‘Other countries’);

Customize country selector (only for developers)

  1. Add action “wcpbc_manual_country_selector” to your theme.
  2. To customize the country selector:
    1. Create a directory named “woocommerce-product-price-based-on-countries” in your theme directory.
    2. Copy to the directory created avobe the file “country-selector.php” included in the plugin.
    3. Work with this file.


How might I test if the prices are displayed correctly for a given country?

If you are in a test environment, you can configure the test mode in the setting page.

In a production environment you can use a privacy VPN tools like TunnelBear or ZenMate

You should do the test in a private browsing window to prevent data stored in the session. Open a private window on Firefox or on Chrome


30 November 2021
The plugin is really great and does exactly what it should. CSV import works perfectly and now also with WooCommerce subscriptions. Thank you!
24 November 2021
This is the best plugin support I've ever had. They even released a new version of the plugin just to fix the issue. It's a great plugin and works perfectly with Woocommerce. Highly Recommended!
9 November 2021
This is probably the most important plugin on our Woocommerce store right now. Very simple and intuitive to use, great value for all our needs! We have started with the free version but very rapidly upgraded to the paid version to get all the features. Support is one of the best we have experienced. Very fast to get a reply, and extremely effective at resolving any issues. Highly recommended!
Read all 219 reviews

Contributors and Developers

“Price Based on Country for WooCommerce” is open source software. The following people have contributed to this plugin.


“Price Based on Country for WooCommerce” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Price Based on Country for WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log

2.0.30 (2021-11-29)

  • Fixed: PHP error on creating a new order when the second parameter of the ‘woocommerce_new_order’ hook is missing.
  • Fixed: “Load product price in the background” does not work with the Porto theme “Show Skeleton Screens” option on variable products.

2.0.29 (2021-11-23)

  • Fixed: PHP warning on shipping cost currency conversion when the amount is zero.
  • Fixed: Incorrect decimal separator after saving variations when WPML is active.
  • Tweak: “Load product price in the background” compatible with the Porto theme “Show Skeleton Screens” option.

2.0.28 (2021-11-09)

  • Added: Tested up WooCommerce 5.9.
  • Fixed: Duplicate “_wcpbc_base_exchange_rate” postmeta on subscription renewal orders.
  • Fixed: “Google product feed by Ademti Software” – Incorrect taxes when the country does not match in a pricing zone.
  • Tweak: “Load product price in the background” compatible with themes that use the pjax jquery plugin.

2.0.27 (2021-10-21)

  • Added: Tested up WooCommerce 5.8.
  • Fixed: “Load product price in the background” overwrites texts added by other plugins to the price of variations.
  • Fixed: Calculating totals on AJAX requests causes compatibility issues with other plugins (Smart coupons).

2.0.26 (2021-10-05)

  • Fixed: PHP error on some cron executions.

2.0.25 (2021-09-15)

  • Tweak: Update compatibility with UPS and Fedex shipping plugins.
  • Fixed: Incorrect taxes on the Google product feed generated by the “Google product feed by Ademti Software” plugin.

2.0.24 (2021-09-07)

  • Added: Tested up WooCommerce 5.7.
  • Fixed: Filter by price does not work when other plugin run a query before WordPress runs the main query.
  • Fixed: Cart subtotal is not refreshed after user login in WordPress dashboard.
  • Fixed: Add aria-label to the country switcher template to meet web accessibility rules.

2.0.23 (2021-08-10)

  • Added: Tested up WooCommerce 5.6.
  • Added: Tested up WordPress 5.8.
  • Tweak: Update compatibility with All Products for WooCommerce Subscriptions.

2.0.22 (2021-07-12)

  • Added: Tested up WooCommerce 5.5.
  • Fixed: Layout issues on the price fields for variations on large resolutions.
  • Fixed: Do not load the “zone pricing” on the Rest API calls of the WooCommerce app.

2.0.21 (2021-06-17)

  • Added: Tested up WooCommerce 5.4.
  • Fixed: Do not display exchange rates lower than 0.001 using scientific notation.
  • Fixed: “Load product price in the background” compatible with FacetWP filters.
  • Fixed: Check the function wcpbc_the_zone returns a pricing zone object.

2.0.20 (2021-05-18)

  • Fixed: Bug on the filter by price widget.
  • Fixed: Duplicate field on the country switcher widget.

2.0.19 (2021-05-13)

  • Added: Tested up WooCommerce 5.3.
  • Fixed: The WooCommerce status dashboard widget is not converted to the shop base currency when WC Analytics is active.

2.0.18 (2021-04-02)

  • Fixed: Compatibility issue with WooCommerce EU VAT Assistant.
  • Fixed: “Load product price in the background” compatible with WooCommerce Product Add-ons +3.6.

2.0.17 (2021-03-22)

  • Fixed: Error on FedEx integration.

2.0.16 (2021-03-22)

  • Added: Tested up WooCommerce 5.1.
  • Added: Improve compatibility with WooCommerce FedEx Shipping method.
  • Fixed: Do not include AJAX geolocate styles and scripts on Elementor preview mode.

2.0.15 (2021-02-16)

  • Added: Tested up WooCommerce 5.0.
  • Fixed: Do no apply exchange rate to recurring percent coupons.

2.0.14 (2021-01-21)

  • Added: Tested up WooCommerce 4.9.
  • Fixed: The sale price is not removed on the scheduled date end.
  • Fixed: All Products for WooCommerce Subscriptions compatibility – Duplicate subscription options for bundle products.
  • Tweak: Improvements in how the session is initialized when the customer change the country via the widget.

2.0.13 (2020-12-29)

  • Added: Tested up WooCommerce 4.8.
  • Added: Compatibility with PayU EU Payment Gateway.
  • Fixed: All Products for WooCommerce Subscriptions compatibility – “Load product price in the background” does not refresh the subscription options.
  • Fixed: Bug on the geolocation test of the system report.

2.0.12 (2020-11-06)

  • Added: Tested up WooCommerce 4.7.
  • Fixed: Reports API endpoint does not retuns the totals in the base currency.

2.0.11 (2020-10-05)

  • Added: Tested up WooCommerce 4.6.
  • Tweak: Not remove the sale price on the product update when the “sale date end” is before to the current day.
  • Fixed: Woo Discount Rules by Flycart breaks the “Load product price in the background” feature.

2.0.10 (2020-08-04)

  • Fixed: Plugin causes an error on the “Hand-picked Products” block. Thanks @blogjunkie

2.0.9 (2020-07-07)

  • Added: Tested up WooCommerce 4.3.
  • Tweak: Improve the compatibility with the PayPal Express Checkout by WooCommerce 2.0+ payment method.
  • Tweak: Limit the number of pricing zones displayed on the System Status Report.

2.0.8 (2020-05-28)

  • Added: Tested up WooCommerce 4.2.
  • Fixed: Compatibility issue with WooCommerce Dynamic Pricing by Lucas Stark.
  • Fixed: Checkout issue on PayPal Express Checkout by WooCommerce 2.0+ payment method.
  • Fixed: Geolocation cache support via AJAX does not refresh the “content shortcode” when there are no products on the page.

2.0.7 (2020-05-22)

  • Added: Geolocation cache support via AJAX compatible with Variation Swatches for WooCommerce Pro by Emran Ahmed.
  • Added: Geolocation cache support via AJAX compatible with Flatsome Infinite Scroll.
  • Fixed: PHP error – Undefined function on WooCommerce < 3.6
  • Fixed: Incorrect domain path.

2.0.6 (2020-05-14)

  • Fixed: Deprecated use of implode in the pricing zones table.
  • Added: Improve compatibility with WooCommerce UPS Shipping method.

2.0.5 (2020-05-01)

  • Added: Tested up WooCommerce 4.1.
  • Fixed: The option “Convert by exchange rate” of coupons is not saved on coupon update.
  • Fixed: The geolocation test detects false positives.
  • Tweak: Admin notices improvements.
  • Tweak: Improve compatibility with object cache plugins.

2.0.4 (2020-04-21)

  • Fixed: Issue on the “caching support” option that could affect to discount plugins.
  • Fixed: Geolocation function only returns countries included in the allowed countries option.
  • Tweak: New admin notice after update the “caching support” option.
  • Dev: new filter wc_price_based_country_free_shipping_exchange_rate.

2.0.3 (2020-04-16)

  • Fixed: Bug on WooCommerce Admin (Analytics) query.
  • Fixed: Compatibility issues with WooCommerce Dynamic Pricing & Discounts by RightPress.

2.0.2 (2020-04-11)

  • Fixed: Bug reading the “sale date from” and “sale date to” fields when the value is empty.
  • Fixed: Bug calculating the coupon amount by the exchange rate.
  • Fixed: The geolocation test fails when the external IP is a IP6.
  • Tweak: Display all countries of the pricing zones in the country switcher widget.
  • Dev: new filter wc_price_based_country_allow_all_countries.

2.0.1 (2020-04-09)

  • Fixed: PHP error – undefined function wcpbc_get_overwrite_meta_keys in the “WPML” integration.

2.0.0 (2020-04-09)

  • Required WooCommerce 3.4 or higher.
  • Added: Compatibility with “WooCommerce Admin”.
  • Added: Compatibility with “WooCommerce Blocks”.
  • Added: Improvements in the product price synchronization: DB updates in the background. No more timeout errors.
  • Added: Remove the frontend JavaScript that refreshes the minicart on country switcher change.
  • Added: Replace the font spinner by a pure CSS spinner (to improve the page load time).
  • Added: Cache the AJAX geolocation response when the site is using a object cache.
  • Fixed: Force mini cart refresh when the pricing zone change by extending the cart hash.
  • Fixed: Refresh the minicart on checkout page when the country change.
  • Fixed: The product shortcode cache does not store a value by pricing zone.

See changelog for all versions.