Currency Switcher for WooCommerce Security & Risk Analysis

wordpress.org/plugins/currency-switcher-for-woocommerce

Currency Switcher for WooCommerce is a WordPress plugin that allows to switch product prices and get their rates converted in the real time!

900 active installs v0.0.8 PHP 7.0+ WP 5.1+ Updated Mar 12, 2025
convertercurrencycurrency-convertercurrency-switcherswitcher
91
A · Safe
CVEs total1
Unpatched0
Last CVEMar 27, 2025
Safety Verdict

Is Currency Switcher for WooCommerce Safe to Use in 2026?

Generally Safe

Score 91/100

Currency Switcher for WooCommerce has a strong security track record. Known vulnerabilities have been patched promptly.

1 known CVELast CVE: Mar 27, 2025Updated 1yr ago
Risk Assessment

The "currency-switcher-for-woocommerce" plugin v0.0.8 exhibits a mixed security posture. On the positive side, it demonstrates good practices by utilizing prepared statements for all SQL queries and has a high percentage of properly escaped output. The absence of dangerous functions, file operations, and critical/high severity taint flows are also reassuring signs. However, significant concerns arise from the plugin's attack surface, particularly the high number of unprotected AJAX handlers. This presents a substantial risk as these entry points could potentially be exploited by unauthenticated users.

The vulnerability history shows one known medium severity CVE, which, while currently patched, indicates a past susceptibility. The common vulnerability type being Cross-Site Request Forgery (CSRF) further highlights potential weaknesses in how user actions are validated. While no current unpatched vulnerabilities exist, the past incident combined with the numerous unprotected AJAX handlers warrants careful attention. The plugin has strengths in its data handling but weaknesses in its access control mechanisms, leading to an overall moderate risk profile that leans towards caution due to the numerous unprotected entry points.

Key Concerns

  • High number of unprotected AJAX handlers
  • Medium severity CVE history
  • One known CVE
  • High number of unprotected entry points
  • Unsanitized paths in taint analysis
Vulnerabilities
1

Currency Switcher for WooCommerce Security Vulnerabilities

CVEs by Year

1 CVE in 2025
2025
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2025-30857medium · 4.3Cross-Site Request Forgery (CSRF)

Currency Switcher for WooCommerce <= 0.0.7 - Cross-Site Request Forgery

Mar 27, 2025 Patched in 0.0.8 (7d)
Code Analysis
Analyzed Mar 16, 2026

Currency Switcher for WooCommerce Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
1 prepared
Unescaped Output
28
154 escaped
Nonce Checks
3
Capability Checks
1
File Operations
0
External Requests
2
Bundled Libraries
0

SQL Query Safety

100% prepared1 total queries

Output Escaping

85% escaped182 total outputs
Data Flows
6 unsanitized

Data Flow Analysis

7 flows6 with unsanitized paths
setup_admin_order_switcher (includes\class-pmcs-ajax.php:28)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface
7 unprotected

Currency Switcher for WooCommerce Attack Surface

Entry Points9
Unprotected7

AJAX Handlers 8

authwp_ajax_woocommerce_remove_order_couponincludes\class-pmcs-ajax.php:5
authwp_ajax_woocommerce_add_coupon_discountincludes\class-pmcs-ajax.php:6
authwp_ajax_woocommerce_add_order_itemincludes\class-pmcs-ajax.php:8
authwp_ajax_woocommerce_remove_order_itemincludes\class-pmcs-ajax.php:9
authwp_ajax_woocommerce_save_order_itemsincludes\class-pmcs-ajax.php:10
noprivwp_ajax_woocommerce_apply_couponincludes\class-pmcs-ajax.php:12
authwp_ajax_woocommerce_apply_couponincludes\class-pmcs-ajax.php:13
authwp_ajax_load_exchange_ratesincludes\class-pmcs-exchange-rates.php:23

Shortcodes 1

