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 |
|---|---|---|---|---|---|---|---|---|
| #3401 | Widget Disable | 46 | 19 | 19 | 10k+ | Output is not escaped | ||
| #3402 | WP All Import β Import SEO Settings for Yoast SEO | 46 | 19 | 26 | 20k+ | Nonce verification recommended | ||
| #3403 | AffiliateWP Checkout Referrals | 47 | 48 | 26 | 600 | Output is not escaped | ||
| #3404 | 404 Image Redirection (Replace Broken Images) | 47 | 118 | 85 | 500 | Text Domain Mismatch | ||
| #3405 | Clear Cache for Me | 47 | 58 | 8 | 40k+ | Text Domain Mismatch | ||
| #3406 | Delete Duplicate Posts | 47 | 9 | 50 | 10k+ | Direct Query | ||
| #3407 | Do Shortcodes for Rank Math SEO | 47 | 117 | 3 | 1k+ | Output is not escaped | ||
| #3408 | DPO Pay for WooCommerce | 47 | 28 | 41 | 1k+ | Non Singular String Literal Text | ||
| #3409 | EasyFonts β Host Google Fonts Locally, Fast & Auto-Optimize, GDPR Compliant | 47 | 5 | 58 | 1k+ | Interpolated SQL is not prepared | ||
| #3410 | FSM Custom Featured Image Caption | 47 | 26 | 27 | 5k+ | Output is not escaped | ||
| #3411 | KCSG Kartra Pages | 47 | 30 | 16 | 500 | Heredoc Output Not Escaped | ||
| #3412 | Log Emails | 47 | 19 | 29 | 6k+ | Non-prefixed global variable | ||
| #3413 | Real Media Library: Media Library Folder & File Manager | 47 | 1 | 365 | 100k+ | Direct Query | ||
| #3414 | Restore PayPal Standard for WooCommerce | 47 | 19 | 53 | 3k+ | Nonce verification recommended | ||
| #3415 | Security Ninja For MainWP | 47 | 246 | 71 | 500 | Text Domain Mismatch | ||
| #3416 | SportsPress for Baseball | 47 | 113 | 34 | 900 | Text Domain Mismatch | ||
| #3417 | Store Locator for WordPressπ | 47 | 51 | 21 | 1k+ | Missing Arg Domain | ||
| #3418 | The Tribal Plugin | 47 | 43 | 62 | 800 | Non-prefixed function | ||
| #3419 | Userback | 47 | 13 | 20 | 2k+ | Output is not escaped | ||
| #3420 | Better Usability for WooCommerce | 47 | 27 | 87 | 800 | Non-prefixed hook name | ||
| #3421 | FedaPay Gateway for WooCommerce | 47 | 24 | 11 | 700 | Output is not escaped | ||
| #3422 | iControlWP | 47 | 45 | 59 | 1k+ | Missing direct file access protection | ||
| #3423 | WP Custom Author URL | 47 | 16 | 38 | 5k+ | Non-prefixed global variable | ||
| #3424 | QuadLayers TikTok Feed | 47 | 78 | 52 | 7k+ | Text Domain Mismatch | ||
| #3425 | Post Status Notifications | 47 | 98 | 41 | 1k+ | Text Domain Mismatch | ||
| #3426 | XML Sitemap & Google News | 47 | 270 | 224 | 100k+ | Non-prefixed global variable | ||
| #3427 | Add-on WooCommerce β MailPoet 3 | 48 | 30 | 21 | 600 | Output is not escaped | ||
| #3428 | Add Polylang support for Customizer | 48 | 18 | 20 | 2k+ | Nonce verification recommended | ||
| #3429 | AffiliateWP β Store Credit | 48 | 47 | 21 | 400 | Output is not escaped | ||
| #3430 | Ansar Import β One Click Starter Sites β for Elementor & Themes | 48 | 27 | 116 | 10k+ | Non-prefixed global variable | ||
| #3431 | AnWP Post Grid and Post Carousel Slider for Elementor | 48 | 758 | 171 | 20k+ | Text Domain Mismatch | ||
| #3432 | bxSlider integration for WordPress | 48 | 126 | 21 | 500 | Text Domain Mismatch | ||
| #3433 | Comment Notifier | 48 | 10 | 55 | 400 | Non-prefixed global variable | ||
| #3434 | Contact Form 7 BWP reCAPTCHA Extension | 48 | 92 | 10 | 400 | Non Singular String Literal Domain | ||
| #3435 | Current Menu Item for Custom Post Types | 48 | 18 | 30 | 2k+ | Non-prefixed global variable | ||
| #3436 | Better Badge β Custom Product Badges for WooCommerce | 48 | 21 | 47 | 500 | Non Singular String Literal Domain | ||
| #3437 | Tag Pilot FREE β Google Tag Manager Integration for WooCommerce | 48 | 35 | 19 | 1k+ | Output is not escaped | ||
| #3438 | Jetpack Social | 48 | 829 | 254 | 30k+ | Text Domain Mismatch | ||
| #3439 | JW Player for WordPress | 48 | 289 | 80 | 1k+ | Text Domain Mismatch | ||
| #3440 | Add LinkedIn Insight Tag for LinkedIn Ads | 48 | 130 | 23 | 5k+ | Non Singular String Literal Domain | ||
| #3441 | Mailster Live | 48 | 22 | 37 | 600 | Missing Translators Comment | ||
| #3442 | Optinly β Exit Intent, Newsletter Popups, Gamification & Opt-in Forms | 48 | 34 | 14 | 800 | Non Singular String Literal Domain | ||
| #3443 | Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories | 48 | 63 | 273 | 100k+ | Non-prefixed global variable | ||
| #3444 | External Links | 48 | 42 | 13 | 9k+ | Output is not escaped | ||
| #3445 | Simple Custom Post Order | 48 | 10 | 77 | 300k+ | Direct Query | ||
| #3446 | FlexStock β Product Stock Sync with Google Sheets for WooCommerce | 48 | 241 | 700 | Direct Query | |||
| #3447 | Easy Updates Manager | 48 | 13 | 182 | 300k+ | Non-prefixed global variable | ||
| #3448 | Super Simple Google Analytics | 48 | 55 | 3 | 2k+ | Output is not escaped | ||
| #3449 | ThemeFarmer Companion | 48 | 54 | 51 | 2k+ | Missing Version | ||
| #3450 | WC Provincia Canton Distrito | 48 | 103 | 14 | 1k+ | Text Domain Mismatch |