plugin-icon

Shills Multi Currency Manager

لصاحبه shawnhills·
Lightweight multi-currency manager for WooCommerce with real-time rates, WPML/Polylang support, GeoIP detection, and frontend switcher.
النسخة
1.0.0
آخر تحديث
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

مجانيعلى الخطط المدفوعة
إذا أتممت بالتثبيت، فإنك توافق على شروط خدمة ووردبريس.كوم ووشروط إضافات الأطراف الثالثة.
تم اختباره حتى
WordPress 7.0
تتوفّر هذه الإضافة للتنزيل لتُستخدم في عملية التثبيت لديك.