plugin-icon

Shills Multi Currency Manager

Lightweight multi-currency manager for WooCommerce with real-time rates, WPML/Polylang support, GeoIP detection, and frontend switcher.
Versión
1.0.0
Última actualización
Jul 8, 2026
Shills Multi Currency Manager

Shills Multi Currency Manager is a powerful yet lightweight currency switcher plugin for WordPress that allows your visitors to switch between multiple currencies seamlessly. Perfect for e-commerce stores, international businesses, and multilingual websites.

Key Features:

  • Multi-Currency Management – Add unlimited currencies with custom symbols, positions, and exchange rates
  • Real-Time Exchange Rates – Automatic rate updates from ExchangeRate-API.com or Open Exchange Rates
  • WooCommerce Integration – Full compatibility with WooCommerce product prices, cart, and checkout
  • WPML & Polylang Support – Automatic currency switching based on language selection
  • Language-Currency Mapping – Map specific currencies to languages (e.g., English USD, Chinese CNY)
  • GeoIP Detection – Auto-detect visitor location and set appropriate currency
  • Multiple Display Styles – Choose between dropdown or button display formats
  • REST API – Complete REST API for currency operations and frontend integration
  • Widget & Shortcode – Easy implementation via widget or [shmcm_switcher] shortcode
  • Theme Integration – Auto-detect theme colors or set custom colors
  • User Choice Persistence – Remember visitor currency selection for 30 days
  • Cache Compatible – Works with WP Rocket, W3 Total Cache, and other caching plugins
  • Modern JavaScript – Built with Webpack and modern ES6+ JavaScript

Currency Features:

  • Custom currency symbols and positions (left, right, left_space, right_space)
  • Configurable decimal places per currency
  • Manual or automatic exchange rate updates
  • Base currency support with rate normalization
  • Currency validation and error handling

WooCommerce Features:

  • Automatic price conversion on product pages
  • Cart and checkout price formatting
  • Order currency metadata storage
  • Currency display in admin order details
  • AJAX fragment support for dynamic updates

Multilingual Features:

  • Automatic currency sync when switching languages
  • Respect user manual currency selection
  • Configurable language-currency mappings
  • Compatible with WPML and Polylang language switchers

Arbitrary section

Development

This plugin is built with modern development practices:

  • PHP 7.4+ with strict types
  • WordPress Coding Standards
  • Webpack for asset building
  • ES6+ JavaScript
  • SCSS for styling
  • REST API architecture
  • Comprehensive error handling and logging

External Services

This plugin may connect to the following third-party services. All are optional.

ExchangeRate-API.com * Purpose: Fetches real-time exchange rates when automatic rate updates are enabled. * Data sent: Only the base currency code (e.g., «USD») as part of the request URL. No API key or personal data is transmitted. * When: Only when the admin manually triggers a rate update or when the scheduled auto-update cron runs. * Service URL: https://www.exchangerate-api.com * Terms of Service: https://www.exchangerate-api.com/terms * Privacy Policy: https://www.exchangerate-api.com/privacy

Open Exchange Rates * Purpose: Fetches real-time exchange rates as an alternative provider when automatic rate updates are enabled. * Data sent: The API key (configured by the site admin) and base currency code as URL parameters. No user data is transmitted. * When: Only when the admin manually triggers a rate update or when the scheduled auto-update cron runs. * Service URL: https://openexchangerates.org * Terms of Service: https://openexchangerates.org/terms * Privacy Policy: https://openexchangerates.org/privacy

ipapi.co * Purpose: GeoIP detection to automatically suggest the visitor’s local currency on their first visit. * Data sent: The visitor’s IP address is transmitted as part of the HTTP request to ipapi.co. No API key, personal information, or cookies are sent. * When: Only when a visitor first loads the site and no currency preference cookie is set. Once set, no further GeoIP requests are made. * Service URL: https://ipapi.co * Terms of Service: https://ipapi.co/terms/ * Privacy Policy: https://ipapi.co/privacy/

All external services are optional. Select «None – Use Manual Rates» in the General Settings tab to disable all exchange rate API calls. Rate updates only occur on admin-initiated actions or scheduled WordPress cron events; no exchange rate API requests are made during regular frontend visits. GeoIP detection can be disabled in the Multilingual Settings.

Filter Reference

  • shmcm_currencies – Filter the currencies array
  • shmcm_exchange_rates – Filter exchange rates before storage
  • shmcm_price_format – Filter price formatting
  • shmcm_api_providers – Filter available API providers
  • shmcm_geo_country_currency_map – Filter GeoIP country-currency mapping

Action Reference

  • shmcm_currency_switched – Fires when currency is switched
  • shmcm_rates_updated – Fires when exchange rates are updated
  • shmcm_language_currency_synced – Fires when language-currency sync occurs
  • shmcm_activated – Fires on plugin activation
  • shmcm_deactivated – Fires on plugin deactivation
  • shmcm_components_loaded – Fires after all components are loaded

REST API Endpoints

All endpoints are under /wp-json/shmcm/v1/:

  • GET /settings – Get currency switcher settings
  • POST /switch – Switch currency (sets cookie)
  • POST /update-rates – Update exchange rates from API
  • GET /theme-color – Get current theme color
  • GET /lang-map – Get language-currency mapping
  • POST /sync-lang – Sync language with currency
  • GET /currencies – Get all currencies (admin)
  • POST /currencies – Add new currency (admin)
  • GET /currency/{code} – Get single currency (admin)
  • POST /currency/{code} – Update currency (admin)
  • DELETE /currency/{code} – Delete currency (admin)

Shortcode Parameters

[shmcm_switcher]
  • display – Display style: dropdown (default) or buttons
  • theme – Theme mode: auto (default), light, dark, or custom

Example: [shmcm_switcher display="buttons" theme="dark"]

Requirements

  • PHP 7.4 or higher
  • WordPress 6.0 or higher
  • WooCommerce 6.0 or higher (optional, for e-commerce features)
  • WPML or Polylang (optional, for multilingual features)

Credits

Built with love by Shawn Hills

Special thanks to: * The WordPress community * Contributors and testers * ExchangeRate-API.com and Open Exchange Rates for exchange rate data * ipapi.co for GeoIP detection

Gratisen planes de pago
Probado hasta
WordPress 7.0
Te puedes descargar este plugin para utilizarlo en tu sitio de .