[pmcs] includes\class-pmcs-shortcode.php:5
WordPress Hooks 86
actionadmin_menuincludes\admin\class-admin.php:21
filterwoocommerce_screen_idsincludes\admin\class-admin.php:23
actionadmin_enqueue_scriptsincludes\admin\class-admin.php:24
filterwoocommerce_general_settingsincludes\admin\class-admin.php:25
actionwoocommerce_admin_field_currency_listincludes\admin\fields\currency-list.php:10
actionadmin_footerincludes\admin\fields\currency-list.php:11
actionwoocommerce_admin_settings_sanitize_optionincludes\admin\fields\currency-list.php:12
actionwoocommerce_admin_field_pmcs_custom_selectincludes\admin\fields\custom-select.php:4
actionwoocommerce_admin_field_geoip_rulersincludes\admin\fields\geoip-rulers.php:6
actionwoocommerce_admin_settings_sanitize_optionincludes\admin\fields\geoip-rulers.php:7
actionwoocommerce_admin_field_pmcs_custom_htmlincludes\admin\fields\html.php:4
filterwoocommerce_order_get_currencyincludes\class-pmcs-ajax.php:44
filterwoocommerce_coupon_get_amountincludes\class-pmcs-ajax.php:85
filterwoocommerce_coupon_get_amountincludes\class-pmcs-ajax.php:100
actioninitincludes\class-pmcs-crons.php:21
actionadmin_initincludes\class-pmcs-crons.php:22
filtercron_schedulesincludes\class-pmcs-crons.php:23
actionpmcs_cron_updateincludes\class-pmcs-crons.php:61
actioninitincludes\class-pmcs-plugin.php:130
actionwidgets_initincludes\class-pmcs-plugin.php:158
actionwp_enqueue_scriptsincludes\class-pmcs-plugin.php:160
filterwoocommerce_reports_get_order_report_data_argsincludes\class-pmcs-report.php:33
filterwoocommerce_reports_get_order_report_queryincludes\class-pmcs-report.php:34
actionwc_reports_tabsincludes\class-pmcs-report.php:35
filterwc_price_argsincludes\class-pmcs-report.php:37
actionwoocommerce_after_dashboard_status_widgetincludes\class-pmcs-report.php:38
filterwc_price_argsincludes\class-pmcs-report.php:66
actionload-index.phpincludes\class-pmcs-report.php:139
actionload-woocommerce_page_wc-reportsincludes\class-pmcs-report.php:140
actionwpincludes\class-pmcs-switcher.php:126
actionwp_footerincludes\class-pmcs-switcher.php:128
filterwp_nav_menu_itemsincludes\class-pmcs-switcher.php:204
filterwoocommerce_cart_fragment_nameincludes\class-pmcs-switcher.php:207
filterwoocommerce_ajax_get_endpointincludes\class-pmcs-switcher.php:208
actionwoocommerce_before_checkout_processincludes\class-pmcs-switcher.php:213
actionwoocommerce_checkout_order_processedincludes\class-pmcs-switcher.php:218
actionwoocommerce_before_pay_actionincludes\class-pmcs-switcher.php:223
filterwoocommerce_order_item_get_subtotalincludes\class-pmcs-switcher.php:520
filterwoocommerce_order_item_get_subtotal_taxincludes\class-pmcs-switcher.php:521
filterwoocommerce_order_item_get_totalincludes\class-pmcs-switcher.php:522
filterwoocommerce_order_item_get_total_taxincludes\class-pmcs-switcher.php:523
filterwoocommerce_product_get_priceincludes\class-pmcs-switcher.php:546
filterwoocommerce_product_get_sale_priceincludes\class-pmcs-switcher.php:547
filterwoocommerce_product_get_regular_priceincludes\class-pmcs-switcher.php:548
filterwoocommerce_product_variation_get_priceincludes\class-pmcs-switcher.php:551
filterwoocommerce_product_variation_get_sale_priceincludes\class-pmcs-switcher.php:552
filterwoocommerce_product_variation_get_regular_priceincludes\class-pmcs-switcher.php:553
filterwoocommerce_variation_prices_priceincludes\class-pmcs-switcher.php:555
filterwoocommerce_variation_prices_regular_priceincludes\class-pmcs-switcher.php:556
filterwoocommerce_variation_prices_sale_priceincludes\class-pmcs-switcher.php:557
filterwoocommerce_get_variation_prices_hashincludes\class-pmcs-switcher.php:559
filterwoocommerce_shipping_rate_costincludes\class-pmcs-switcher.php:562
filterwoocommerce_shipping_rate_costincludes\class-pmcs-switcher.php:563
filterwoocommerce_order_get_cart_taxincludes\class-pmcs-switcher.php:569
filterwoocommerce_order_get_shipping_totalincludes\class-pmcs-switcher.php:570
filterwoocommerce_order_get_shipping_taxincludes\class-pmcs-switcher.php:571
filterwoocommerce_order_get_totalincludes\class-pmcs-switcher.php:572
filterwoocommerce_order_get_total_taxincludes\class-pmcs-switcher.php:573
filterwoocommerce_order_get_total_discountincludes\class-pmcs-switcher.php:574
filterwoocommerce_order_get_subtotalincludes\class-pmcs-switcher.php:575
filterwoocommerce_order_get_tax_totalsincludes\class-pmcs-switcher.php:576
filterwoocommerce_order_get_discountincludes\class-pmcs-switcher.php:577
filterwoocommerce_order_get_discountincludes\class-pmcs-switcher.php:578
filterwoocommerce_order_get_discount_taxincludes\class-pmcs-switcher.php:579
filterwoocommerce_coupon_get_amountincludes\class-pmcs-switcher.php:582
filterwoocommerce_fee_get_amountincludes\class-pmcs-switcher.php:585
filterwoocommerce_fee_get_totalincludes\class-pmcs-switcher.php:586
filterwoocommerce_fee_get_total_taxincludes\class-pmcs-switcher.php:587
filterwoocommerce_currencyincludes\class-pmcs-switcher.php:590
filterwc_price_argsincludes\class-pmcs-switcher.php:593
actionwoocommerce_coupon_optionsincludes\metabox\coupon-meta.php:3
actionwoocommerce_process_shop_coupon_metaincludes\metabox\coupon-meta.php:28
filterwoocommerce_order_item_display_meta_keyincludes\metabox\order-item-meta.php:14
filterwoocommerce_order_item_display_meta_valueincludes\metabox\order-item-meta.php:15
actionwoocommerce_admin_order_totals_after_discountincludes\metabox\order-item-meta.php:18
actionwoocommerce_admin_order_totals_after_shippingincludes\metabox\order-item-meta.php:19
actionload-post.phpincludes\metabox\order-metabox.php:11
actionload-post-new.phpincludes\metabox\order-metabox.php:12
actionadd_meta_boxesincludes\metabox\order-metabox.php:26
actionsave_postincludes\metabox\order-metabox.php:27
actionwoocommerce_product_options_pricingincludes\metabox\product-pricing-meta.php:3
actionwoocommerce_process_product_metaincludes\metabox\product-pricing-meta.php:44
actionwoocommerce_variation_options_pricingincludes\metabox\product-pricing-meta.php:60
actionwoocommerce_save_product_variationincludes\metabox\product-pricing-meta.php:94
actionwoocommerce_loadedpmcs.php:72
actionactivated_pluginpmcs.php:84
Maintenance & Trust

Currency Switcher for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.7.5
Last updatedMar 12, 2025
PHP min version7.0
Downloads10K

Community Trust

Rating0/100
Number of ratings0
Active installs900
Developer Profile

Currency Switcher for WooCommerce Developer Profile

PressMaximum

4 plugins · 31K total installs

78
trust score
Avg Security Score
98/100
Avg Patch Time
117 days
View full developer profile
Detection Fingerprints

How We Detect Currency Switcher for WooCommerce

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/currency-switcher-for-woocommerce/assets/css/admin.css/wp-content/plugins/currency-switcher-for-woocommerce/assets/js/admin.js
Script Paths
/wp-content/plugins/currency-switcher-for-woocommerce/assets/js/admin.js

HTML / DOM Fingerprints

CSS Classes
pmcs-admin
Data Attributes
data-nonce
JS Globals
PMCS_List_CurrencyPMCS_Admin_Args
FAQ

Frequently Asked Questions about Currency Switcher for WooCommerce