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 |
|---|---|---|---|---|---|---|---|---|
| #3051 | Stealth Publish | 52 | 7 | 22 | 900 | Missing nonce verification | ||
| #3052 | Notiqoo – Order Notification & Customer Chat for WooCommerce | 52 | 11 | 187 | 1k+ | Non-prefixed global variable | ||
| #3053 | Wenprise Pinyin Slug | 52 | 30 | 34 | 4k+ | Text Domain Mismatch | ||
| #3054 | Thank You Page Customizer for WooCommerce – Increase Your Sales | 52 | 5 | 249 | 4k+ | Non-prefixed global variable | ||
| #3055 | Add to Cart Custom Redirect for WooCommerce | 52 | 33 | 13 | 2k+ | Text Domain Mismatch | ||
| #3056 | Price Based on Country for WooCommerce | 52 | 43 | 126 | 20k+ | Non-prefixed hook name | ||
| #3057 | Products Per Page for WooCommerce | 52 | 22 | 28 | 10k+ | Output is not escaped | ||
| #3058 | Automattic For Agencies Client | 53 | 249 | 184 | 20k+ | Text Domain Mismatch | ||
| #3059 | Column Shortcodes | 53 | 32 | 9 | 60k+ | Unsafe printing function | ||
| #3060 | Connect Contact Form 7 and Mailchimp | 53 | 259 | 52 | 40k+ | Text Domain Mismatch | ||
| #3061 | Custom Post Type UI | 53 | 16 | 23 | 1m+ | Output is not escaped | ||
| #3062 | Disable Comments – Remove Comments & Stop Spam [Multi-Site Support] | 53 | 15 | 46 | 1m+ | Non-prefixed global variable | ||
| #3063 | Export Custom Pages | 53 | 22 | 19 | 700 | Output is not escaped | ||
| #3064 | Focus Videos | 53 | 36 | 9 | 400 | Text Domain Mismatch | ||
| #3065 | LuckyWP ACF Menu Field | 53 | 46 | 9 | 5k+ | Short PHP open tag found | ||
| #3066 | Multiple external product URLs for WooCommerce | 53 | 28 | 17 | 400 | Text Domain Mismatch | ||
| #3067 | Pinterest for WooCommerce | 53 | 44 | 30 | 300k+ | Exception output is not escaped | ||
| #3068 | Pure Metafields | 53 | 5 | 130 | 10k+ | Non-prefixed global variable | ||
| #3069 | REST API Featured Image | 53 | 34 | 16 | 700 | Output is not escaped | ||
| #3070 | Royal WordPress Backup, Restore & Migration Plugin – Backup WordPress Sites Safely | 53 | 34 | 90 | 20k+ | Database parameter is not escaped | ||
| #3071 | Shamor | 53 | 55 | 12 | 400 | wp function not compatible with requires wp | ||
| #3072 | Simple Blog Stats | 53 | 25 | 76 | 4k+ | Non-prefixed function | ||
| #3073 | Social Media Widget | 53 | 90 | 21 | 30k+ | Text Domain Mismatch | ||
| #3074 | Texty – SMS Notification for WordPress, WooCommerce, Dokan and more | 53 | 31 | 34 | 8k+ | Output is not escaped | ||
| #3075 | Morning for WooCommerce | 53 | 7 | 59 | 1k+ | Non-prefixed global variable | ||
| #3076 | Weight Based Shipping for WooCommerce | 53 | 48 | 41 | 60k+ | Missing direct file access protection | ||
| #3077 | Widget Context | 53 | 14 | 20 | 40k+ | Non-prefixed hook name | ||
| #3078 | Widgets Reloaded | 53 | 62 | 20 | 1k+ | Output is not escaped | ||
| #3079 | Ultimate Gift Cards for WooCommerce | 53 | 4 | 450 | 7k+ | Non-prefixed global variable | ||
| #3080 | aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder | 54 | 8 | 382 | 2k+ | Non-prefixed global variable | ||
| #3081 | AffiliateWP – Order Details For Affiliates | 54 | 62 | 27 | 2k+ | Output is not escaped | ||
| #3082 | Anant Addons for Elementor – Widgets, Templates & WooCommerce Builder | 54 | 29 | 207 | 800 | Non-prefixed global variable | ||
| #3083 | Cyr-To-Lat | 54 | 16 | 48 | 300k+ | Dynamic hook name | ||
| #3084 | Disqus Comment System | 54 | 17 | 33 | 40k+ | Non-prefixed hook name | ||
| #3085 | Easy Elementor Addons – Addons Pack for Elementor Page Builder | 54 | 35 | 68 | 1k+ | Post Not In exclude | ||
| #3086 | Expanding Archives | 54 | 37 | 9 | 3k+ | Output is not escaped | ||
| #3087 | F2 Tag Cloud Widget | 54 | 66 | 2 | 500 | Output is not escaped | ||
| #3088 | F4 Media Taxonomies | 54 | 7 | 39 | 1k+ | Input is not sanitized | ||
| #3089 | Helpie FAQ — Accordion, Docs & Knowledge Base | 54 | 96 | 89 | 9k+ | Nonce verification recommended | ||
| #3090 | PWA — easy way to Progressive Web App | 54 | 15 | 44 | 2k+ | Dynamic hook name | ||
| #3091 | Juiz Lang Attribute | 54 | 26 | 27 | 1k+ | Text Domain Mismatch | ||
| #3092 | MSN Partner Hub | 54 | 21 | 25 | 1k+ | Missing direct file access protection | ||
| #3093 | Quick Buy Now Button for WooCommerce | 54 | 136 | 25 | 40k+ | Text Domain Mismatch | ||
| #3094 | REST XML-RPC Data Checker | 54 | 14 | 45 | 900 | Input is not sanitized | ||
| #3095 | SmartFormat feed for SmartNews | 54 | 64 | 27 | 1k+ | Missing Arg Domain | ||
| #3096 | SpeedSize Image & Video AI-Optimizer | 54 | 98 | 17 | 400 | Text Domain Mismatch | ||
| #3097 | Tax Switch for WooCommerce | 54 | 15 | 32 | 900 | Nonce verification recommended | ||
| #3098 | WP Call Button – Easy Click to Call Button for WordPress | 54 | 21 | 38 | 40k+ | Non-prefixed global variable | ||
| #3099 | WP Menu Icons | 54 | 68 | 52 | 20k+ | Text Domain Mismatch | ||
| #3100 | WebinarPress – Webinar System for WordPress | 54 | 61 | 499 | 900 | Non-prefixed global variable |