This plugin allows Admin users to individually add HTML, custom CSS, Classes and JavaScript directly to Post, Pages or any other custom post types.
Category Scores
Top Issues by Category
security190
i18n32
maintainability18
Issues Details
242 issues found in latest scan
All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$after_title'.
All output should be run through an escaping function (like echo esc_html_x() or echo esc_attr_x()), found '_ex'.
Detected usage of a non-sanitized input variable: $_GET['post_status']
$_GET['post_status'] not unslashed before sanitization. Use wp_unslash() or similar
Processing form data without nonce verification.
Translatable string should not be wrapped in HTML. Found: '<span class="description" style="max-width: 500px; display: inline-block;">Should the plugin clean up after itself and delete all of its saved data.</span>'
Detected usage of a possibly undefined superglobal array index: $_REQUEST['delete']. Check that the array index exists before using it.
Sanitization missing for register_setting().
Detected usage of meta_key, possible slow query.
In footer ($in_footer) is not set explicitly wp_register_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.
PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit;
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.
strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead.
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.
Detected usage of meta_query, possible slow query.
print_r() found. Debug code should not normally be used in production.
add_contextual_help() has been deprecated since WordPress version 3.3.0. Use get_current_screen()->add_help_tab() instead.
add_object_page() has been deprecated since WordPress version 4.5.0. Use add_menu_page() instead.
add_utility_page() has been deprecated since WordPress version 4.5.0. Use add_menu_page() instead.
Resource version not set in call to wp_enqueue_style(). This means new versions of the style may not always be loaded due to browser caching.
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.
The $text parameter must be a single text string literal. Found: '<p>"Hoops" are shortcodes invented to get around some limitations of vanilla WordPress.</p>'\r\n . '<p> Normally, certain HTML is very problematic to use in the Post Editor, because it either gets '\r\n . 'jumbled during Switching between HTML and Visual Tabs, stripped out by WPAutoP (rare) or stripped '\r\n . 'out because the User doesn’t have the proper Permissions.</p>'\r\n . '<p>With Hoops, an Admin user (who has `unfiltered_html` and `manage_options` capablilities) can '\r\n . 'write and approve snippets of HTML for other users to use via Shortcodes.</p>'
Tested up to: 6.2 < 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.
One or more tags were ignored. Please limit your plugin to 5 tags.
| 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 '$after_title'. | 64 |
| WordPress.Security.EscapeOutput.UnsafePrintingFunction | ERROR | All output should be run through an escaping function (like echo esc_html_x() or echo esc_attr_x()), found '_ex'. | 49 |
| WordPress.Security.ValidatedSanitizedInput.InputNotSanitized | WARNING | Detected usage of a non-sanitized input variable: $_GET['post_status'] | 28 |
| WordPress.Security.ValidatedSanitizedInput.MissingUnslash | WARNING | $_GET['post_status'] not unslashed before sanitization. Use wp_unslash() or similar | 28 |
| WordPress.WP.I18n.MissingArgDomain | ERROR | Missing $domain parameter in function call to __(). | 22 |
| WordPress.Security.NonceVerification.Recommended | WARNING | Processing form data without nonce verification. | 10 |
| WordPress.WP.I18n.NoHtmlWrappedStrings | WARNING | Translatable string should not be wrapped in HTML. Found: '<span class="description" style="max-width: 500px; display: inline-block;">Should the plugin clean up after itself and delete all of its saved data.</span>' | 7 |
| WordPress.Security.ValidatedSanitizedInput.InputNotValidated | WARNING | Detected usage of a possibly undefined superglobal array index: $_REQUEST['delete']. Check that the array index exists before using it. | 5 |
| PluginCheck.CodeAnalysis.SettingSanitization.register_settingMissing | ERROR | Sanitization missing for register_setting(). | 4 |
| WordPress.DB.SlowDBQuery.slow_db_query_meta_key | WARNING | Detected usage of meta_key, possible slow query. | 4 |
| WordPress.WP.EnqueuedResourceParameters.NotInFooter | WARNING | In footer ($in_footer) is not set explicitly wp_register_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 |
| missing_direct_file_access_protection | ERROR | PHP file should prevent direct access. Add a check like: if ( ! defined( 'ABSPATH' ) ) exit; | 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. | 2 |
| WordPress.WP.AlternativeFunctions.strip_tags_strip_tags | ERROR | strip_tags() is discouraged. Use the more comprehensive wp_strip_all_tags() instead. | 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.SlowDBQuery.slow_db_query_meta_query | WARNING | Detected usage of meta_query, possible slow query. | 1 |
| WordPress.PHP.DevelopmentFunctions.error_log_print_r | WARNING | print_r() found. Debug code should not normally be used in production. | 1 |
| WordPress.WP.DeprecatedFunctions.add_contextual_helpFound | ERROR | add_contextual_help() has been deprecated since WordPress version 3.3.0. Use get_current_screen()->add_help_tab() instead. | 1 |
| WordPress.WP.DeprecatedFunctions.add_object_pageFound | ERROR | add_object_page() has been deprecated since WordPress version 4.5.0. Use add_menu_page() instead. | 1 |
| WordPress.WP.DeprecatedFunctions.add_utility_pageFound | ERROR | add_utility_page() has been deprecated since WordPress version 4.5.0. Use add_menu_page() instead. | 1 |
| WordPress.WP.EnqueuedResourceParameters.MissingVersion | WARNING | Resource version not set in call to wp_enqueue_style(). This means new versions of the style may not always be loaded due to browser caching. | 1 |
| 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. | 1 |
| WordPress.WP.I18n.NonSingularStringLiteralText | ERROR | The $text parameter must be a single text string literal. Found: '<p>"Hoops" are shortcodes invented to get around some limitations of vanilla WordPress.</p>'\r\n . '<p> Normally, certain HTML is very problematic to use in the Post Editor, because it either gets '\r\n . 'jumbled during Switching between HTML and Visual Tabs, stripped out by WPAutoP (rare) or stripped '\r\n . 'out because the User doesn’t have the proper Permissions.</p>'\r\n . '<p>With Hoops, an Admin user (who has `unfiltered_html` and `manage_options` capablilities) can '\r\n . 'write and approve snippets of HTML for other users to use via Shortcodes.</p>' | 1 |
| outdated_tested_upto_header | ERROR | Tested up to: 6.2 < 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 |
| readme_parser_warnings_too_many_tags | WARNING | One or more tags were ignored. Please limit your plugin to 5 tags. | 1 |
Latest Snapshot
Findings
242
Errors
150
Warnings
92
Score History
First score snapshot
First scan completed Jun 20, 2026
v3.5.8 · Plugin Check 2.0.0 · Model 2026.06-mvp-static-v2
Jun 20, 2026
v3.5.8
39
Latest
- Findings
- 242
- Errors
- 150
- Warnings
- 92
- Plugin Check
- 2.0.0
- Model
- 2026.06-mvp-static-v2
| Scan | Score | Findings | Errors | Warnings | Plugin | Plugin Check | Model |
|---|---|---|---|---|---|---|---|
| Jun 20, 2026Latest | 39 | 242 | 150 | 92 | v3.5.8 | 2.0.0 | 2026.06-mvp-static-v2 |