Restrict WooCommerce products by country using geolocation — hide products, block purchases, or show them as unavailable in specific countries.
Category Scores
Issues to Review
Prioritized issue groups from the latest Plugin Check scan
Security
62
5 issue groups
I18n
17
3 issue groups
Maintainability
14
7 issue groups
Repo Compliance
1
1 issue group
WARNINGSecurityRequest data is not unslashed$_COOKIE['country'] not unslashed before sanitization. Use wp_unslash() or similar25
- Category
- Security
- Occurrences
- 25
- Severity
- warning
Sample message
$_COOKIE['country'] not unslashed before sanitization. Use wp_unslash() or similar
WARNINGSecurityMissing nonce verificationProcessing form data without nonce verification.16
- Category
- Security
- Occurrences
- 16
- Severity
- warning
Sample message
Processing form data without nonce verification.
ERRORI18nText Domain MismatchMismatched text domain. Expected 'woo-product-country-base-restrictions' but got 'fast-user-switching'.15
- Category
- I18n
- Occurrences
- 15
- Severity
- error
Sample message
Mismatched text domain. Expected 'woo-product-country-base-restrictions' but got 'fast-user-switching'.
WARNINGSecurityNonce verification recommendedProcessing form data without nonce verification.12
- Category
- Security
- Occurrences
- 12
- Severity
- warning
Sample message
Processing form data without nonce verification.
WARNINGSecurityInput is not sanitizedDetected usage of a non-sanitized input variable: $_POST[$key]7
- Category
- Security
- Occurrences
- 7
- Severity
- warning
Sample message
Detected usage of a non-sanitized input variable: $_POST[$key]
ERRORMaintainabilitystrip tags strip tagsstrip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.5
- Category
- Maintainability
- Occurrences
- 5
- Severity
- error
Sample message
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
WARNINGMaintainabilityNot In FooterIn footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.3
- Category
- Maintainability
- Occurrences
- 3
- Severity
- warning
Sample message
In footer ($in_footer) is not set explicitly wp_enqueue_script; It is recommended to load scripts in the footer. Please set this value to `true` to load it in the footer, or explicitly `false` if it should be loaded in the header.
ERRORSecurityOutput is not escapedAll output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$dismissable_url'.2
- Category
- Security
- Occurrences
- 2
- Severity
- error
Sample message
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$dismissable_url'.
ERRORMaintainabilityMissing direct file access protectionPHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;2
- Category
- Maintainability
- Occurrences
- 2
- Severity
- error
Sample message
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
WARNINGI18nDiscouraged text-domain loadingload_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.1
- Category
- I18n
- Occurrences
- 1
- Severity
- warning
Sample message
load_plugin_textdomain() has been discouraged since WordPress version 4.6. When your plugin is hosted on WordPress.org, you no longer need to manually include this function call for translations under your plugin slug. WordPress will automatically load the translations for you as needed.
Show 6 moreShow less
WARNINGMaintainabilityDirect Query1
- Category
- Maintainability
- Occurrences
- 1
- Severity
- warning
Sample message
Use of a direct database call is discouraged.
WARNINGMaintainabilityNo Caching1
- Category
- Maintainability
- Occurrences
- 1
- Severity
- warning
Sample message
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
ERRORI18nNon Singular String Literal Text1
- Category
- I18n
- Occurrences
- 1
- Severity
- error
Sample message
The $text parameter must be a single text string literal. Found: 'CBR Country: ' . WC()->countries->countries[$fzpcr->restriction->get_country()]
ERRORRepo Complianceplugin header no license1
- Category
- Repo Compliance
- Occurrences
- 1
- Severity
- error
Sample message
Missing "License" in Plugin Header. Please update your Plugin Header with a valid GPLv2 (or later) compatible license.
WARNINGMaintainabilitytrademarked term1
- Category
- Maintainability
- Occurrences
- 1
- Severity
- warning
Sample message
The plugin slug includes a restricted term. Your plugin slug - "woo-product-country-base-restrictions" - contains the restricted term "woo" and cannot be used to begin your plugin slug. We disallow the use of certain terms in ways that are abused, or potentially infringe on and/or are misleading with regards to trademarks. You may use the term "woo" elsewhere in your plugin slug, such as "... for woo".
ERRORMaintainabilitywp function not compatible with requires wp1
- Category
- Maintainability
- Occurrences
- 1
- Severity
- error
Sample message
Function "wp_get_environment_type()" requires WordPress 5.5.0, but your plugin minimum supported version is WordPress 5.3.0.
External Connections
Not analyzed yet.
Score History
2 score snapshots
v3.7.9
41
Latest
- Findings
- 94
- Errors
- 27
- Warnings
- 67
- Check
- 2.0.0
v3.7.8
40
Score
- Findings
- 86
- Errors
- 21
- Warnings
- 65
- Check
- 2.0.0
| Scan | Score | Findings | Errors | Warnings | Plugin | Check |
|---|---|---|---|---|---|---|
| Latest | 41 | 94 | 27 | 67 | v3.7.9 | 2.0.0 |
| 40 | 86 | 21 | 65 | v3.7.8 | 2.0.0 |
Relationship Map
Author, categories, issues, domains, and nearby plugins.