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 |
|---|---|---|---|---|---|---|---|---|
| #3401 | Amazing Affiliates – Toolkit for Amazon Associates with Amazon Product Blocks and Amazon PAAPI5 / Creators API integration | 72 | 3 | 650 | 600 | Non-prefixed global variable | ||
| #3402 | Click to top | 72 | 22 | 8 | 2k+ | Output is not escaped | ||
| #3403 | Cloudinary – Deliver Images and Videos at Scale | 72 | 691 | 134 | 5k+ | Text Domain Mismatch | ||
| #3404 | PowerBI Embed Reports | 72 | 3 | 20 | 500 | Nonce verification recommended | ||
| #3405 | EU Order Withdrawal Button for WooCommerce | 72 | 52 | 406 | 4k+ | Non-prefixed hook name | ||
| #3406 | Gift Wrapping for WooCommerce | 72 | 2 | 16 | 1k+ | Missing nonce verification | ||
| #3407 | Login Logout Menu | 72 | 7 | 20 | 20k+ | Input is not sanitized | ||
| #3408 | Featured Image in RSS Feed by MailerLite | 72 | 12 | 7 | 1k+ | Output is not escaped | ||
| #3409 | Media File Sizes | 72 | 14 | 5 | 1k+ | Output is not escaped | ||
| #3410 | Media Library Organizer – Folders, File Manager & Media Categories | 72 | 20 | 130 | 20k+ | Non-prefixed global variable | ||
| #3411 | Responsive Blocks – Page Builder for Blocks & Patterns | 72 | 47 | 43 | 3k+ | badly named files | ||
| #3412 | Simple Local Avatars | 72 | 14 | 16 | 100k+ | Non-prefixed constant | ||
| #3413 | Templ Optimizer | 72 | 6 | 63 | 1k+ | Direct Query | ||
| #3414 | Starter Templates & Sites Pack by ThemeGrill | 72 | 28 | 51 | 70k+ | Non-prefixed hook name | ||
| #3415 | TinyPNG – JPEG, PNG & WebP image compression | 72 | 40 | 73 | 100k+ | Non-prefixed global variable | ||
| #3416 | Ultimate Member Custom Tab Builder Lite | 72 | 12 | 15 | 500 | Output is not escaped | ||
| #3417 | Place Order Without Payment for WooCommerce | 72 | 244 | 62 | 3k+ | Text Domain Mismatch | ||
| #3418 | Product Subtitle For WooCommerce | 72 | 6 | 36 | 3k+ | Non-prefixed namespace | ||
| #3419 | Direct Checkout for WooCommerce | 72 | 77 | 35 | 80k+ | Text Domain Mismatch | ||
| #3420 | AffiliateWP – Allowed Products | 73 | 47 | 19 | 1k+ | Text Domain Mismatch | ||
| #3421 | BuddyPress Activity Shortcode | 73 | 9 | 14 | 2k+ | Non-prefixed hook name | ||
| #3422 | Conditionally display featured image on singular posts and pages | 73 | 17 | 6 | 30k+ | Output is not escaped | ||
| #3423 | Contact Form to Brevo | 73 | 67 | 11 | 1k+ | Text Domain Mismatch | ||
| #3424 | Continue Shopping for WooCommerce | 73 | 9 | 20 | 5k+ | Input is not sanitized | ||
| #3425 | OpenID Connect Generic Client | 73 | 9 | 59 | 10k+ | Non-prefixed hook name | ||
| #3426 | EU Withdrawal Button for WooCommerce | 73 | 27 | 400 | Missing nonce verification | |||
| #3427 | EXMAGE – WordPress Image Links | 73 | 14 | 34 | 7k+ | Missing Arg Domain | ||
| #3428 | Genesis Widget Column Classes | 73 | 41 | 4 | 5k+ | Non Singular String Literal Domain | ||
| #3429 | jQuery Lightbox For Native Galleries | 73 | 26 | 7 | 5k+ | Text Domain Mismatch | ||
| #3430 | Meks Easy Ads Widget | 73 | 21 | 9 | 10k+ | Output is not escaped | ||
| #3431 | NETOPIA Payments Payment Gateway | 73 | 3 | 31 | 10k+ | Missing nonce verification | ||
| #3432 | Weight zone shipping for WooCommerce | 73 | 25 | 13 | 1k+ | Missing Translators Comment | ||
| #3433 | Plugin Groups | 73 | 16 | 12 | 1k+ | Non Singular String Literal Domain | ||
| #3434 | POKY – Product Importer | 73 | 6 | 12 | 700 | Input is not validated | ||
| #3435 | Remove Taxonomy URL | 73 | 17 | 16 | 1k+ | Output is not escaped | ||
| #3436 | Comment Edit Core – Simple Comment Editing | 73 | 27 | 85 | 2k+ | Non-prefixed hook name | ||
| #3437 | WEN Skill Charts | 73 | 23 | 600 | Request data is not unslashed | |||
| #3438 | WPWaterMark 轻水印插件 | 73 | 24 | 17 | 1k+ | Request data is not unslashed | ||
| #3439 | AffiliateWP – Sign Up Bonus | 74 | 46 | 13 | 400 | Text Domain Mismatch | ||
| #3440 | BlogLentor – Blog Designer Pack for Elementor | 74 | 743 | 29 | 5k+ | Text Domain Mismatch | ||
| #3441 | Calculation For Contact Form 7 | 74 | 21 | 5 | 1k+ | Text Domain Mismatch | ||
| #3442 | Signature Field For Contact Form 7 – CF7Sign | 74 | 9 | 12 | 700 | Missing Translators Comment | ||
| #3443 | CoinGate for WooCommerce | 74 | 35 | 18 | 500 | Text Domain Mismatch | ||
| #3444 | Custom Icons for Elementor and WPBakery | 74 | 35 | 38 | 10k+ | Non-prefixed global variable | ||
| #3445 | ELEX WooCommerce USPS Shipping Method | 74 | 139 | 45 | 800 | Text Domain Mismatch | ||
| #3446 | EmailKit – Email Customizer for WooCommerce & WP | 74 | 17 | 82 | 70k+ | slow db query meta query | ||
| #3447 | Free Shipping Label and Progress Bar for WooCommerce | 74 | 60 | 5k+ | Non-prefixed hook name | |||
| #3448 | Highlight and Share – Unobtrusive and Lightweight Content Sharing | 74 | 12 | 115 | 800 | Non-prefixed hook name | ||
| #3449 | Markup Markdown | 74 | 18 | 128 | 2k+ | Non-prefixed global variable | ||
| #3450 | Plugin Notes Plus | 74 | 2 | 42 | 9k+ | Non-prefixed hook name |