Title: Multiple Currencies for Paid Memberships Pro
Author: Jarryd Long
Published: <strong>Ыам ыйа 14, 2021</strong>
Last modified: Муус устар 27, 2026

---

Search plugins

![](https://ps.w.org/pmpro-multiple-currencies/assets/banner-772x250.png?rev=2531758)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/pmpro-multiple-currencies/assets/icon-128x128.png?rev=2531758)

# Multiple Currencies for Paid Memberships Pro

 By [Jarryd Long](https://profiles.wordpress.org/jarryd-long/)

[Download](https://downloads.wordpress.org/plugin/pmpro-multiple-currencies.1.0.0.zip)

 * [Details](https://sah.wordpress.org/plugins/pmpro-multiple-currencies/#description)
 * [Reviews](https://sah.wordpress.org/plugins/pmpro-multiple-currencies/#reviews)
 *  [Installation](https://sah.wordpress.org/plugins/pmpro-multiple-currencies/#installation)
 * [Development](https://sah.wordpress.org/plugins/pmpro-multiple-currencies/#developers)

 [Support](https://wordpress.org/support/plugin/pmpro-multiple-currencies/)

## Description

**Multiple Currencies for Paid Memberships Pro** gives your membership site the 
flexibility to accept payments in different currencies, whether you charge different
regions different amounts or simply want visitors to see pricing in their own currency.

Assign any currency to any membership level, display a sleek frontend switcher so
visitors can choose their preferred currency, and let the plugin remember their 
choice across visits and devices. Every order is stored with its currency so your
reports and account pages always show the right symbol — no surprises.

#### Key Features

**Per-Level Currency**
 Assign a specific currency to each membership level directly
from the level edit screen. The correct currency and symbol is applied automatically
at checkout, on the confirmation page, in invoice emails, and on the account page.
Levels with no override fall back to your site’s default currency.

**Frontend Currency Switcher**
 A floating pill-style switcher appears on the frontend
so visitors can select their preferred currency at any time. Their choice is saved
in a cookie and — for logged-in users — synced to their account so it follows them
across devices. The switcher is hidden on the checkout page to avoid confusion mid-
purchase.

**Inline Switcher via Shortcode**
 Prefer to place the switcher inside your own 
content or template? Use the `[pmpro_currency_switcher]` shortcode to embed it anywhere—
a page, a widget, or a block.

**Geo-Detection (opt-in)**
 When enabled, new visitors are automatically offered
a currency based on their country, detected via Cloudflare or standard CDN country
headers. Visitors can still override using the switcher. This setting is off by 
default.

**Available Currencies Restriction**
 By default the plugin works with all currencies
registered in Paid Memberships Pro. Use the Available Currencies setting to restrict
the list to only the currencies your site actually uses — keeping level dropdowns
and the frontend switcher clean.

**Widget Placement Control**
 Choose where the floating switcher appears: on all
pages (except checkout), on PMPro pages only, or hide it entirely and rely on the
shortcode instead.

**Sales by Currency Report**
 A dedicated report under Memberships > Reports shows
order count and revenue broken down by currency, with filters for today, this month,
this year, all time, or a custom date range. A summary tile also appears on the 
PMPro reports dashboard.

**Accurate Order History**
 The currency and symbol are saved to order meta at the
moment of checkout. This means the account page, admin order screen, invoices, and
confirmation emails always reflect the currency the member actually paid in — even
if your site default changes later.

#### Settings

All plugin settings live under **Memberships > Settings > Advanced**.

 * **Available Currencies** — check the currencies you want to make available for
   level assignment and the frontend switcher. Leave all unchecked to allow all 
   PMPro currencies.
 * **Widget Placement** — controls the floating currency switcher. Hidden by default—
   each level uses its assigned currency and no floating widget is shown. Visitors
   can still switch using the `[pmpro_currency_switcher]` shortcode. Set to all 
   pages or PMPro pages only to show the floating widget automatically.
 * **Enable Geo-Detection** — when checked, new visitors are automatically detected
   by country and offered the matching currency.

#### Shortcode

    ```
    [pmpro_currency_switcher]
    ```

Embeds the currency switcher inline in any page, post, or widget. Only renders when
two or more currencies are enabled.

#### Developer Notes

Enable the debug overlay by adding `define( 'PMPRO_MC_DEBUG', true );` to your `
wp-config.php`. The overlay shows the active currency, cookie value, user meta value,
geo-detected currency, and the list of enabled currencies — useful for troubleshooting.

This plugin is not an official Paid Memberships Pro add on.

## Screenshots

[⌊Currency setting on the membership level edit screen⌉⌊Currency setting on the 
membership level edit screen⌉[

Currency setting on the membership level edit screen

[⌊Currency options in the level dropdown⌉⌊Currency options in the level dropdown⌉[

Currency options in the level dropdown

[⌊Currency column on the admin Membership Levels list⌉⌊Currency column on the admin
Membership Levels list⌉[

Currency column on the admin Membership Levels list

[⌊Currency switcher as seen by members on the frontend⌉⌊Currency switcher as seen
by members on the frontend⌉[

Currency switcher as seen by members on the frontend

[⌊Checkout page showing the level's assigned currency⌉⌊Checkout page showing the
level's assigned currency⌉[

Checkout page showing the level’s assigned currency

[⌊Membership confirmation page with correct currency⌉⌊Membership confirmation page
with correct currency⌉[

Membership confirmation page with correct currency

[⌊Membership invoice with correct currency⌉⌊Membership invoice with correct currency⌉[

Membership invoice with correct currency

## Installation

 1. Upload the `pmpro-multiple-currencies` folder to the `/wp-content/plugins/` directory,
    or install it directly through the WordPress plugin screen.
 2. Activate the plugin through the **Plugins** screen in WordPress.
 3. Make sure Paid Memberships Pro is installed and active.
 4. Go to **Memberships > Settings > Advanced** to configure Available Currencies, 
    widget placement, and geo-detection.
 5. Edit any membership level under **Memberships > Membership Levels** and scroll 
    to the **Currency Settings** section to assign a currency to that level.

## FAQ

### Does this plugin convert prices automatically?

No. Prices are set manually per membership level. This gives you full control — 
you decide exactly what to charge in each currency, which is important when exchange
rates fluctuate or when you want to use regional pricing that isn’t a straight conversion.

### What happens to levels that don’t have a currency set?

They use the site’s default currency, the same one set in **Memberships > Settings
> Payment Settings**.

### Will the currency switcher show on the checkout page?

No. The floating widget is hidden on the checkout page to prevent visitors from 
switching currency mid-purchase. If you need switcher access near checkout, use 
the `[pmpro_currency_switcher]` shortcode on a page of your choice.

### How does geo-detection work?

When enabled, the plugin reads the visitor’s country from the `HTTP_CF_IPCOUNTRY`
header (Cloudflare) or `HTTP_X_COUNTRY_CODE` / `HTTP_X_GEO_COUNTRY` headers set 
by other CDN/proxy providers. If a matching currency is found and it is in your 
enabled list, it is applied automatically. Visitors can always override with the
switcher.

### Does geo-detection work without Cloudflare?

It works with any CDN or reverse proxy that sets a country header. Without one of
these headers the detection is skipped and no currency is auto-applied.

### Will the currency preference follow a logged-in user across devices?

Yes. For logged-in users the active currency is synced to their user account, so
switching on one device is reflected when they log in on another.

### Where are the sales-by-currency reports?

Under **Memberships > Reports**, select **Sales by Currency**. A summary tile also
appears on the main Reports dashboard.

### Is this an official Paid Memberships Pro add on?

No. It is an independent, community-built add on maintained by Jarryd Long.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Multiple Currencies for Paid Memberships Pro” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Jarryd Long ](https://profiles.wordpress.org/jarryd-long/)
 *   [ Louis Wolmarans ](https://profiles.wordpress.org/louiswol94/)

“Multiple Currencies for Paid Memberships Pro” has been translated into 1 locale.
Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/pmpro-multiple-currencies/contributors)
for their contributions.

[Translate “Multiple Currencies for Paid Memberships Pro” into your language.](https://translate.wordpress.org/projects/wp-plugins/pmpro-multiple-currencies)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/pmpro-multiple-currencies/),
check out the [SVN repository](https://plugins.svn.wordpress.org/pmpro-multiple-currencies/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/pmpro-multiple-currencies/)
by [RSS](https://plugins.trac.wordpress.org/log/pmpro-multiple-currencies/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Ownership: Plugin has a new maintainer — Jarryd Long, ex-PMPro support manager
   and developer, has taken over from the original author Louis Wolmarans
 * Feature: Floating frontend currency switcher widget — visitors can click a pill
   to select their preferred currency; choice is stored in a cookie and persisted
   to user meta for logged-in users across devices
 * Feature: Inline currency switcher via `[pmpro_currency_switcher]` shortcode —
   embed the switcher anywhere in page content
 * Feature: Geo-detection — automatically suggests a currency based on the visitor’s
   country (via Cloudflare/CDN headers); opt-in via PMPro Advanced Settings
 * Feature: Widget placement control — choose to show the floating switcher on all
   pages, PMPro pages only, or hide it entirely (PMPro Advanced Settings)
 * Feature: Available Currencies setting — restrict which currencies can be assigned
   to levels and shown in the switcher (PMPro Advanced Settings)
 * Feature: Currency column in the membership levels list table — shows the assigned
   currency for each level, including site default for unset levels
 * Feature: “Sales by Currency” PMPro report — shows order count and revenue broken
   down by currency, with a period filter (today / this month / this year / all 
   time / custom range) and a dashboard summary widget
 * Feature: Order meta — saves the currency code and symbol to order meta at checkout
   so orders always display in the correct currency, including on the account page,
   admin order screen, invoices, and confirmation emails
 * Security: Full hardening pass — output escaping throughout, capability checks
   on all save functions, input guards, and strict comparisons
 * Fix: Currency symbol on the confirmation page, invoice, and account page now 
   reflects the currency the order was placed in rather than the current visitor
   currency

#### 0.0.5 — 2024-11-18

 * Tweak: Added support for the remaining pages and emails

#### 0.0.4 — 2024-05-14

 * Tweak: Improve currency update on Invoice and Confirmation page

#### 0.0.3 — 2024-05-14

 * Tweak: Add support for Invoice and Confirmation pages (props @andrewza for the
   direction)

#### 0.0.2 — 2022-03-17

 * Fix: Undefined index on the symbol array key
 * Tweak: Minor localization changes

#### 0.0.1

 * Initial release

## Meta

 *  Version **1.0.0**
 *  Last updated **6 ый ago**
 *  Active installations **100+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **6.8.11**
 *  PHP version ** 7.4 or higher **
 *  Languages
 * [Dutch](https://nl.wordpress.org/plugins/pmpro-multiple-currencies/) and [English (US)](https://wordpress.org/plugins/pmpro-multiple-currencies/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/pmpro-multiple-currencies)
 * Tags
 * [currency](https://sah.wordpress.org/plugins/tags/currency/)[currency switcher](https://sah.wordpress.org/plugins/tags/currency-switcher/)
   [Paid Memberships Pro](https://sah.wordpress.org/plugins/tags/paid-memberships-pro/)
   [pmpro](https://sah.wordpress.org/plugins/tags/pmpro/)
 *  [Advanced View](https://sah.wordpress.org/plugins/pmpro-multiple-currencies/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/pmpro-multiple-currencies/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/pmpro-multiple-currencies/reviews/)

## Contributors

 *   [ Jarryd Long ](https://profiles.wordpress.org/jarryd-long/)
 *   [ Louis Wolmarans ](https://profiles.wordpress.org/louiswol94/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/pmpro-multiple-currencies/)