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 |
|---|---|---|---|---|---|---|---|---|
| #3001 | EmailKit – Email Customizer for WooCommerce & WP | 73 | 18 | 81 | 70k+ | slow db query meta query | ||
| #3002 | EXMAGE – WordPress Image Links | 73 | 14 | 34 | 7k+ | Missing Arg Domain | ||
| #3003 | jQuery Lightbox For Native Galleries | 73 | 26 | 7 | 5k+ | Text Domain Mismatch | ||
| #3004 | Mortgage Calculators WP | 73 | 18 | 123 | 3k+ | Non-prefixed global variable | ||
| #3005 | Remove Taxonomy URL | 73 | 17 | 16 | 1k+ | Output is not escaped | ||
| #3006 | Comment Edit Core – Simple Comment Editing | 73 | 27 | 85 | 2k+ | Non-prefixed hook name | ||
| #3007 | Simple Image Popup | 73 | 21 | 5 | 1k+ | Output is not escaped | ||
| #3008 | Change Storefront Footer Copyright Text | 73 | 72 | 21 | 4k+ | Text Domain Mismatch | ||
| #3009 | Video Background Block – Use video as background in section. | 73 | 33 | 92 | 2k+ | Non-prefixed global variable | ||
| #3010 | Admin Columns for ACF Fields | 74 | 7 | 8 | 9k+ | Output is not escaped | ||
| #3011 | Custom Icons for Elementor and WPBakery | 74 | 35 | 38 | 10k+ | Non-prefixed global variable | ||
| #3012 | Free Shipping Label and Progress Bar for WooCommerce | 74 | 60 | 5k+ | Non-prefixed hook name | |||
| #3013 | RD Station | 74 | 2 | 67 | 20k+ | Non-prefixed global variable | ||
| #3014 | Keon Toolset | 74 | 4 | 28 | 30k+ | Non-prefixed function | ||
| #3015 | Markup Markdown | 74 | 18 | 128 | 2k+ | Non-prefixed global variable | ||
| #3016 | Elements For Elementor | 74 | 39 | 37 | 10k+ | Non-prefixed global variable | ||
| #3017 | WowOptin: Next-Gen Popup Maker – Create Stunning Popups and Optins for Lead Generation | 74 | 11 | 60 | 1k+ | Database parameter is not escaped | ||
| #3018 | Plugin Notes Plus | 74 | 2 | 42 | 9k+ | Non-prefixed hook name | ||
| #3019 | Post My CF7 Form | 74 | 21 | 168 | 2k+ | Non-prefixed global variable | ||
| #3020 | Product Layouts for WooCommerce | 74 | 5 | 75 | 1k+ | Direct Query | ||
| #3021 | QODE Optimizer | 74 | 1 | 249 | 20k+ | Non-prefixed global variable | ||
| #3022 | Resume Builder | 74 | 20 | 59 | 1k+ | Non-prefixed global variable | ||
| #3023 | Security Headers | 74 | 31 | 11 | 3k+ | Deprecated parameter: unregister_setting parameter 3 | ||
| #3024 | Show Pages IDs | 74 | 8 | 8 | 10k+ | Output is not escaped | ||
| #3025 | Simple Slug Translate | 74 | 32 | 3 | 1k+ | Non Singular String Literal Domain | ||
| #3026 | Widgets in Menu for WordPress | 74 | 16 | 12 | 8k+ | Text Domain Mismatch | ||
| #3027 | WP API SwaggerUI | 74 | 16 | 14 | 2k+ | Missing direct file access protection | ||
| #3028 | WP-Sweep | 74 | 1 | 201 | 100k+ | Direct Query | ||
| #3029 | Acumbamail | 75 | 7 | 36 | 1k+ | Non-prefixed global variable | ||
| #3030 | Admin Locale | 75 | 12 | 10 | 7k+ | Missing Arg Domain | ||
| #3031 | Anchor Episodes Index (Spotify for Podcasters) | 75 | 32 | 3 | 1k+ | Text Domain Mismatch | ||
| #3032 | Custom Adobe Fonts (Typekit) | 75 | 11 | 33 | 60k+ | Non-prefixed global variable | ||
| #3033 | Customize Twenty Seventeen | 75 | 33 | 19 | 2k+ | Text Domain Mismatch | ||
| #3034 | Easy Accordion – AI-Powered FAQ & Accordion Blocks, Product FAQ | 75 | 306 | 80k+ | Non-prefixed global variable | |||
| #3035 | Headers Security Advanced & HSTS WP | 75 | 20 | 10 | 90k+ | Missing Translators Comment | ||
| #3036 | Intuitive Custom Post Order | 75 | 19 | 96 | 400k+ | Direct Query | ||
| #3037 | Invoice Gateway for WooCommerce – Invoice Payment Gateway | 75 | 3 | 30 | 2k+ | Nonce verification recommended | ||
| #3038 | PJ News Ticker | 75 | 13 | 14 | 3k+ | Output is not escaped | ||
| #3039 | Services Section Block – Showcase Service Details in Grid or Columns | 75 | 9 | 19 | 2k+ | Non-prefixed namespace | ||
| #3040 | Matterport Shortcode | 75 | 21 | 30 | 3k+ | Text Domain Mismatch | ||
| #3041 | Styleguide – Custom Fonts and Colors | 75 | 59 | 25 | 2k+ | Missing direct file access protection | ||
| #3042 | Testimonial – Testimonial Slider and Showcase Plugin | 75 | 563 | 231 | 30k+ | Text Domain Mismatch | ||
| #3043 | Brazilian Market on WooCommerce | 75 | 4 | 51 | 70k+ | Missing nonce verification | ||
| #3044 | wp-forecast | 75 | 263 | 117 | 5k+ | Missing Arg Domain | ||
| #3045 | WP Hide Dashboard | 75 | 6 | 10 | 2k+ | trademarked term | ||
| #3046 | WP-HTML-Compression | 75 | 7 | 22 | 1k+ | Input is not sanitized | ||
| #3047 | Addonify – WooCommerce Wishlist | 76 | 30 | 43 | 1k+ | Non-prefixed global variable | ||
| #3048 | Ajax Cart AutoUpdate for WooCommerce | 76 | 15 | 5 | 8k+ | Output is not escaped | ||
| #3049 | Ajax Search Lite – Live Search & Filter | 76 | 126 | 264 | 80k+ | Non-prefixed hook name | ||
| #3050 | Autocomplete WooCommerce Orders | 76 | 70 | 55 | 30k+ | Text Domain Mismatch |