Currency per Product for WooCommerce Security & Risk Analysis

wordpress.org/plugins/currency-per-product-for-woocommerce

Set WooCommerce product prices in multiple currencies with flexible cart and checkout options and per-product currency settings.

2K active installs v1.14.0 PHP 7.4+ WP 4.4+ Updated Jan 6, 2026
currency-per-productmulticurrencyproduct-currencywoocommerce
99
A · Safe
CVEs total1
Unpatched0
Last CVEApr 10, 2024
Safety Verdict

Is Currency per Product for WooCommerce Safe to Use in 2026?

Generally Safe

Score 99/100

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

1 known CVELast CVE: Apr 10, 2024Updated 2mo ago
Risk Assessment

The "currency-per-product-for-woocommerce" plugin v1.14.0 exhibits a generally good security posture, with strong adherence to best practices in several key areas. The static analysis reveals a low attack surface, with only one AJAX handler, and importantly, no unprotected entry points. The code demonstrates a commitment to secure coding with a high percentage of properly escaped outputs and a significant majority of SQL queries utilizing prepared statements. Furthermore, the presence of multiple nonce and capability checks indicates an effort to protect against common web vulnerabilities.

However, there are areas that warrant attention. The taint analysis identified two flows with unsanitized paths, which, although not flagged as critical or high severity, represent a potential risk. While the plugin has a history of one medium-severity CVE related to CSRF, the fact that it is currently unpatched is a concern, especially considering its recent discovery. The presence of file operations and external HTTP requests, while not inherently insecure, requires careful consideration as they can sometimes be vectors for vulnerabilities if not implemented with strict validation and sanitization.

In conclusion, the plugin's developers have implemented several robust security measures. The minimal attack surface and good output escaping are commendable. Nevertheless, the two unsanitized paths in the taint analysis and the recent, albeit medium, unpatched CSRF vulnerability suggest that ongoing vigilance and potentially further code review are advisable to maintain a strong security profile.

Key Concerns

  • Unsanitized paths in taint analysis
  • Medium severity unpatched CVE
Vulnerabilities
1

Currency per Product for WooCommerce Security Vulnerabilities

CVEs by Year

1 CVE in 2024
2024
Patched Has unpatched

Severity Breakdown

Medium
1

1 total CVE

CVE-2024-31920medium · 4.3Cross-Site Request Forgery (CSRF)

Currency per Product for WooCommerce <= 1.6.0 - Cross-Site Request Forgery to Notice Dismissal

Apr 10, 2024 Patched in 1.7.0 (8d)
Code Analysis
Analyzed Mar 16, 2026

Currency per Product for WooCommerce Code Analysis

Dangerous Functions
0
Raw SQL Queries
2
8 prepared
Unescaped Output
2
46 escaped
Nonce Checks
7
Capability Checks
3
File Operations
1
External Requests
4
Bundled Libraries
0

SQL Query Safety

80% prepared10 total queries

Output Escaping

96% escaped48 total outputs
Data Flows
2 unsanitized

Data Flow Analysis

4 flows2 with unsanitized paths
init_tracker_completed (includes\class-alg-wc-cpp-plugin-tracking.php:79)
Source (user input) Sink (dangerous op) Sanitizer Transform Unsanitized Sanitized
Attack Surface

Currency per Product for WooCommerce Attack Surface

Entry Points1
Unprotected0

AJAX Handlers 1

