WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound
Non-prefixed global variable
The plugin defines a global variable 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 global variable 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 |
|---|---|---|---|---|---|---|---|---|
| #4201 | Flexible Wishlist for WooCommerce – Ecommerce Wishlist & Save for later | 80 | 21 | 25 | 800 | Non-prefixed global variable | ||
| #4202 | Hizzle CAPTCHA – Protect your forms from spam | 80 | 4 | 27 | 500 | Non-prefixed global variable | ||
| #4203 | Leadinfo | 80 | 11 | 8 | 7k+ | Missing direct file access protection | ||
| #4204 | Panda Video | 80 | 29 | 17 | 3k+ | Non-prefixed global variable | ||
| #4205 | Pro Mime Types – Manage file media types | 80 | 55 | 98 | 2k+ | Non-prefixed global variable | ||
| #4206 | RealHomes Currency Switcher | 80 | 71 | 42 | 1k+ | Non Singular String Literal Domain | ||
| #4207 | SteadFast API | 80 | 2 | 23 | 8k+ | Non-prefixed global variable | ||
| #4208 | Nexter Blocks – Gutenberg Blocks, Page Builder & AI Website Builder | 80 | 94 | 732 | 10k+ | Non-prefixed global variable | ||
| #4209 | Melapress File Monitor | 80 | 16 | 90 | 6k+ | Non-prefixed global variable | ||
| #4210 | Mini Cart Drawer For WooCommerce | 80 | 4 | 25 | 500 | Non-prefixed hook name | ||
| #4211 | Product Feed PRO for WooCommerce by AdTribes – Product Feeds for WooCommerce | 80 | 9 | 450 | 80k+ | Non-prefixed hook name | ||
| #4212 | Gift Wrapper for WooCommerce | 80 | 111 | 125 | 2k+ | Text Domain Mismatch | ||
| #4213 | Discounts Per Payment Method on WooCommerce | 80 | 8 | 8 | 1k+ | Missing Translators Comment | ||
| #4214 | WP Social Ninja – Embed Social Feeds, User Reviews & Chat Widgets | 80 | 26 | 18 | 30k+ | Missing direct file access protection | ||
| #4215 | AboveWP Bulgarian Eurozone | 81 | 10 | 8 | 3k+ | Output is not escaped | ||
| #4216 | Sympl Repeater for ACF and Elementor | 81 | 9 | 4 | 1k+ | Output is not escaped | ||
| #4217 | ActivityPub | 81 | 67 | 305 | 6k+ | Non-prefixed global variable | ||
| #4218 | AI | 81 | 11 | 79 | 30k+ | Non-prefixed global variable | ||
| #4219 | Great Restaurant Menu WP | 81 | 89 | 100 | 1k+ | Text Domain Mismatch | ||
| #4220 | Blocksy Companion | 81 | 1,075 | 300k+ | Non-prefixed global variable | |||
| #4221 | Joinchat – Enhanced "click to chat" | 81 | 17 | 32 | 700k+ | wp function not compatible with requires wp | ||
| #4222 | eCommerce Shipping Dashboard by UPS for WooCommerce | 81 | 6 | 35 | 1k+ | Non-prefixed constant | ||
| #4223 | ElasticPress | 81 | 13 | 655 | 8k+ | Non-prefixed hook name | ||
| #4224 | GSheetConnector for Elementor Forms – Sync Elementor Forms to Google Sheets | 81 | 11 | 12 | 9k+ | Non-prefixed global variable | ||
| #4225 | GIFTiT – Free Gifts for WooCommerce | 81 | 43 | 357 | 2k+ | Non-prefixed global variable | ||
| #4226 | REPORTiT – Advanced Reporting for WooCommerce | 81 | 9 | 98 | 700 | Non-prefixed global variable | ||
| #4227 | JivoChat Live Chat – WP live chat plugin for WordPress | 81 | 27 | 13 | 20k+ | wp function not compatible with requires wp | ||
| #4228 | OG — Better Share on Social Media | 81 | 14 | 51 | 30k+ | Non-prefixed hook name | ||
| #4229 | Order Approval for Woocommerce | 81 | 3 | 208 | 1k+ | Non-prefixed global variable | ||
| #4230 | Pagebar2 | 81 | 19 | 37 | 900 | Non-prefixed global variable | ||
| #4231 | Select and Multi-Select Field for Contact Form 7 | 81 | 25 | 12 | 2k+ | Text Domain Mismatch | ||
| #4232 | Orphans | 81 | 1 | 43 | 50k+ | Dynamic hook name | ||
| #4233 | Stream | 81 | 5 | 80 | 80k+ | Direct Query | ||
| #4234 | Loops & Logic | 81 | 11 | 3 | 2k+ | Missing direct file access protection | ||
| #4235 | Telephone field for Gravity Forms | 81 | 124 | 9 | 400 | wp function not compatible with requires wp | ||
| #4236 | Timed Content For Beaver Builder | 81 | 29 | 8 | 1k+ | date date | ||
| #4237 | VS Event List | 81 | 1 | 259 | 8k+ | Non-prefixed global variable | ||
| #4238 | Appointment Bookings for Zoom GoogleMeet and more – Wappointment | 81 | 22 | 52 | 1k+ | Non-prefixed class | ||
| #4239 | Free Shipping Bar for WooCommerce | 81 | 5 | 21 | 2k+ | Non-prefixed global variable | ||
| #4240 | Bulk Order Form for WooCommerce | 81 | 8 | 98 | 900 | Non-prefixed hook name | ||
| #4241 | Advance Canonical URL | 82 | 3 | 10 | 1k+ | Input is not validated | ||
| #4242 | Bookero.pl – system rezerwacji online | 82 | 12 | 7 | 1k+ | curl curl setopt | ||
| #4243 | Catch Gallery | 82 | 1 | 35 | 10k+ | Non-prefixed hook name | ||
| #4244 | Confirm Plus Contact Form 7 | 82 | 10 | 15 | 7k+ | Non Singular String Literal Domain | ||
| #4245 | Awin Publisher MasterTag | 82 | 6 | 6 | 1k+ | Non-prefixed global variable | ||
| #4246 | Editor Blocks for Gutenberg | 82 | 6 | 8 | 700 | Missing direct file access protection | ||
| #4247 | ForumWP – Forum & Discussion Board | 82 | 22 | 444 | 800 | Non-prefixed global variable | ||
| #4248 | Hostinger Tools | 82 | 13 | 22 | 3m+ | wp function not compatible with requires wp | ||
| #4249 | PixTypes | 82 | 178 | 9k+ | Non-prefixed global variable | |||
| #4250 | Posts and Users Stats | 82 | 183 | 600 | Non-prefixed global variable |