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 |
|---|---|---|---|---|---|---|---|---|
| #2351 | Wired Impact Volunteer Management | 35 | 253 | 175 | 1k+ | Output is not escaped | ||
| #2352 | ALD – Dropshipping and Fulfillment for AliExpress and WooCommerce | 35 | 51 | 344 | 10k+ | Request data is not unslashed | ||
| #2353 | Asaas Gateway for WooCommerce | 35 | 12 | 109 | 8k+ | Non-prefixed global variable | ||
| #2354 | Custom Payment Gateways for WooCommerce | 35 | 202 | 31 | 3k+ | Non Singular String Literal Domain | ||
| #2355 | Backend Payments for WooCommerce | 35 | 63 | 42 | 900 | Exception output is not escaped | ||
| #2356 | Save and Share Cart for WooCommerce | 35 | 125 | 51 | 600 | Text Domain Mismatch | ||
| #2357 | Title Limit for WooCommerce | 35 | 41 | 12 | 4k+ | Output is not escaped | ||
| #2358 | Abandoned Cart Lite for WooCommerce | 35 | 84 | 161 | 20k+ | Non-prefixed global variable | ||
| #2359 | Call for Price for WooCommerce | 35 | 3 | 31 | 8k+ | Non-prefixed hook name | ||
| #2360 | Checkout Terms Conditions Popup for WooCommerce | 35 | 76 | 30 | 1k+ | Output is not escaped | ||
| #2361 | Conversion Tracking for WooCommerce | 35 | 74 | 61 | 20k+ | Output is not escaped | ||
| #2362 | Japanized for WooCommerce | 35 | 6 | 68 | 10k+ | Non-prefixed class | ||
| #2363 | Pixel Manager for WooCommerce – Conversion Tracking, Google Ads, GA4, TikTok, Dynamic Remarketing | 35 | 50 | 236 | 50k+ | Non-prefixed hook name | ||
| #2364 | Payment Gateway for PayPal Pro & PayPal Checkout for WooCommerce | 35 | 67 | 147 | 1k+ | Request data is not unslashed | ||
| #2365 | Invoices for WooCommerce | 35 | 55 | 168 | 10k+ | Non-prefixed global variable | ||
| #2366 | PDF Invoices & Packing Slips for WooCommerce | 35 | 35 | 966 | 300k+ | Non-prefixed hook name | ||
| #2367 | Product Tabs for WooCommerce | 35 | 196 | 100 | 10k+ | Text Domain Mismatch | ||
| #2368 | Stock Manager for WooCommerce | 35 | 5 | 45 | 20k+ | Non-prefixed global variable | ||
| #2369 | Kybernaut IČO DIČ | 35 | 79 | 68 | 2k+ | Missing nonce verification | ||
| #2370 | WP Associate Post R2 | 35 | 259 | 86 | 3k+ | Output is not escaped | ||
| #2371 | Bitly's WordPress Plugin | 35 | 6 | 23 | 2k+ | Non-prefixed function | ||
| #2372 | WP Compiler | 35 | 33 | 20 | 1k+ | Output is not escaped | ||
| #2373 | WP Content Copy Protection | 35 | 76 | 11 | 10k+ | Text Domain Mismatch | ||
| #2374 | WP-Cron Status Checker | 35 | 240 | 111 | 5k+ | Text Domain Mismatch | ||
| #2375 | Custom Body Class | 35 | 39 | 101 | 10k+ | Non-prefixed global variable | ||
| #2376 | WP Dark Mode – Improve Accessibility with AI Powered Dark Theme | 35 | 20 | 160 | 20k+ | Non-prefixed global variable | ||
| #2377 | WP Datepicker | 35 | 225 | 181 | 7k+ | Output is not escaped | ||
| #2378 | WP Duplicate Page | 35 | 44 | 50 | 60k+ | Text Domain Mismatch | ||
| #2379 | WP Geo | 35 | 180 | 84 | 900 | Output is not escaped | ||
| #2380 | WP GPX Maps | 35 | 27 | 100 | 4k+ | Non-prefixed global variable | ||
| #2381 | WPGraphQL | 35 | 10 | 86 | 30k+ | Non-prefixed hook name | ||
| #2382 | WP Hydra | 35 | 10 | 18 | 1k+ | Input is not sanitized | ||
| #2383 | Mail logging – WP Mail Catcher | 35 | 232 | 157 | 20k+ | Text Domain Mismatch | ||
| #2384 | WP Mailto Links – Protect Email Addresses | 35 | 95 | 69 | 8k+ | Output is not escaped | ||
| #2385 | WP-Markdown | 35 | 31 | 39 | 400 | Output is not escaped | ||
| #2386 | WP Menu Custom Fields | 35 | 11 | 6 | 600 | Hidden files included | ||
| #2387 | WP-PageNavi | 35 | 84 | 95 | 500k+ | Non Singular String Literal Domain | ||
| #2388 | Parse.ly | 35 | 15 | 44 | 1k+ | Non-prefixed hook name | ||
| #2389 | WP Post Nav | 35 | 73 | 242 | 400 | Non-prefixed global variable | ||
| #2390 | WP Post Series | 35 | 10 | 9 | 600 | Non-prefixed global variable | ||
| #2391 | WP-PostViews | 35 | 132 | 64 | 100k+ | Unsafe printing function | ||
| #2392 | WP-Print | 35 | 110 | 52 | 8k+ | Unsafe printing function | ||
| #2393 | WP Site Verification tool | 35 | 34 | 37 | 1k+ | Non-prefixed global variable | ||
| #2394 | Subresource Integrity (SRI) Manager | 35 | 26 | 94 | 900 | Request data is not unslashed | ||
| #2395 | WP Store Locator | 35 | 26 | 14 | 50k+ | wp function not compatible with requires wp | ||
| #2396 | WP To Top | 35 | 30 | 29 | 1k+ | Non-prefixed global variable | ||
| #2397 | WP-ViperGB | 35 | 127 | 68 | 400 | Output is not escaped | ||
| #2398 | WP-Yomigana | 35 | 17 | 15 | 2k+ | Output is not escaped | ||
| #2399 | WPC Badge Management for WooCommerce | 35 | 13 | 81 | 2k+ | Missing nonce verification | ||
| #2400 | WPCore Plugin Manager | 35 | 118 | 38 | 9k+ | Text Domain Mismatch |