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 |
|---|---|---|---|---|---|---|---|---|
| #3301 | Vast Demo Import | 42 | 180 | 113 | 600 | Text Domain Mismatch | ||
| #3302 | WC Price History | 42 | 18 | 21 | 4k+ | Database parameter is not escaped | ||
| #3303 | WC Speed Repair | 42 | 34 | 74 | 1k+ | Non-prefixed global variable | ||
| #3304 | WebPlanex: GST Invoice India | 42 | 63 | 63 | 400 | Text Domain Mismatch | ||
| #3305 | Widget Visibility Time Scheduler | 42 | 70 | 34 | 1k+ | Output is not escaped | ||
| #3306 | WPC Order Notes for WooCommerce | 42 | 24 | 41 | 900 | Output is not escaped | ||
| #3307 | WP Content Copy Protection & No Right Click | 42 | 126 | 135 | 100k+ | Unsafe printing function | ||
| #3308 | Eventin – Event Calendar, Event Registration, Tickets & Booking (AI Powered) | 42 | 2,583 | 1,823 | 10k+ | Text Domain Mismatch | ||
| #3309 | WP Fingerprint | 42 | 34 | 47 | 9k+ | Direct Query | ||
| #3310 | WP QuickLaTeX | 42 | 41 | 60 | 5k+ | Non-prefixed global variable | ||
| #3311 | WP Widget Clipboard – Duplicate widgets intuitively | 42 | 51 | 19 | 800 | Output is not escaped | ||
| #3312 | WPTerm | 42 | 61 | 89 | 3k+ | Output is not escaped | ||
| #3313 | AddFunc Head & Footer Code | 43 | 28 | 18 | 20k+ | Output is not escaped | ||
| #3314 | AMP | 43 | 63 | 362 | 400k+ | Non-prefixed hook name | ||
| #3315 | Animation Builder – An interface for adding scroll-triggered animations | 43 | 7 | 67 | 900 | Missing Version | ||
| #3316 | BMI Adult & Kid Calculator | 43 | 33 | 138 | 700 | Request data is not unslashed | ||
| #3317 | Customize Snapshots | 43 | 9 | 42 | 500 | Nonce verification recommended | ||
| #3318 | Good Old Twitter Feed Widget | 43 | 110 | 10 | 400 | Text Domain Mismatch | ||
| #3319 | Hash Form – Drag & Drop Form Builder | 43 | 9 | 273 | 4k+ | Non-prefixed global variable | ||
| #3320 | Lightbox | 43 | 29 | 10 | 700 | Unsafe printing function | ||
| #3321 | Opal Woo Custom Product Variation | 43 | 1 | 116 | 400 | Non-prefixed global variable | ||
| #3322 | Pods Gravity Forms Add-On | 43 | 79 | 1k+ | Missing nonce verification | |||
| #3323 | Qodax Checkout Manager – Checkout Field Editor for WooCommerce | 43 | 17 | 27 | 400 | Interpolated SQL is not prepared | ||
| #3324 | Reoon Email Verifier | 43 | 22 | 38 | 600 | Missing nonce verification | ||
| #3325 | Simple Revisions Delete | 43 | 16 | 26 | 10k+ | Output is not escaped | ||
| #3326 | Sinbyte Indexer | 43 | 61 | 19 | 2k+ | Text Domain Mismatch | ||
| #3327 | SQL Chart Builder | 43 | 12 | 39 | 600 | Non-prefixed global variable | ||
| #3328 | Team Builder Member Showcase | 43 | 14 | 127 | 1k+ | Non-prefixed global variable | ||
| #3329 | Terms Order WP – Categories And Taxonomies Order Plugin | 43 | 12 | 47 | 900 | Non-prefixed global variable | ||
| #3330 | Theme Test Drive | 43 | 39 | 16 | 7k+ | Output is not escaped | ||
| #3331 | Uber reCaptcha | 43 | 129 | 45 | 1k+ | Text Domain Mismatch | ||
| #3332 | Ultimate Member Widgets for Elementor – Login Form, Register Form & User Directory | 43 | 15 | 102 | 400 | Non-prefixed namespace | ||
| #3333 | utm.codes | 43 | 34 | 33 | 400 | Missing nonce verification | ||
| #3334 | WIP Custom Login | 43 | 21 | 37 | 700 | Nonce verification recommended | ||
| #3335 | Checkout Field Manager (Checkout Manager) for WooCommerce | 43 | 161 | 154 | 90k+ | Non-prefixed global variable | ||
| #3336 | WP Hotel Booking Stripe Payment | 43 | 34 | 29 | 400 | Text Domain Mismatch | ||
| #3337 | Advanced Dynamic Pricing and Discount Rules for WooCommerce | 44 | 2 | 813 | 20k+ | Non-prefixed namespace | ||
| #3338 | Buttonizer – Live Chat, AI Chatbot, Call, Chat, Contact Button | 44 | 24 | 71 | 50k+ | Non-prefixed constant | ||
| #3339 | Checkout Upsell Funnel for WooCommerce | 44 | 6 | 244 | 600 | Non-prefixed global variable | ||
| #3340 | Coming soon and Maintenance mode | 44 | 14 | 43 | 9k+ | Request data is not unslashed | ||
| #3341 | Comment Image | 44 | 19 | 23 | 1k+ | Output is not escaped | ||
| #3342 | Cookie Bar | 44 | 29 | 3 | 10k+ | Unsafe printing function | ||
| #3343 | Creative Addons for Elementor | 44 | 63 | 100 | 800 | Missing Arg Domain | ||
| #3344 | ELEX WooCommerce Role Based Pricing | 44 | 213 | 196 | 2k+ | Non-prefixed global variable | ||
| #3345 | Github Embed | 44 | 18 | 35 | 1k+ | Non-prefixed global variable | ||
| #3346 | I Order Terms | 44 | 40 | 24 | 1k+ | Output is not escaped | ||
| #3347 | LearnPress – BuddyPress Integration | 44 | 27 | 25 | 1k+ | Output is not escaped | ||
| #3348 | Narrative Publisher | 44 | 28 | 37 | 1k+ | Text Domain Mismatch | ||
| #3349 | Notix – Web Push Notifications | 44 | 22 | 41 | 600 | Non-prefixed global variable | ||
| #3350 | Ocean Modal Window | 44 | 26 | 44 | 10k+ | Output is not escaped |