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 |
|---|---|---|---|---|---|---|---|---|
| #1901 | Deposits & Partial Payments for WooCommerce | 35 | 174 | 144 | 5k+ | Text Domain Mismatch | ||
| #1902 | Nexi Checkout | 35 | 45 | 308 | 3k+ | Dynamic hook name | ||
| #1903 | Dintero Checkout for WooCommerce Payment Methods | 35 | 58 | 48 | 600 | Text Domain Mismatch | ||
| #1904 | PiWeb Disable payment method / Partial payment for WooCommerce | 35 | 55 | 221 | 4k+ | Non-prefixed class | ||
| #1905 | Disable XML-RPC-API | 35 | 444 | 52 | 100k+ | Text Domain Mismatch | ||
| #1906 | DOOFINDER Search and Discovery for WP & WooCommerce | 35 | 151 | 120 | 2k+ | Text Domain Mismatch | ||
| #1907 | DynamicTags | 35 | 116 | 16 | 2k+ | Text Domain Mismatch | ||
| #1908 | Easy Post Types and Fields | 35 | 138 | 135 | 1k+ | Text Domain Mismatch | ||
| #1909 | Easy Watermark | 35 | 82 | 53 | 30k+ | Non-prefixed global variable | ||
| #1910 | Editorial Calendar | 35 | 127 | 160 | 20k+ | Output is not escaped | ||
| #1911 | Gutenberg Blocks Library & Toolkit – Editor Plus | 35 | 27 | 11 | 6k+ | Text Domain Mismatch | ||
| #1912 | Elementor Website Builder – more than just a page builder | 35 | 46 | 428 | 10m+ | Non-prefixed global variable | ||
| #1913 | Elements Hive for Breakdance | 35 | 76 | 25 | 1k+ | Output is not escaped | ||
| #1914 | Email Subscription Popup — Newsletter & GDPR Consent | 35 | 683 | 193 | 1k+ | Output is not escaped | ||
| #1915 | Embed Extended – Embed Maps, Videos, Websites, Source Codes, and more | 35 | 102 | 92 | 400 | Non-prefixed global variable | ||
| #1916 | Embed Privacy | 35 | 10 | 41 | 10k+ | slow db query meta key | ||
| #1917 | Enhanced Recent Posts | 35 | 78 | 24 | 400 | Output is not escaped | ||
| #1918 | Ever Compare – Products Compare Plugin for WooCommerce | 35 | 2 | 23 | 600 | Non-prefixed global variable | ||
| #1919 | EWWW Image Optimizer | 35 | 225 | 729 | 1m+ | Direct Query | ||
| #1920 | AI Popup Builder & Popup Maker by OptiMonk | 35 | 81 | 65 | 4k+ | Text Domain Mismatch | ||
| #1921 | Expire User Passwords | 35 | 3 | 15 | 3k+ | Nonce verification recommended | ||
| #1922 | Export Featured Images | 35 | 176 | 67 | 1k+ | Output is not escaped | ||
| #1923 | External Links Overview | 35 | 57 | 200 | 800 | Non-prefixed global variable | ||
| #1924 | F4 Shipping Phone and E-Mail for WooCommerce | 35 | 21 | 30 | 800 | Non-prefixed hook name | ||
| #1925 | Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager | 35 | 64 | 64 | 80k+ | Non-prefixed global variable | ||
| #1926 | Flexible PDF Coupons – Gift Cards & Vouchers for WooCommerce | 35 | 8 | 20 | 2k+ | Non-prefixed global variable | ||
| #1927 | Flexible Subscriptions | 35 | 46 | 249 | 1k+ | Non-prefixed global variable | ||
| #1928 | Force Regenerate Thumbnails | 35 | 12 | 17 | 200k+ | unlink unlink | ||
| #1929 | Force Reinstall | 35 | 118 | 34 | 2k+ | Output is not escaped | ||
| #1930 | FrontBlocks for Gutenberg/GeneratePress | 35 | 10 | 7 | 500 | Offloaded Content | ||
| #1931 | Frontend Reset Password | 35 | 83 | 128 | 10k+ | Text Domain Mismatch | ||
| #1932 | GA4WP – Analytics Dashboard for the Website | 35 | 434 | 157 | 2k+ | Text Domain Mismatch | ||
| #1933 | GDPR Compliance & Cookie Consent | 35 | 251 | 61 | 4k+ | Output is not escaped | ||
| #1934 | Give – Divi Donation Modules | 35 | 286 | 12 | 600 | Text Domain Mismatch | ||
| #1935 | Glossary | 35 | 169 | 93 | 2k+ | Non Singular String Literal Domain | ||
| #1936 | Gravity Forms: Multiple Form Instances | 35 | 6 | 6 | 700 | Hidden files included | ||
| #1937 | Gum Addon for Elementor | 35 | 660 | 72 | 50k+ | Text Domain Mismatch | ||
| #1938 | Health Check & Troubleshooting | 35 | 264 | 238 | 300k+ | Missing Arg Domain | ||
| #1939 | Heartbeat Control | 35 | 27 | 18 | 80k+ | Missing Arg Domain | ||
| #1940 | Hippoo Mobile App for WooCommerce | 35 | 5 | 92 | 1k+ | Direct Query | ||
| #1941 | HivePress – Business Directory, Listings & Classified Ads Plugin | 35 | 38 | 180 | 10k+ | Direct Query | ||
| #1942 | HookMeUp for WooCommerce | 35 | 59 | 29 | 10k+ | Output is not escaped | ||
| #1943 | Hyve Lite – AI Chatbot, ChatGPT-Powered Conversational Support | 35 | 1 | 40 | 7k+ | Direct Query | ||
| #1944 | Image Slider | 35 | 192 | 95 | 4k+ | Output is not escaped | ||
| #1945 | Image Watermark | 35 | 85 | 181 | 40k+ | Missing nonce verification | ||
| #1946 | Image Widget | 35 | 165 | 31 | 100k+ | Output is not escaped | ||
| #1947 | Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on | 35 | 27 | 140 | 5k+ | Interpolated SQL is not prepared | ||
| #1948 | Imsanity | 35 | 32 | 29 | 200k+ | Direct Query | ||
| #1949 | IndieWeb | 35 | 5 | 9 | 600 | Non-prefixed hook name | ||
| #1950 | InPost PL | 35 | 2 | 938 | 10k+ | Non-prefixed global variable |