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 |
|---|---|---|---|---|---|---|---|---|
| #2651 | Client Portal – Private user pages and login | 40 | 52 | 29 | 3k+ | Output is not escaped | ||
| #2652 | Top-Bar CodeBulls | 40 | 91 | 13 | 800 | Text Domain Mismatch | ||
| #2653 | codoc | 40 | 19 | 39 | 2k+ | Request data is not unslashed | ||
| #2654 | Contact Form 7 Multi-Step Forms | 40 | 65 | 41 | 50k+ | Output is not escaped | ||
| #2655 | Cryout Serious Theme Settings | 40 | 332 | 51 | 40k+ | Output is not escaped | ||
| #2656 | Cryptocurrency Widgets Pack | 40 | 222 | 52 | 700 | Unsafe printing function | ||
| #2657 | Custom Simple Rss | 40 | 73 | 130 | 2k+ | Nonce verification recommended | ||
| #2658 | Duplicate Page | 40 | 39 | 43 | 3m+ | Unsafe printing function | ||
| #2659 | FameTheme Demo Importer | 40 | 8 | 74 | 30k+ | Nonce verification recommended | ||
| #2660 | FAQ Schema – Accordion, Tab, Slider & Gutenberg Block | 40 | 253 | 46 | 1k+ | Output is not escaped | ||
| #2661 | Flamingo | 40 | 15 | 228 | 800k+ | Nonce verification recommended | ||
| #2662 | FluentComments – Spam protection, AntiSpam, Ajax Enhanced Comments | 40 | 50 | 47 | 700 | Non-prefixed global variable | ||
| #2663 | FlyWP Helper – Page Cache, Page Optimization, Emails for FlyWP Server Control Panel | 40 | 20 | 81 | 4k+ | Non-prefixed global variable | ||
| #2664 | GetPaid > Item Inventory | 40 | 112 | 52 | 400 | Text Domain Mismatch | ||
| #2665 | If Widget – Visibility control for Widgets | 40 | 99 | 25 | 1k+ | Unsafe printing function | ||
| #2666 | Correios Automático – Rastreio, Frete, Etiqueta, Declaração e Devolução | 40 | 32 | 56 | 4k+ | Non-prefixed global variable | ||
| #2667 | Invite Anyone | 40 | 32 | 130 | 1k+ | Non-prefixed hook name | ||
| #2668 | Quotes Addon for GetPaid | 40 | 191 | 21 | 700 | Text Domain Mismatch | ||
| #2669 | Listdomer Core | 40 | 45 | 92 | 400 | Non-prefixed global variable | ||
| #2670 | WP All Import – Listings Import for Listify | 40 | 34 | 27 | 400 | Output is not escaped | ||
| #2671 | WPO365 | Mail Integration for Office 365 / Outlook | 40 | 59 | 27 | 2k+ | Output is not escaped | ||
| #2672 | Mass Email To Users | 40 | 84 | 81 | 800 | Output is not escaped | ||
| #2673 | Monkeyman Rewrite Analyzer | 40 | 89 | 10 | 2k+ | Non Singular String Literal Domain | ||
| #2674 | 코드엠샵 소셜톡 | 40 | 47 | 36 | 400 | Output is not escaped | ||
| #2675 | No-Bot Registration | 40 | 112 | 42 | 2k+ | Unsafe printing function | ||
| #2676 | One Click SSL | 40 | 136 | 62 | 10k+ | Unsafe printing function | ||
| #2677 | OPML Importer | 40 | 35 | 13 | 3k+ | Output is not escaped | ||
| #2678 | Donations via PayPal | 40 | 143 | 17 | 20k+ | Output is not escaped | ||
| #2679 | Give – Paystack Gateway | 40 | 96 | 10 | 1k+ | Text Domain Mismatch | ||
| #2680 | Paystack MemberPress | 40 | 71 | 76 | 400 | Output is not escaped | ||
| #2681 | Permalink Editor | 40 | 50 | 28 | 1k+ | Output is not escaped | ||
| #2682 | List Petfinder Pets | 40 | 121 | 46 | 400 | Output is not escaped | ||
| #2683 | Pixel Tag Manager for WooCommerce – Google Analytics 4, Google Ads, and More Pixels | 40 | 68 | 249 | 3k+ | Missing nonce verification | ||
| #2684 | Post Ratings | 40 | 160 | 32 | 600 | Output is not escaped | ||
| #2685 | Privilege Widget | 40 | 139 | 52 | 600 | Text Domain Mismatch | ||
| #2686 | Product Video Gallery for Woocommerce | 40 | 61 | 36 | 10k+ | Setting is missing a sanitization callback | ||
| #2687 | Manual Related Posts | 40 | 51 | 32 | 1k+ | Output is not escaped | ||
| #2688 | Responsive Plus – Elementor Templates & Starter Sites | 40 | 46 | 305 | 10k+ | Non-prefixed global variable | ||
| #2689 | LazyLoad Plugin – Lazy Load Images, Videos, and Iframes | 40 | 31 | 17 | 100k+ | Output is not escaped | ||
| #2690 | Same Category Posts | 40 | 183 | 8 | 3k+ | Output is not escaped | ||
| #2691 | Search Live | 40 | 132 | 71 | 600 | Output is not escaped | ||
| #2692 | Search with Typesense | 40 | 81 | 122 | 700 | Non-prefixed global variable | ||
| #2693 | Secondary Title | 40 | 117 | 31 | 7k+ | Unsafe printing function | ||
| #2694 | Select All Categories and Taxonomies, Change Checkbox to Radio Buttons | 40 | 116 | 30 | 3k+ | Output is not escaped | ||
| #2695 | Select Post Export | 40 | 51 | 18 | 500 | Output is not escaped | ||
| #2696 | AdFlow – Easy Google AdSense Integration | 40 | 150 | 9 | 3k+ | Unsafe printing function | ||
| #2697 | Simple Page Sidebars | 40 | 55 | 65 | 20k+ | Output is not escaped | ||
| #2698 | Specific Content For Mobile – Customize the mobile version without redirections | 40 | 26 | 155 | 4k+ | Nonce verification recommended | ||
| #2699 | SportsPress for Cricket | 40 | 122 | 34 | 500 | Text Domain Mismatch | ||
| #2700 | ST Demo Importer | 40 | 27 | 75 | 700 | Missing nonce verification |