Product Pricing and Currency based on Shopper's Country for WooCommerce with multi-currency support and geolocation to boost international sales.
Category Scores
Top Issues by Category
maintainability133
Issues Details
169 issues found in latest scan
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'wc_price_based_country_dynamic_pricing_category_' . str_replace( 'available_', '', $ruleset_prop )".
Function "current_action()" requires WordPress 3.9.0, but your plugin minimum supported version is WordPress 3.8.0.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$args".
Detected usage of a non-sanitized input variable: $_COOKIE['_wcpbc_activation_redirect']
Processing form data without nonce verification.
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Detected usage of meta_key, possible slow query.
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'wc_help_tip'.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_Product_Price_Based_Country".
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose().
The plugin name includes a restricted term. Your chosen plugin name - "WooCommerce Price Based on Country" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name.
Detected usage of meta_query, possible slow query.
Detected usage of meta_value, possible slow query.
Detected usage of tax_query, possible slow query.
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen().
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fwrite().
File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: rmdir().
Plugin name "Price Based on Country for WooCommerce" is different from the name declared in plugin header "WooCommerce Price Based on Country".
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'wc_price_based_country_dynamic_pricing_category_' . str_replace( 'available_', '', $ruleset_prop )". | 44 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "current_action()" requires WordPress 3.9.0, but your plugin minimum supported version is WordPress 3.8.0. | 33 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$args". | 27 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_COOKIE['_wcpbc_activation_redirect'] | 24 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 9 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 5 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 5 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_key | WARNING | Detected usage of meta_key, possible slow query. | 4 |
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found 'wc_help_tip'. | 3 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_Product_Price_Based_Country". | 2 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fclose | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fclose(). | 2 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "WooCommerce Price Based on Country" - contains the restricted term "woocommerce" which cannot be used within in your plugin name, unless your plugin name contains one of the allowed patterns: "for woocommerce", "with woocommerce", "using woocommerce", or "and woocommerce". The term must still not appear anywhere else in your name. | 2 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_query | WARNING | Detected usage of meta_query, possible slow query. | 1 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_value | WARNING | Detected usage of meta_value, possible slow query. | 1 |
| WordPress.DB.SlowDBQuery.slow_db_query_tax_query | WARNING | Detected usage of tax_query, possible slow query. | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fopen | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fopen(). | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_fwrite | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: fwrite(). | 1 |
| WordPress.WP.AlternativeFunctions.file_system_operations_rmdir | ERROR | File operations should use WP_Filesystem methods instead of direct PHP filesystem calls. Found: rmdir(). | 1 |
| five_star_reviews_detected | ERROR | Linking directly to 5 stars reviews is not allowed. | 1 |
| mismatched_plugin_name | WARNING | Plugin name "Price Based on Country for WooCommerce" is different from the name declared in plugin header "WooCommerce Price Based on Country". | 1 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 1 |
Latest Snapshot
Findings
169
Errors
43
Warnings
126
Score History
First score snapshot
First scan completed Jun 20, 2026
v4.3.2 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v4.3.2
52
Latest
- Findings
- 169
- Errors
- 43
- Warnings
- 126
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 52 | 169 | 43 | 126 | v4.3.2 | 2.0.0 | 2026.06-mvp-static-v2 |