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 |
|---|---|---|---|---|---|---|---|---|
| #3501 | Custom Block Builder – Lazy Blocks | 50 | 23 | 51 | 20k+ | Non-prefixed hook name | ||
| #3502 | Mailster Gravity Forms | 50 | 46 | 32 | 800 | Text Domain Mismatch | ||
| #3503 | Pago por Redsys | 50 | 44 | 59 | 700 | Text Domain Mismatch | ||
| #3504 | Send Emails with Mandrill | 50 | 36 | 141 | 6k+ | Non-prefixed global variable | ||
| #3505 | Simple User Listing | 50 | 27 | 56 | 900 | Non-prefixed global variable | ||
| #3506 | Sözleşmeler | 50 | 6 | 36 | 1k+ | Input is not sanitized | ||
| #3507 | TrustedSite | 50 | 29 | 14 | 20k+ | Output is not escaped | ||
| #3508 | BestWebSoft's Twitter | 50 | 477 | 174 | 900 | Text Domain Mismatch | ||
| #3509 | Cart Popup for WooCommerce | 51 | 9 | 115 | 9k+ | Non-prefixed global variable | ||
| #3510 | Aspexi Social Media Slider | 51 | 177 | 15 | 2k+ | Text Domain Mismatch | ||
| #3511 | AVIF Uploader | 51 | 49 | 44 | 4k+ | Missing Arg Domain | ||
| #3512 | Feeds for TikTok – Display Video Feeds in Grid Layouts | 51 | 18 | 59 | 1k+ | Request data is not unslashed | ||
| #3513 | Booqable Rental Plugin | 51 | 81 | 18 | 1k+ | wp function not compatible with requires wp | ||
| #3514 | Bootstrap Modals | 51 | 43 | 8 | 1k+ | Output is not escaped | ||
| #3515 | Counter Box – Add Countdowns, Timers & Dynamic Counters to WordPress | 51 | 3 | 116 | 1k+ | Missing nonce verification | ||
| #3516 | Firelight Lightbox | 51 | 78 | 97 | 200k+ | Non-prefixed global variable | ||
| #3517 | Gravatar Enhanced – Avatars, Profiles, and Privacy | 51 | 38 | 48 | 100k+ | Dynamic hook name | ||
| #3518 | Hide Admin Bar | 51 | 35 | 17 | 20k+ | Unsafe printing function | ||
| #3519 | Interactive Globes – 3D World Maps | 51 | 24 | 104 | 400 | Non-prefixed global variable | ||
| #3520 | Juicer.io: Effortlessly embed, curate, and aggregate social media feeds into your website | 51 | 44 | 34 | 9k+ | Output is not escaped | ||
| #3521 | KIA Subtitle | 51 | 21 | 19 | 7k+ | Non-prefixed global variable | ||
| #3522 | Menu Icons by Themeisle – Add Icons to Navigation Menus | 51 | 34 | 22 | 100k+ | Output is not escaped | ||
| #3523 | OnSale Page for WooCommerce | 51 | 30 | 44 | 2k+ | Text Domain Mismatch | ||
| #3524 | Quotes and Tips by BestWebSoft | 51 | 485 | 190 | 1k+ | Text Domain Mismatch | ||
| #3525 | SePay Gateway | 51 | 12 | 39 | 2k+ | Nonce verification recommended | ||
| #3526 | StoryChief | 51 | 12 | 55 | 1k+ | Input is not sanitized | ||
| #3527 | User Activity Tracking and Log | 51 | 28 | 237 | 3k+ | Non-prefixed global variable | ||
| #3528 | VK Filter Search | 51 | 35 | 71 | 6k+ | Nonce verification recommended | ||
| #3529 | Swift SMTP (formerly Welcome Email Editor) | 51 | 12 | 62 | 7k+ | Missing nonce verification | ||
| #3530 | WP Counter Up – Animated Number Counter & Milestone Showcase | 51 | 18 | 239 | 1k+ | Non-prefixed global variable | ||
| #3531 | REST API Log | 51 | 44 | 95 | 5k+ | Non-prefixed hook name | ||
| #3532 | Insert Code by Angie Makes | 51 | 43 | 8 | 900 | Output is not escaped | ||
| #3533 | WPFrom Email | 51 | 44 | 12 | 600 | Output is not escaped | ||
| #3534 | YayMail – WooCommerce Email Customizer | 51 | 163 | 788 | 50k+ | Non-prefixed global variable | ||
| #3535 | Affiliate Area Shortcodes by AffiliateWP | 52 | 56 | 16 | 2k+ | Text Domain Mismatch | ||
| #3536 | Debug This | 52 | 43 | 32 | 2k+ | Missing Translators Comment | ||
| #3537 | Easy WP Page Navigation | 52 | 60 | 8 | 800 | Non Singular String Literal Domain | ||
| #3538 | Formstack Online Forms | 52 | 39 | 20 | 1k+ | Output is not escaped | ||
| #3539 | GSheetConnector for Gravity Forms – Send Gravity Forms Entries to Google Sheets in Real-Time | 52 | 26 | 27 | 1k+ | Exception output is not escaped | ||
| #3540 | MB Custom Post Types & Custom Taxonomies | 52 | 9 | 49 | 10k+ | Nonce verification recommended | ||
| #3541 | Meta Generator and Version Info Remover | 52 | 20 | 28 | 10k+ | Non-prefixed function | ||
| #3542 | Podium | 52 | 21 | 23 | 5k+ | Missing direct file access protection | ||
| #3543 | Custom Post Template By Templatic | 52 | 19 | 14 | 600 | Text Domain Mismatch | ||
| #3544 | Travel Map | 52 | 36 | 11 | 1k+ | Output is not escaped | ||
| #3545 | Notiqoo – Order Notification & Customer Chat for WooCommerce | 52 | 11 | 187 | 1k+ | Non-prefixed global variable | ||
| #3546 | Thank You Page Customizer for WooCommerce – Increase Your Sales | 52 | 5 | 249 | 4k+ | Non-prefixed global variable | ||
| #3547 | Add to Cart Custom Redirect for WooCommerce | 52 | 33 | 13 | 2k+ | Text Domain Mismatch | ||
| #3548 | Price Based on Country for WooCommerce | 52 | 43 | 126 | 20k+ | Non-prefixed hook name | ||
| #3549 | WP Hooks Finder | 52 | 27 | 31 | 1k+ | Output is not escaped | ||
| #3550 | WP Secure Maintenance | 52 | 28 | 18 | 1k+ | Output is not escaped |