authwp_ajax_tyche_plugin_deactivation_submit_actionincludes\component\plugin-deactivation\class-tyche-plugin-deactivation.php:93
WordPress Hooks 74
actioninitcurrency-per-product-for-woocommerce.php:118
actionbefore_woocommerce_initcurrency-per-product-for-woocommerce.php:132
filterwoocommerce_get_settings_pagescurrency-per-product-for-woocommerce.php:133
actionadmin_initcurrency-per-product-for-woocommerce.php:145
actionadmin_noticesincludes\class-alg-wc-cpp-admin.php:33
actionadmin_initincludes\class-alg-wc-cpp-admin.php:36
actionadmin_initincludes\class-alg-wc-cpp-admin.php:39
actionadmin_initincludes\class-alg-wc-cpp-admin.php:42
actionsave_post_productincludes\class-alg-wc-cpp-admin.php:46
actionwoocommerce_ajax_save_product_variationsincludes\class-alg-wc-cpp-admin.php:47
actionadmin_enqueue_scriptsincludes\class-alg-wc-cpp-admin.php:49
filterwoocommerce_product_quick_edit_saveincludes\class-alg-wc-cpp-core.php:58
filterwoocommerce_currencyincludes\class-alg-wc-cpp-core.php:76
filterwoocommerce_currency_symbolincludes\class-alg-wc-cpp-core.php:78
filterwoocommerce_get_price_htmlincludes\class-alg-wc-cpp-core.php:83
filterwoocommerce_add_cart_item_dataincludes\class-alg-wc-cpp-core.php:86
filterwoocommerce_add_cart_itemincludes\class-alg-wc-cpp-core.php:87
filterwoocommerce_get_cart_item_from_sessionincludes\class-alg-wc-cpp-core.php:88
filterwoocommerce_add_to_cart_validationincludes\class-alg-wc-cpp-core.php:89
filterwoocommerce_product_variation_get_priceincludes\class-alg-wc-cpp-core.php:94
filterbooking_form_calculated_booking_costincludes\class-alg-wc-cpp-core.php:96
filterwoocommerce_grouped_price_htmlincludes\class-alg-wc-cpp-core.php:100
actionwoocommerce_ajax_add_order_item_metaincludes\class-alg-wc-cpp-core.php:102
filterwoocommerce_package_ratesincludes\class-alg-wc-cpp-core.php:106
actionwp_loadedincludes\class-alg-wc-cpp-core.php:110
filterwoocommerce_product_variation_get_regular_priceincludes\class-alg-wc-cpp-core.php:123
filterwoocommerce_variation_prices_regular_priceincludes\class-alg-wc-cpp-core.php:124
filterwoocommerce_product_variation_get_sale_priceincludes\class-alg-wc-cpp-core.php:128
filterwoocommerce_variation_prices_sale_priceincludes\class-alg-wc-cpp-core.php:129
filterwoocommerce_variation_prices_priceincludes\class-alg-wc-cpp-core.php:131
filterwoocommerce_get_variation_prices_hashincludes\class-alg-wc-cpp-core.php:133
filterwoocommerce_get_price_including_taxincludes\class-alg-wc-cpp-core.php:135
filterwoocommerce_get_price_excluding_taxincludes\class-alg-wc-cpp-core.php:136
filterwoocommerce_get_price_htmlincludes\class-alg-wc-cpp-core.php:141
actionwoocommerce_product_queryincludes\class-alg-wc-cpp-core.php:148
filterwoocommerce_get_catalog_ordering_argsincludes\class-alg-wc-cpp-core.php:149
filterloop_shop_post_inincludes\class-alg-wc-cpp-core.php:153
filterwoocommerce_product_query_meta_queryincludes\class-alg-wc-cpp-core.php:154
filterwoocommerce_price_filter_widget_min_amountincludes\class-alg-wc-cpp-core.php:155
filterwoocommerce_price_filter_widget_max_amountincludes\class-alg-wc-cpp-core.php:156
filterwoocommerce_price_filter_widget_stepincludes\class-alg-wc-cpp-core.php:157
filterposts_clausesincludes\class-alg-wc-cpp-core.php:186
filterposts_clausesincludes\class-alg-wc-cpp-core.php:197
actioninitincludes\class-alg-wc-cpp-crons.php:34
actionadmin_initincludes\class-alg-wc-cpp-crons.php:35
actionalg_wc_cpp_update_exchange_ratesincludes\class-alg-wc-cpp-crons.php:36
actioninitincludes\class-alg-wc-cpp-crons.php:40
actionadmin_initincludes\class-alg-wc-cpp-crons.php:41
actionalg_wc_cpp_calculate_all_products_pricesincludes\class-alg-wc-cpp-crons.php:42
filterwoocommerce_reports_get_order_report_data_argsincludes\class-alg-wc-cpp-currency-reports.php:33
filterwoocommerce_currencyincludes\class-alg-wc-cpp-currency-reports.php:34
actionadmin_bar_menuincludes\class-alg-wc-cpp-currency-reports.php:35
filterts_tracker_dataincludes\class-alg-wc-cpp-plugin-tracking.php:24
actionadmin_footerincludes\class-alg-wc-cpp-plugin-tracking.php:26
actioncpp_lite_init_tracker_completedincludes\class-alg-wc-cpp-plugin-tracking.php:27
filtercpp_lite_ts_tracker_display_noticeincludes\class-alg-wc-cpp-plugin-tracking.php:28
filtercpp_lite_ts_tracker_dataincludes\class-alg-wc-cpp-tracking.php:24
actionadmin_footerincludes\class-alg-wc-cpp-tracking.php:26
actioncpp_lite_init_tracker_completedincludes\class-alg-wc-cpp-tracking.php:27
filtercpp_lite_ts_tracker_display_noticeincludes\class-alg-wc-cpp-tracking.php:28
actionadmin_print_scripts-plugins.phpincludes\component\plugin-deactivation\class-tyche-plugin-deactivation.php:92
actionadmin_noticesincludes\component\plugin-tracking\class-tyche-plugin-tracking.php:81
filtercron_schedulesincludes\component\plugin-tracking\class-tyche-plugin-tracking.php:82
actionadmin_initincludes\component\plugin-tracking\class-tyche-plugin-tracking.php:83
actionadd_meta_boxesincludes\settings\class-alg-wc-cpp-metaboxes.php:32
actionsave_post_productincludes\settings\class-alg-wc-cpp-metaboxes.php:33
actioninitincludes\settings\class-alg-wc-cpp-settings-advanced.php:47
actioninitincludes\settings\class-alg-wc-cpp-settings-behaviour.php:47
actioninitincludes\settings\class-alg-wc-cpp-settings-currencies.php:47
actioninitincludes\settings\class-alg-wc-cpp-settings-exchange-rates.php:47
actioninitincludes\settings\class-alg-wc-cpp-settings-general.php:47
filterwoocommerce_get_sections_alg_wc_cppincludes\settings\class-alg-wc-cpp-settings-section.php:32
filterwoocommerce_admin_settings_sanitize_optionincludes\settings\class-alg-wc-settings-cpp.php:35
actionwoocommerce_admin_field_alg_wc_cpp_titleincludes\settings\class-alg-wc-settings-cpp.php:36
Maintenance & Trust

