WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedConstantFound
Non-prefixed constant
The plugin defines a constant 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 constant 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 |
|---|---|---|---|---|---|---|---|---|
| #1401 | GDPR Cookie Consent Notice Box | 35 | 46 | 17 | 1k+ | Output is not escaped | ||
| #1402 | Coupon X – Discount Popups, Promo Codes Pop Ups for WooCommerce & Announcement Popups | 35 | 30 | 168 | 1k+ | Non-prefixed global variable | ||
| #1403 | CrowdSec | 35 | 130 | 119 | 2k+ | Output is not escaped | ||
| #1404 | Cue by AudioTheme.com | 35 | 28 | 150 | 6k+ | Non-prefixed hook name | ||
| #1405 | Currency per Product for WooCommerce | 35 | 46 | 24 | 2k+ | Text Domain Mismatch | ||
| #1406 | Wbcom Designs – Custom Font Uploader | 35 | 340 | 123 | 3k+ | Text Domain Mismatch | ||
| #1407 | Custom Order Numbers for WooCommerce | 35 | 6 | 32 | 20k+ | Non-prefixed hook name | ||
| #1408 | Custom Order Status for WooCommerce | 35 | 41 | 55 | 10k+ | Non-prefixed hook name | ||
| #1409 | Nexi Checkout | 35 | 45 | 308 | 3k+ | Dynamic hook name | ||
| #1410 | PiWeb Disable payment method / Partial payment for WooCommerce | 35 | 55 | 221 | 4k+ | Non-prefixed class | ||
| #1411 | Disable XML-RPC-API | 35 | 444 | 52 | 100k+ | Text Domain Mismatch | ||
| #1412 | Easy Watermark | 35 | 82 | 53 | 30k+ | Non-prefixed global variable | ||
| #1413 | Gutenberg Blocks Library & Toolkit – Editor Plus | 35 | 27 | 11 | 6k+ | Text Domain Mismatch | ||
| #1414 | Elementor Website Builder – more than just a page builder | 35 | 46 | 428 | 10m+ | Non-prefixed global variable | ||
| #1415 | Embed Privacy | 35 | 10 | 41 | 10k+ | slow db query meta key | ||
| #1416 | EWWW Image Optimizer | 35 | 225 | 729 | 1m+ | Direct Query | ||
| #1417 | AI Popup Builder & Popup Maker by OptiMonk | 35 | 81 | 65 | 4k+ | Text Domain Mismatch | ||
| #1418 | Export Featured Images | 35 | 176 | 67 | 1k+ | Output is not escaped | ||
| #1419 | Reviews Widgets for Google, TripAdvisor, Yelp & Recommendations | 35 | 255 | 225 | 10k+ | Output is not escaped | ||
| #1420 | Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager | 35 | 64 | 64 | 80k+ | Non-prefixed global variable | ||
| #1421 | Events Calendar by FooEvents | 35 | 56 | 59 | 4k+ | Non-prefixed global variable | ||
| #1422 | FooGallery Migrate | 35 | 41 | 232 | 1k+ | Non-prefixed global variable | ||
| #1423 | Friendly Captcha for WordPress | 35 | 192 | 62 | 9k+ | Output is not escaped | ||
| #1424 | Frontend Reset Password | 35 | 83 | 128 | 10k+ | Text Domain Mismatch | ||
| #1425 | g-FFL Cockpit | 35 | 18 | 224 | 500 | Direct Query | ||
| #1426 | GDPR Compliance & Cookie Consent | 35 | 251 | 61 | 4k+ | Output is not escaped | ||
| #1427 | Genesis Simple Sidebars | 35 | 9 | 51 | 10k+ | Nonce verification recommended | ||
| #1428 | Get a Newsletter | 35 | 138 | 144 | 400 | Output is not escaped | ||
| #1429 | Glossary | 35 | 169 | 93 | 2k+ | Non Singular String Literal Domain | ||
| #1430 | Gum Addon for Elementor | 35 | 660 | 72 | 50k+ | Text Domain Mismatch | ||
| #1431 | Heartbeat Control | 35 | 27 | 18 | 80k+ | Missing Arg Domain | ||
| #1432 | HivePress – Business Directory, Listings & Classified Ads Plugin | 35 | 38 | 180 | 10k+ | Direct Query | ||
| #1433 | HookMeUp for WooCommerce | 35 | 59 | 29 | 10k+ | Output is not escaped | ||
| #1434 | Image Slider | 35 | 192 | 95 | 4k+ | Output is not escaped | ||
| #1435 | IndieWeb | 35 | 5 | 9 | 600 | Non-prefixed hook name | ||
| #1436 | Woody Code Snippets – Insert PHP, CSS, JS, and Header/Footer Scripts | 35 | 64 | 91 | 60k+ | Output is not escaped | ||
| #1437 | IP Based Login | 35 | 179 | 146 | 600 | Output is not escaped | ||
| #1438 | Jetpack VideoPress | 35 | 710 | 241 | 7k+ | Text Domain Mismatch | ||
| #1439 | JS Categories List Widget | 35 | 37 | 18 | 1k+ | Non Singular String Literal Domain | ||
| #1440 | Kadence for WooCommerce and Elementor | 35 | 39 | 21 | 3k+ | Output is not escaped | ||
| #1441 | Kustom Checkout for WooCommerce | 35 | 101 | 505 | 10k+ | Dynamic hook name | ||
| #1442 | Web3Press – Migrating to 3ook.com Decentralized Bookstore | 35 | 7 | 49 | 400 | Non-prefixed constant | ||
| #1443 | LiteSpeed Cache | 35 | 286 | 893 | 7m+ | Non-prefixed global variable | ||
| #1444 | LottieFiles | 35 | 8 | 1 | 7k+ | Hidden files included | ||
| #1445 | Maintenance Switch | 35 | 12 | 59 | 600 | Non-prefixed function | ||
| #1446 | MainWP Child Reports | 35 | 49 | 116 | 100k+ | Non-prefixed hook name | ||
| #1447 | MapSVG – Vector maps, Image maps, Google Maps | 35 | 74 | 47 | 1k+ | Missing direct file access protection | ||
| #1448 | Mark Posts | 35 | 30 | 34 | 1k+ | Output is not escaped | ||
| #1449 | Marquee image crawler | 35 | 168 | 136 | 700 | Non-prefixed global variable | ||
| #1450 | Mechanic Visitor Counter | 35 | 240 | 66 | 7k+ | Output is not escaped |