Create and manage legal pages for WordPress websites using ready-made policy templates that support common privacy and compliance requirements.
Category Scores
Top Issues by Category
maintainability350
security62
i18n6
repo_compliance1
Issues Details
422 issues found in latest scan
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$age_popup_no".
Unescaped parameter $alter_popup_sql used in $wpdb->query()\n$alter_popup_sql assigned unsafely at line 110.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "admin_head".
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_AM_Client_2_7_WPLegalPages".
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
$_SERVER['HTTP_AUTHORIZATION'] not unslashed before sanitization. Use wp_unslash() or similar
Detected usage of a non-sanitized input variable: $_SERVER['HTTP_AUTHORIZATION']
Use placeholders and $wpdb->prepare(); found interpolated variable $id_list at "SELECT ID, post_title FROM {$wpdb->posts} WHERE ID IN ($id_list) AND post_type = %s AND post_status = %s"
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "activate_wp_legal_pages".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Detected usage of a possibly undefined superglobal array index: $_SERVER['HTTP_USER_AGENT']. Check that the array index exists before using it.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WPLPP_SUFFIX".
wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.
The plugin name includes a restricted term. Your chosen plugin name - "Privacy Policy Generator - WPLP Legal Pages" - contains the restricted term "wp" which cannot be used at all in your plugin name.
Unescaped parameter $id_list used in $wpdb->get_results()\n$id_list assigned unsafely at line 277.
Mismatched text domain. Expected 'wplegalpages' but got 'gdpr-cookie-consent'.
Plugin Updater detected. Detected code which may be altering WordPress update routines. Detected: _site_transient_update_themes
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.
Attempting a database schema change is discouraged.
Setting `suppress_filters` to `true` is prohibited.
Plugin name "Privacy Policy Generator - WPLP Legal Pages" is different from the name declared in plugin header "WPLP Legal Pages".
Tested up to: 6.8 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$age_popup_no". | 268 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | WARNING | Unescaped parameter $alter_popup_sql used in $wpdb->query()\n$alter_popup_sql assigned unsafely at line 110. | 27 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "admin_head". | 24 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "WC_AM_Client_2_7_WPLegalPages". | 15 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 14 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_SERVER['HTTP_AUTHORIZATION'] not unslashed before sanitization. Use wp_unslash() or similar | 9 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_SERVER['HTTP_AUTHORIZATION'] | 8 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable $id_list at "SELECT ID, post_title FROM {$wpdb->posts} WHERE ID IN ($id_list) AND post_type = %s AND post_status = %s" | 7 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "activate_wp_legal_pages". | 7 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 6 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 6 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_SERVER['HTTP_USER_AGENT']. Check that the array index exists before using it. | 4 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "WPLPP_SUFFIX". | 3 |
| WordPress.Security.SafeRedirect.wp_redirect_wp_redirect | WARNING | wp_redirect() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed. | 3 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to esc_html_e(). | 3 |
| trademarked_term | WARNING | The plugin name includes a restricted term. Your chosen plugin name - "Privacy Policy Generator - WPLP Legal Pages" - contains the restricted term "wp" which cannot be used at all in your plugin name. | 3 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $id_list used in $wpdb->get_results()\n$id_list assigned unsafely at line 277. | 2 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $post_tbl | 2 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'wplegalpages' but got 'gdpr-cookie-consent'. | 2 |
| update_modification_detected | WARNING | Plugin Updater detected. Detected code which may be altering WordPress update routines. Detected: _site_transient_update_themes | 2 |
| PluginCheck.CodeAnalysis.DiscouragedFunctions.load_plugin_textdomainFound | WARNING | 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. | 1 |
| WordPress.DB.DirectDatabaseQuery.SchemaChange | WARNING | Attempting a database schema change is discouraged. | 1 |
| WordPressVIPMinimum.Performance.WPQueryParams.SuppressFilters_suppress_filters | ERROR | Setting `suppress_filters` to `true` is prohibited. | 1 |
| mismatched_plugin_name | WARNING | Plugin name "Privacy Policy Generator - WPLP Legal Pages" is different from the name declared in plugin header "WPLP Legal Pages". | 1 |
| outdated_tested_upto_header | ERROR | Tested up to: 6.8 < 7.0. The "Tested up to" value in your plugin is not set to the current version of WordPress. This means your plugin will not show up in searches, as we require plugins to be compatible and documented as tested up to the most recent version of WordPress. | 1 |
Latest Snapshot
Findings
422
Errors
26
Warnings
396
Score History
First score snapshot
First scan completed Jun 20, 2026
v3.6.7 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v3.6.7
32
Latest
- Findings
- 422
- Errors
- 26
- Warnings
- 396
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 32 | 422 | 26 | 396 | v3.6.7 | 2.0.0 | 2026.06-mvp-static-v2 |