Currency per Product for WooCommerce Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.0
Last updatedJan 6, 2026
PHP min version7.4
Downloads51K

Community Trust

Rating82/100
Number of ratings17
Active installs2K
Developer Profile

Currency per Product for WooCommerce Developer Profile

tychesoftwares

20 plugins · 160K total installs

73
trust score
Avg Security Score
91/100
Avg Patch Time
232 days
View full developer profile
Detection Fingerprints

How We Detect Currency per Product 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-per-product-for-woocommerce/assets/css/frontend.css/wp-content/plugins/currency-per-product-for-woocommerce/assets/css/admin.css/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/frontend.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/admin.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/plugin-deactivation.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/tyche-plugin-tracking.js
Script Paths
/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/frontend.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/admin.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/plugin-deactivation.js/wp-content/plugins/currency-per-product-for-woocommerce/assets/js/tyche-plugin-tracking.js
Version Parameters
currency-per-product-for-woocommerce/assets/css/frontend.css?ver=currency-per-product-for-woocommerce/assets/css/admin.css?ver=currency-per-product-for-woocommerce/assets/js/frontend.js?ver=currency-per-product-for-woocommerce/assets/js/admin.js?ver=currency-per-product-for-woocommerce/assets/js/plugin-deactivation.js?ver=currency-per-product-for-woocommerce/assets/js/tyche-plugin-tracking.js?ver=

HTML / DOM Fingerprints

CSS Classes
alg-wc-cpp-frontend-pricealg-wc-cpp-single-product-price
HTML Comments
<!-- Price modified by Currency per Product for WooCommerce -->
Data Attributes
data-alg-wc-cpp-currencydata-alg-wc-cpp-original-price
JS Globals
alg_wc_cpp_frontend_params
FAQ

Frequently Asked Questions about Currency per Product for WooCommerce