Multi-Currency Support for Points and Rewards and Loyalty Program for WooCommerce

Both Points and Rewards for WooCommerce and Loyalty Program for WooCommerce include built-in support for the most popular WooCommerce multi-currency plugins. When a customer browses your store in a non-base currency, the plugin automatically converts prices back to your store’s base currency before calculating points. This ensures every customer earns the same number of points for the same purchase, regardless of which currency they use at checkout.

Why Multi-Currency Support Matters

Without multi-currency handling, a customer paying in USD would earn a different number of points than a customer paying the equivalent amount in EUR or GBP, because the exchange rate means the converted price fed into the points engine is wrong. The result is points being over- or under-awarded depending on the active currency, making your loyalty program unpredictable and unfair.

Both plugins solve this by normalising every product price to your WooCommerce base currency before the points calculation runs. Customers see prices and checkout totals in their chosen currency as usual. Only the points engine uses the base-currency value internally.

Supported Multi-Currency Plugins

The following plugins are supported out of the box. No additional configuration is required. The integration activates automatically when a supported plugin is detected on your site.

Aelia Currency Switcher

One of the most widely used WooCommerce multi-currency solutions. The integration uses Aelia’s own wc_aelia_cs_convert filter to perform an accurate, rate-aware conversion back to the base currency, using the exact same exchange rates Aelia applies to your prices.

YayCurrency (Free and Pro)

YayCurrency is a popular free and Pro currency switcher for WooCommerce. On the Pro version, the integration uses the dedicated yay_currency_revert_price filter for maximum accuracy. On the free version, it falls back to dividing by the configured exchange rate directly.

FOX / WOOCS — WooCommerce Currency Switcher

Also known as Currency Switcher for WooCommerce. The integration reads the active currency and its exchange rate from the WOOCS global object, then converts the price back to base currency by dividing by that rate.

CURCY — WooCommerce Multi Currency by VillaTheme

A popular free multi-currency plugin by VillaTheme. The integration uses CURCY’s data class to look up the current currency and its configured exchange rate, then converts the price back to base currency before points are calculated.

How It Works

Both plugins introduce a WordPress filter called wpgens_loyalty_base_currency_price. Every time points need to be calculated from a product price, this filter runs first. The built-in implementation detects which supported currency plugin is active and converts the price to base currency accordingly. If no supported plugin is active, the price is passed through unchanged.

The filter is applied in three places:

  • When calculating points to earn for a product on a single product page.
  • When calculating points for each product inside the cart.
  • When calculating the total points to award for a completed order.

Adding Support for Other Currency Plugins

If you use a currency plugin not listed above, you can add support with the wpgens_loyalty_base_currency_price filter. The filter receives the price in the shopper’s active currency and the product object, and should return the equivalent price in the store’s base currency. This works for both Points and Rewards and Loyalty Program.

add_filter( 'wpgens_loyalty_base_currency_price', function( $price, $product ) {
    $base_currency   = get_option( 'woocommerce_currency' );
    $active_currency = get_woocommerce_currency();

    if ( $active_currency === $base_currency ) {
        return $price;
    }

    // Replace this with your currency plugin's conversion logic.
    $rate = my_currency_plugin_get_rate( $active_currency );
    if ( $rate > 0 ) {
        return $price / $rate;
    }

    return $price;
}, 10, 2 );

Place this snippet in your theme’s functions.php or in a site-specific plugin.

Browse our plugins

Lightweight WooCommerce plugins built for speed. No bloat, no frameworks -- just clean code that works.

View all plugins
Stay in the loop

Get notified when we launch new plugins. No spam, just product updates.