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 |
|---|---|---|---|---|---|---|---|---|
| #4001 | TinyPNG – JPEG, PNG & WebP image compression | 72 | 40 | 73 | 100k+ | Non-prefixed global variable | ||
| #4002 | Video Backgrounds for SiteOrigin Page Builder | 72 | 55 | 5 | 2k+ | Text Domain Mismatch | ||
| #4003 | Place Order Without Payment for WooCommerce | 72 | 244 | 62 | 3k+ | Text Domain Mismatch | ||
| #4004 | Direct Checkout for WooCommerce | 72 | 77 | 35 | 80k+ | Text Domain Mismatch | ||
| #4005 | AffiliateWP – Allowed Products | 73 | 47 | 19 | 1k+ | Text Domain Mismatch | ||
| #4006 | Albacross for WordPress | 73 | 18 | 5 | 1k+ | Text Domain Mismatch | ||
| #4007 | AADMY – Add Auto Date Month Year Into Posts | 73 | 30 | 32 | 400 | Non-prefixed function | ||
| #4008 | Bestfreebie Elementor Icons | 73 | 27 | 13 | 400 | Text Domain Mismatch | ||
| #4009 | EU Withdrawal Button for WooCommerce | 73 | 27 | 400 | Missing nonce verification | |||
| #4010 | EXMAGE – WordPress Image Links | 73 | 14 | 34 | 7k+ | Missing Arg Domain | ||
| #4011 | Freetobook Responsive Widget | 73 | 5 | 14 | 500 | Input is not sanitized | ||
| #4012 | Infinite Notification – Sales Notification Plugin | 73 | 13 | 5 | 500 | Setting is missing a sanitization callback | ||
| #4013 | International Phone Number Format | 73 | 51 | 20 | 400 | Text Domain Mismatch | ||
| #4014 | jQuery Lightbox For Native Galleries | 73 | 26 | 7 | 4k+ | Text Domain Mismatch | ||
| #4015 | Mortgage Calculators WP | 73 | 18 | 123 | 3k+ | Non-prefixed global variable | ||
| #4016 | Plugin Groups | 73 | 16 | 12 | 1k+ | Non Singular String Literal Domain | ||
| #4017 | Remove Taxonomy URL | 73 | 17 | 16 | 1k+ | Output is not escaped | ||
| #4018 | Restaurant Food Menu by WP Darko – Drag & Drop Restaurant Menu Builder for WordPress | 73 | 1 | 68 | 400 | Non-prefixed global variable | ||
| #4019 | Comment Edit Core – Simple Comment Editing | 73 | 27 | 85 | 2k+ | Non-prefixed hook name | ||
| #4020 | Simple Image Popup | 73 | 21 | 5 | 1k+ | Output is not escaped | ||
| #4021 | Theme Inspector | 73 | 23 | 7 | 400 | Output is not escaped | ||
| #4022 | Timeline Express – No Icons Add-On | 73 | 10 | 9 | 700 | Output is not escaped | ||
| #4023 | TOCHAT.BE | 73 | 2 | 71 | 800 | Request data is not unslashed | ||
| #4024 | Admin Columns for ACF Fields | 74 | 7 | 8 | 9k+ | Output is not escaped | ||
| #4025 | AffiliateWP – Sign Up Bonus | 74 | 46 | 13 | 400 | Text Domain Mismatch | ||
| #4026 | Append Link on Copy | 74 | 23 | 5 | 800 | Output is not escaped | ||
| #4027 | Clean WP Admin Menu | 74 | 19 | 13 | 600 | Non Singular String Literal Domain | ||
| #4028 | Custom Icons for Elementor and WPBakery | 74 | 35 | 38 | 10k+ | Non-prefixed global variable | ||
| #4029 | Datareporter Webcare | 74 | 12 | 21 | 700 | Non-prefixed global variable | ||
| #4030 | ELEX WooCommerce USPS Shipping Method | 74 | 139 | 45 | 900 | Text Domain Mismatch | ||
| #4031 | EmailKit – Email Customizer for WooCommerce & WP | 74 | 17 | 82 | 70k+ | slow db query meta query | ||
| #4032 | Free Shipping Label and Progress Bar for WooCommerce | 74 | 60 | 5k+ | Non-prefixed hook name | |||
| #4033 | Gravity Forms Multi Currency | 74 | 6 | 12 | 400 | Output is not escaped | ||
| #4034 | Highlight and Share – Unobtrusive and Lightweight Content Sharing | 74 | 12 | 115 | 800 | Non-prefixed hook name | ||
| #4035 | RD Station | 74 | 65 | 20k+ | Non-prefixed global variable | |||
| #4036 | Keon Toolset | 74 | 4 | 28 | 30k+ | Non-prefixed function | ||
| #4037 | Markup Markdown | 74 | 18 | 128 | 2k+ | Non-prefixed global variable | ||
| #4038 | Multiple Roles | 74 | 8 | 18 | 5k+ | Non-prefixed global variable | ||
| #4039 | Elements For Elementor | 74 | 39 | 37 | 10k+ | Non-prefixed global variable | ||
| #4040 | Plugin Notes Plus | 74 | 2 | 42 | 9k+ | Non-prefixed hook name | ||
| #4041 | Post My CF7 Form | 74 | 21 | 168 | 2k+ | Non-prefixed global variable | ||
| #4042 | Product Layouts for WooCommerce | 74 | 5 | 75 | 1k+ | Direct Query | ||
| #4043 | QODE Optimizer | 74 | 1 | 249 | 30k+ | Non-prefixed global variable | ||
| #4044 | WP All Import – Property Import for RealHomes | 74 | 17 | 12 | 700 | Output is not escaped | ||
| #4045 | Resume Builder | 74 | 20 | 59 | 1k+ | Non-prefixed global variable | ||
| #4046 | Security Headers | 74 | 31 | 11 | 3k+ | Deprecated parameter: unregister_setting parameter 3 | ||
| #4047 | Show Pages IDs | 74 | 8 | 8 | 10k+ | Output is not escaped | ||
| #4048 | Simple Slug Translate | 74 | 32 | 3 | 1k+ | Non Singular String Literal Domain | ||
| #4049 | Simply Excerpts | 74 | 12 | 1 | 500 | Setting is missing a sanitization callback | ||
| #4050 | Image Quality Control | Still BE | 74 | 71 | 28 | 400 | Missing Translators Comment |