Allow users to instantly download your free digital products without going through the checkout.
Category Scores
Top Issues by Category
security374
maintainability258
Issues Details
789 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<div{$class}>"'.
Mismatched text domain. Expected 'download-now-for-woocommerce' but got 'free-downloads-woocommerce'.
Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$base".
Processing form data without nonce verification.
Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_download_file_' . $file_download_method".
Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete().
Detected usage of a non-sanitized input variable: $_GET['section']
$_GET['section'] not unslashed before sanitization. Use wp_unslash() or similar
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead.
Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "de_defaults_for".
Processing form data without nonce verification.
error_log() found. Debug code should not normally be used in production.
Detected usage of a possibly undefined superglobal array index: $_POST['action']. Check that the array index exists before using it.
Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DE_DIVI_ENGINE_LICENSE_REST_ENDPOINTS_INIT".
Use placeholders and $wpdb->prepare(); found interpolated variable {$index_esc} at "CREATE INDEX {$index_esc} ON {$table_esc} (meta_key, meta_value(191))"
Unescaped parameter $count_sql used in $wpdb->get_var()\n$count_sql assigned unsafely at line 1185.
Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "DE_Settings_Plugin_Registry".
All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'.
Sanitization missing for register_setting().
Function "get_user_locale()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.4.0.
A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders.
print_r() found. Debug code should not normally be used in production.
| Code | Type | Message | Count |
|---|---|---|---|
| WordPress.Security.EscapeOutput.OutputNotEscaped | ERROR | All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '"<div{$class}>"'. | 206 |
| WordPress.WP.I18n.TextDomainMismatch | ERROR | Mismatched text domain. Expected 'download-now-for-woocommerce' but got 'free-downloads-woocommerce'. | 124 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound | WARNING | Global variables defined by a theme/plugin should start with the theme/plugin prefix. Found: "$base". | 65 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 39 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound | WARNING | Hook names invoked by a theme/plugin should start with the theme/plugin prefix. Found: "'woocommerce_download_file_' . $file_download_method". | 33 |
| WordPress.DB.DirectDatabaseQuery.DirectQuery | WARNING | Use of a direct database call is discouraged. | 30 |
| WordPress.DB.DirectDatabaseQuery.NoCaching | WARNING | Direct database call without caching detected. Consider using wp_cache_get() / wp_cache_set() or wp_cache_delete(). | 30 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['section'] | 27 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['section'] not unslashed before sanitization. Use wp_unslash() or similar | 24 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 19 |
| WordPress.DateTime.RestrictedFunctions.date_date | ERROR | date() is affected by runtime timezone changes which can cause date/time to be incorrectly displayed. Use gmdate() instead. | 17 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound | WARNING | Functions declared in the global namespace by a theme/plugin should start with the theme/plugin prefix. Found: "de_defaults_for". | 17 |
| WordPress.Security.NonceVerification.Missing | WARNING | Processing form data without nonce verification. | 17 |
| WordPress.PHP.DevelopmentFunctions.error_log_error_log | WARNING | error_log() found. Debug code should not normally be used in production. | 16 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_POST['action']. Check that the array index exists before using it. | 14 |
| WordPress.DB.PreparedSQL.NotPrepared | ERROR | Use placeholders and $wpdb->prepare(); found $count_sql | 11 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound | WARNING | Global constants defined by a theme/plugin should start with the theme/plugin prefix. Found: "DE_DIVI_ENGINE_LICENSE_REST_ENDPOINTS_INIT". | 11 |
| WordPress.DB.PreparedSQL.InterpolatedNotPrepared | WARNING | Use placeholders and $wpdb->prepare(); found interpolated variable {$index_esc} at "CREATE INDEX {$index_esc} ON {$table_esc} (meta_key, meta_value(191))" | 10 |
| PluginCheck.Security.DirectDB.UnescapedDBParameter | ERROR | Unescaped parameter $count_sql used in $wpdb->get_var()\n$count_sql assigned unsafely at line 1185. | 9 |
| WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound | WARNING | Classes declared by a theme/plugin should start with the theme/plugin prefix. Found: "DE_Settings_Plugin_Registry". | 9 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like esc_html_e() or esc_attr_e()), found '_e'. | 9 |
| PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing | ERROR | Sanitization missing for register_setting(). | 8 |
| wp_function_not_compatible_with_requires_wp | ERROR | Function "get_user_locale()" requires WordPress 4.7.0, but your plugin minimum supported version is WordPress 4.4.0. | 8 |
| WordPress.WP.I18n.MissingTranslatorsComment | ERROR | A function call to __() with texts containing placeholders was found, but was not accompanied by a "translators:" comment on the line above to clarify the meaning of the placeholders. | 5 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 3 |
Latest Snapshot
Findings
789
Errors
430
Warnings
359
Score History
First score snapshot
First scan completed
v3.6.5 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
v3.6.5
21
Latest
- Findings
- 789
- Errors
- 430
- Warnings
- 359
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Latest | 21 | 789 | 430 | 359 | v3.6.5 | 2.0.0 | 2026.06-mvp-static-v2 |