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 |
|---|---|---|---|---|---|---|---|---|
| #3451 | Post Grid Addon for Elementor | 74 | 16 | 13 | 10k+ | Missing direct file access protection | ||
| #3452 | Post My CF7 Form | 74 | 21 | 168 | 2k+ | Non-prefixed global variable | ||
| #3453 | Product Layouts for WooCommerce | 74 | 5 | 75 | 1k+ | Direct Query | ||
| #3454 | QODE Optimizer | 74 | 1 | 249 | 20k+ | Non-prefixed global variable | ||
| #3455 | WP All Import – Property Import for RealHomes | 74 | 17 | 12 | 700 | Output is not escaped | ||
| #3456 | Resume Builder | 74 | 20 | 59 | 1k+ | Non-prefixed global variable | ||
| #3457 | Email Deliverability – SMTP Replacement, Email API Deliverability & Email Log | 74 | 8 | 23 | 200k+ | Output is not escaped | ||
| #3458 | Image Quality Control | Still BE | 74 | 71 | 28 | 400 | Missing Translators Comment | ||
| #3459 | Change Storefront Footer Copyright Text | 74 | 71 | 21 | 4k+ | Text Domain Mismatch | ||
| #3460 | Sublium Subscriptions – Subscriptions for WooCommerce – Recurring Payments, Subscription Plans & Installments | 74 | 35 | 22 | 400 | wp function not compatible with requires wp | ||
| #3461 | Widgets in Menu for WordPress | 74 | 16 | 12 | 8k+ | Text Domain Mismatch | ||
| #3462 | WP Cron HTTP Auth | 74 | 12 | 7 | 1k+ | Output is not escaped | ||
| #3463 | Zion Builder – Website Builder for Speed & Creativity | 74 | 4 | 29 | 1k+ | Non-prefixed hook name | ||
| #3464 | Acumbamail | 75 | 7 | 36 | 1k+ | Non-prefixed global variable | ||
| #3465 | Admin Locale | 75 | 12 | 10 | 6k+ | Missing Arg Domain | ||
| #3466 | Conditional Logic Emails, Fields, Redirect for Elementor Forms | 75 | 312 | 31 | 2k+ | wp function not compatible with requires wp | ||
| #3467 | Custom Adobe Fonts (Typekit) | 75 | 11 | 33 | 60k+ | Non-prefixed global variable | ||
| #3468 | Customize Twenty Seventeen | 75 | 33 | 19 | 2k+ | Text Domain Mismatch | ||
| #3469 | Easy Accordion – AI-Powered FAQ & Accordion Blocks, Product FAQ | 75 | 306 | 70k+ | Non-prefixed global variable | |||
| #3470 | Eventin Addons for Divi Builder | 75 | 6 | 17 | 800 | Nonce verification recommended | ||
| #3471 | Hide Categories and Products for Woocommerce | 75 | 1 | 20 | 10k+ | Input is not sanitized | ||
| #3472 | Invoice Gateway for WooCommerce – Invoice Payment Gateway | 75 | 3 | 30 | 2k+ | Nonce verification recommended | ||
| #3473 | Media Search Enhanced | 75 | 4 | 23 | 4k+ | Non-prefixed hook name | ||
| #3474 | Open Graph Protocol Framework | 75 | 17 | 12 | 3k+ | Missing direct file access protection | ||
| #3475 | WowOptin: Next-Gen Popup Maker – Create Stunning Popups and Optins for Lead Generation | 75 | 2 | 60 | 1k+ | Database parameter is not escaped | ||
| #3476 | Options Framework | 75 | 8 | 56 | 10k+ | Non-prefixed function | ||
| #3477 | Order Delivery Date And Time | 75 | 26 | 28 | 1k+ | Text Domain Mismatch | ||
| #3478 | Post Type Switcher | 75 | 3 | 18 | 200k+ | Direct Query | ||
| #3479 | Rapyd Payment Extension for WooCommerce | 75 | 50 | 33 | 400 | Text Domain Mismatch | ||
| #3480 | Registration Form for WooCommerce | 75 | 5 | 42 | 900 | Non-prefixed global variable | ||
| #3481 | Simple SMTP by Maileroo | 75 | 40 | 8 | 700 | Text Domain Mismatch | ||
| #3482 | Temporary Login | 75 | 3 | 25 | 40k+ | Nonce verification recommended | ||
| #3483 | Testimonial – Testimonial Slider and Showcase Plugin | 75 | 563 | 231 | 30k+ | Text Domain Mismatch | ||
| #3484 | Video Background Block – Use video as background in section. | 75 | 35 | 90 | 2k+ | Non-prefixed global variable | ||
| #3485 | Ukrposhta | 75 | 24 | 226 | 500 | Non-prefixed global variable | ||
| #3486 | Custom Product Tabs Lite for WooCommerce | 75 | 3 | 11 | 4k+ | Input is not validated | ||
| #3487 | Brazilian Market on WooCommerce | 75 | 4 | 51 | 70k+ | Missing nonce verification | ||
| #3488 | Extra Product Sorting Options for WooCommerce | 75 | 10 | 16 | 10k+ | Text Domain Mismatch | ||
| #3489 | wp-forecast | 75 | 263 | 117 | 5k+ | Missing Arg Domain | ||
| #3490 | WPSSO WP Sitemaps XML with News, Image, and Video Sitemap | 75 | 60 | 24 | 400 | Missing Translators Comment | ||
| #3491 | Advanced Custom Fields: Ninjaforms Add-on | 76 | 43 | 8 | 1k+ | Text Domain Mismatch | ||
| #3492 | Ajax Cart AutoUpdate for WooCommerce | 76 | 15 | 5 | 8k+ | Output is not escaped | ||
| #3493 | Ajax Search Lite – Live Search & Filter | 76 | 126 | 264 | 80k+ | Non-prefixed hook name | ||
| #3494 | Autocomplete WooCommerce Orders | 76 | 70 | 55 | 30k+ | Text Domain Mismatch | ||
| #3495 | PiWeb Cancel order / Refund request for WooCommerce | 76 | 40 | 49 | 2k+ | wp function not compatible with requires wp | ||
| #3496 | Change Mail Sender | 76 | 97 | 19 | 20k+ | Text Domain Mismatch | ||
| #3497 | CiviCRM Member Sync | 76 | 8 | 70 | 800 | Non-prefixed global variable | ||
| #3498 | Clear Cache Everywhere | 76 | 7 | 17 | 700 | Nonce verification recommended | ||
| #3499 | Custom Template for LearnDash | 76 | 7 | 9 | 1k+ | Non-prefixed hook name | ||
| #3500 | FileBird Document Library | 76 | 23 | 13 | 5k+ | Text Domain Mismatch |