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 |
|---|---|---|---|---|---|---|---|---|
| #3551 | Disable Comments – Remove Comments & Stop Spam [Multi-Site Support] | 53 | 15 | 46 | 1m+ | Non-prefixed global variable | ||
| #3552 | Export Custom Pages | 53 | 22 | 19 | 700 | Output is not escaped | ||
| #3553 | FakerPress | 53 | 66 | 152 | 10k+ | Non-prefixed global variable | ||
| #3554 | LearnPress – bbPress Integration | 53 | 19 | 14 | 2k+ | Output is not escaped | ||
| #3555 | LuckyWP ACF Menu Field | 53 | 46 | 9 | 5k+ | Short PHP open tag found | ||
| #3556 | MOBILOOK — Mobile View & Mobile‑Friendly Test | 53 | 10 | 20 | 1k+ | Missing nonce verification | ||
| #3557 | ONTRApages | 53 | 16 | 27 | 1k+ | Output is not escaped | ||
| #3558 | Pinterest for WooCommerce | 53 | 44 | 30 | 300k+ | Exception output is not escaped | ||
| #3559 | pretix widget | 53 | 25 | 39 | 400 | Non-prefixed global variable | ||
| #3560 | Pure Metafields | 53 | 5 | 130 | 10k+ | Non-prefixed global variable | ||
| #3561 | Royal WordPress Backup, Restore & Migration Plugin – Backup WordPress Sites Safely | 53 | 34 | 90 | 20k+ | Database parameter is not escaped | ||
| #3562 | Shamor | 53 | 55 | 12 | 400 | wp function not compatible with requires wp | ||
| #3563 | Simple Blog Stats | 53 | 25 | 76 | 4k+ | Non-prefixed function | ||
| #3564 | Simple Masonry Layout | 53 | 28 | 28 | 1k+ | Output is not escaped | ||
| #3565 | Morning for WooCommerce | 53 | 7 | 59 | 1k+ | Non-prefixed global variable | ||
| #3566 | Weight Based Shipping for WooCommerce | 53 | 48 | 41 | 60k+ | Missing direct file access protection | ||
| #3567 | Widget Context | 53 | 14 | 20 | 40k+ | Non-prefixed hook name | ||
| #3568 | WP Console – WordPress PHP Console powered by PsySH | 53 | 34 | 48 | 20k+ | Exception output is not escaped | ||
| #3569 | WP User Switch | 53 | 8 | 46 | 1k+ | Input is not sanitized | ||
| #3570 | aBlocks – Gutenberg Blocks, User Dashboard Builder, Popup Builder, Form Builder & Animation Builder | 54 | 8 | 382 | 2k+ | Non-prefixed global variable | ||
| #3571 | AffiliateWP – Order Details For Affiliates | 54 | 62 | 27 | 2k+ | Output is not escaped | ||
| #3572 | Analytics Head | 54 | 34 | 7 | 600 | Output is not escaped | ||
| #3573 | Anant Addons for Elementor – Widgets, Templates & WooCommerce Builder | 54 | 29 | 207 | 800 | Non-prefixed global variable | ||
| #3574 | Better Admin Bar | 54 | 27 | 63 | 3k+ | Non-prefixed global variable | ||
| #3575 | Blockskit | 54 | 33 | 29 | 8k+ | Text Domain Mismatch | ||
| #3576 | Disqus Comment System | 54 | 17 | 33 | 40k+ | Non-prefixed hook name | ||
| #3577 | Easy Elementor Addons – Addons Pack for Elementor Page Builder | 54 | 35 | 68 | 1k+ | Post Not In exclude | ||
| #3578 | Helpie FAQ — Accordion, Docs & Knowledge Base | 54 | 96 | 89 | 9k+ | Nonce verification recommended | ||
| #3579 | ImageMagick Sharpen Resized Images | 54 | 22 | 6 | 1k+ | Output is not escaped | ||
| #3580 | PWA — easy way to Progressive Web App | 54 | 15 | 44 | 2k+ | Dynamic hook name | ||
| #3581 | MSN Partner Hub | 54 | 21 | 25 | 1k+ | Missing direct file access protection | ||
| #3582 | Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE | 54 | 344 | 93 | 300k+ | Offloaded Content | ||
| #3583 | Quick Buy Now Button for WooCommerce | 54 | 136 | 25 | 40k+ | Text Domain Mismatch | ||
| #3584 | REST XML-RPC Data Checker | 54 | 14 | 45 | 900 | Input is not sanitized | ||
| #3585 | AI Agent by SiteGround | 54 | 28 | 6 | 1m+ | Exception output is not escaped | ||
| #3586 | Simple XML Sitemap Generator | 54 | 8 | 28 | 3k+ | Non-prefixed function | ||
| #3587 | SimplyBook.me – Booking and reservations calendar | 54 | 31 | 13 | 30k+ | Exception output is not escaped | ||
| #3588 | SmartFormat feed for SmartNews | 54 | 64 | 27 | 1k+ | Missing Arg Domain | ||
| #3589 | SpeedSize Image & Video AI-Optimizer | 54 | 98 | 17 | 400 | Text Domain Mismatch | ||
| #3590 | Sticky Floating Forms Lite | 54 | 26 | 29 | 900 | Non-prefixed global variable | ||
| #3591 | Tax Switch for WooCommerce | 54 | 15 | 32 | 900 | Nonce verification recommended | ||
| #3592 | Post Badges | 54 | 19 | 13 | 400 | Output is not escaped | ||
| #3593 | WP Call Button – Easy Click to Call Button for WordPress | 54 | 21 | 38 | 40k+ | Non-prefixed global variable | ||
| #3594 | WP Menu Icons | 54 | 68 | 52 | 20k+ | Text Domain Mismatch | ||
| #3595 | WP Post Navigation | 54 | 14 | 23 | 1k+ | Output is not escaped | ||
| #3596 | WP Social Preview | 54 | 33 | 15 | 800 | Non Singular String Literal Domain | ||
| #3597 | WebinarPress – Webinar System for WordPress | 54 | 61 | 499 | 900 | Non-prefixed global variable | ||
| #3598 | Yeloni Exit Popup | (Free) GDPR Compliance | 54 | 41 | 12 | 700 | Output is not escaped | ||
| #3599 | YITH Proteo Toolkit | 54 | 130 | 64 | 1k+ | Text Domain Mismatch | ||
| #3600 | Accordions | 55 | 1 | 101 | 20k+ | slow db query meta query |