WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
Non-prefixed hook name
The plugin defines a hook name without a plugin-specific prefix.
Why It Shows Up
WordPress loads many plugins in the same PHP runtime. Plugin Check found a global symbol or hook name that is not clearly namespaced to this plugin.
Why It Matters
Unprefixed globals can collide with WordPress core, themes, or other plugins, causing fatal errors, overwritten values, or handlers running in the wrong context.
How to Fix
- Choose a short, unique prefix or namespace based on the plugin slug or vendor name.
- Rename the hook name so it cannot collide with code from another plugin.
- For public hooks, document the final hook name and keep it stable after release.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #2551 | BOX NOW Delivery Croatia | 39 | 64 | 99 | 700 | Missing nonce verification | ||
| #2552 | BuddyPress Default Cover Photo | 39 | 62 | 39 | 500 | Output is not escaped | ||
| #2553 | Calculator Builder – Create an Online Calculator | 39 | 16 | 221 | 1k+ | Non-prefixed global variable | ||
| #2554 | Innozilla Skins for Contact Form 7 | 39 | 152 | 22 | 2k+ | Output is not escaped | ||
| #2555 | Constant Contact + WooCommerce | 39 | 27 | 91 | 1k+ | Nonce verification recommended | ||
| #2556 | Content Visibility for Divi Builder | 39 | 184 | 59 | 2k+ | Non Singular String Literal Domain | ||
| #2557 | Custom Metadata Manager | 39 | 81 | 20 | 700 | Output is not escaped | ||
| #2558 | Custom Post Type Auto Menu | 39 | 54 | 33 | 500 | Text Domain Mismatch | ||
| #2559 | Custom Post Type Parents | 39 | 75 | 18 | 900 | Output is not escaped | ||
| #2560 | Custom Thank You for WooCommerce | 39 | 107 | 57 | 400 | Output is not escaped | ||
| #2561 | Da Reactions | 39 | 15 | 140 | 400 | Request data is not unslashed | ||
| #2562 | Datalogics Ecommerce Delivery – Datalogics | 39 | 13 | 115 | 500 | Nonce verification recommended | ||
| #2563 | DefendWP Firewall | 39 | 16 | 203 | 3k+ | Non-prefixed global variable | ||
| #2564 | Deliverability – pass DKIM, SPF, DMARC & more | 39 | 21 | 71 | 800 | Nonce verification recommended | ||
| #2565 | Drip for Gravity Forms | 39 | 41 | 21 | 500 | Unsafe printing function | ||
| #2566 | Duplicate Killer – Prevent Duplicate Form Submissions | 39 | 57 | 103 | 1k+ | Non-prefixed global variable | ||
| #2567 | Editor Menu and Widget Access | 39 | 81 | 24 | 7k+ | Output is not escaped | ||
| #2568 | ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor | 39 | 73 | 350 | 1m+ | Non-prefixed global variable | ||
| #2569 | BestWebSoft's Like & Share – Posts, Pages and Widget Social Extension plugin for WordPress | 39 | 480 | 226 | 4k+ | Text Domain Mismatch | ||
| #2570 | Faster Image Insert | 39 | 94 | 26 | 2k+ | Output is not escaped | ||
| #2571 | First Order Discount Woocommerce | 39 | 55 | 30 | 1k+ | Output is not escaped | ||
| #2572 | GDPRess | Eliminate external requests to increase GDPR compliance | 39 | 60 | 26 | 1k+ | Output is not escaped | ||
| #2573 | Genesis Dambuster | 39 | 94 | 67 | 3k+ | Output is not escaped | ||
| #2574 | GL Import External Images | 39 | 118 | 19 | 800 | wp function not compatible with requires wp | ||
| #2575 | GoSMTP – SMTP for WordPress | 39 | 59 | 42 | 500k+ | Output is not escaped | ||
| #2576 | Graphina – Charts and Graphs For Elementor | 39 | 1,895 | 113 | 10k+ | Text Domain Mismatch | ||
| #2577 | Gravity Slider Fields | 39 | 56 | 36 | 2k+ | Text Domain Mismatch | ||
| #2578 | GS Only PDF Preview | 39 | 46 | 36 | 1k+ | Output is not escaped | ||
| #2579 | Gutenverse News – News Blocks for Blog & Magazine Sites | 39 | 37 | 65 | 800 | Non-prefixed hook name | ||
| #2580 | If Menu – Visibility control for Menus | 39 | 281 | 63 | 50k+ | Output is not escaped | ||
| #2581 | Image Watermark WP | 39 | 88 | 82 | 600 | Output is not escaped | ||
| #2582 | S2W – Import Shopify to WooCommerce | 39 | 8 | 132 | 3k+ | Request data is not unslashed | ||
| #2583 | Improved Save Button | 39 | 44 | 52 | 4k+ | Missing Translators Comment | ||
| #2584 | JetGridBuilder — Grid Builder for Elementor and Gutenberg | 39 | 414 | 40 | 4k+ | Text Domain Mismatch | ||
| #2585 | Library Viewer | 39 | 65 | 93 | 400 | Non-prefixed hook name | ||
| #2586 | LuckyWP Table of Contents | 39 | 438 | 62 | 100k+ | Output is not escaped | ||
| #2587 | Magazine Blocks – Blog Designer, Magazine & Newspaper Website Builder, Page Builder with Posts Blocks, Post Grid | 39 | 65 | 72 | 6k+ | block api version too low | ||
| #2588 | Kikote – Location Picker at Checkout & Google Address AutoFill Plugin for WooCommerce | 39 | 76 | 64 | 1k+ | Missing Translators Comment | ||
| #2589 | Markup by Attribute for WooCommerce | 39 | 46 | 102 | 2k+ | Direct Query | ||
| #2590 | Zen Feed | 39 | 39 | 22 | 500 | Output is not escaped | ||
| #2591 | Mizan Demo Importer | 39 | 31 | 91 | 1k+ | Missing nonce verification | ||
| #2592 | Pay by paynow.pl | 39 | 51 | 56 | 6k+ | Output is not escaped | ||
| #2593 | payever – WooCommerce Gateway | 39 | 263 | 131 | 700 | Text Domain Mismatch | ||
| #2594 | Paystack Add-On for Gravity Forms | 39 | 96 | 31 | 400 | Text Domain Mismatch | ||
| #2595 | PO/MO Editor | 39 | 106 | 45 | 1k+ | Unsafe printing function | ||
| #2596 | Posts By Tag | 39 | 151 | 30 | 1k+ | Output is not escaped | ||
| #2597 | PickPlugins Pricing Table | 39 | 3 | 171 | 1k+ | Missing nonce verification | ||
| #2598 | Privilege Menu | 39 | 215 | 49 | 1k+ | Text Domain Mismatch | ||
| #2599 | Product Size Chart for Woocommerce | 39 | 20 | 169 | 600 | Non-prefixed global variable | ||
| #2600 | Radio Buttons for Taxonomies | 39 | 40 | 24 | 20k+ | Output is not escaped |