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 |
|---|---|---|---|---|---|---|---|---|
| #3801 | DataFeedWatch Connector for WooCommerce | 64 | 16 | 112 | 600 | Non-prefixed hook name | ||
| #3802 | Disabler | 64 | 212 | 38 | 900 | Text Domain Mismatch | ||
| #3803 | Dotdigital for WordPress | 64 | 41 | 123 | 400 | Dynamic hook name | ||
| #3804 | ELEX WooCommerce Product Price Custom Text (Before & After Text) and Discount | 64 | 444 | 137 | 2k+ | Missing Arg Domain | ||
| #3805 | Inactive Logout | 64 | 30 | 71 | 10k+ | Non-prefixed global variable | ||
| #3806 | Integrate Firebase | 64 | 26 | 7 | 500 | Output is not escaped | ||
| #3807 | Master Post Advert | 64 | 26 | 4 | 1k+ | Unsafe printing function | ||
| #3808 | MultiSafepay plugin for WooCommerce | 64 | 13 | 35 | 2k+ | Missing nonce verification | ||
| #3809 | Pageviews | 64 | 15 | 12 | 1k+ | Missing Translators Comment | ||
| #3810 | Product Import Export for WooCommerce – Import Export Product CSV Suite | 64 | 246 | 766 | 80k+ | Non-prefixed global variable | ||
| #3811 | Stancer for WooCommerce | 64 | 2 | 108 | 400 | Non-prefixed global variable | ||
| #3812 | 64 | 27 | 23 | 9k+ | Missing Translators Comment | |||
| #3813 | WProofreader spell & grammar check plugin for WordPress | 64 | 12 | 43 | 4k+ | Non-prefixed global variable | ||
| #3814 | Werk aan de Muur | 64 | 48 | 20 | 900 | Non Singular String Literal Domain | ||
| #3815 | JTL-Connector for WooCommerce | 64 | 7 | 166 | 1k+ | Direct Query | ||
| #3816 | WP REST Cache | 64 | 11 | 113 | 10k+ | Direct Query | ||
| #3817 | WP Search with Algolia | 64 | 26 | 16 | 7k+ | Exception output is not escaped | ||
| #3818 | WPC Shop as a Customer for WooCommerce | 64 | 5 | 38 | 400 | Request data is not unslashed | ||
| #3819 | YaMaps for WordPress Plugin | 64 | 21 | 30 | 10k+ | Non-prefixed global variable | ||
| #3820 | Creta Testimonial Showcase | 65 | 28 | 41 | 3k+ | Non-prefixed global variable | ||
| #3821 | Custom Global Variables | 65 | 14 | 12 | 5k+ | Output is not escaped | ||
| #3822 | Custom Product Tabs for WooCommerce WP All Import Add-on | 65 | 18 | 18 | 1k+ | Non-prefixed global variable | ||
| #3823 | Custom Share Buttons with Floating Sidebar | 65 | 164 | 20 | 4k+ | Text Domain Mismatch | ||
| #3824 | Dashboard Directory Size | 65 | 32 | 9 | 400 | Missing Arg Domain | ||
| #3825 | Disable REST API | 65 | 12 | 15 | 90k+ | Output is not escaped | ||
| #3826 | QRCode | 65 | 21 | 39 | 400 | Non-prefixed constant | ||
| #3827 | Futy.io Leadbots | 65 | 73 | 9 | 2k+ | wp function not compatible with requires wp | ||
| #3828 | License For Envato | 65 | 9 | 28 | 9k+ | Non-prefixed global variable | ||
| #3829 | Notibar – Notification Bar for WordPress | 65 | 43 | 62 | 8k+ | wp function not compatible with requires wp | ||
| #3830 | T4B News Ticker – Responsive News Scroller, Slider, and Animations | 65 | 20 | 10 | 7k+ | Output is not escaped | ||
| #3831 | WebberZone Top 10 — Popular Posts | 65 | 37 | 176 | 10k+ | Database parameter is not escaped | ||
| #3832 | User Last Login | 65 | 27 | 5 | 600 | Output is not escaped | ||
| #3833 | Web and WooCommerce Addons for WPBakery Builder | 65 | 497 | 123 | 1k+ | Text Domain Mismatch | ||
| #3834 | Vf Expansion | 65 | 58 | 52 | 1k+ | Non-prefixed global variable | ||
| #3835 | Websitescanner Custom Schema | 65 | 28 | 19 | 600 | wp function not compatible with requires wp | ||
| #3836 | Add to Cart Text Changer and Customize Button, Add Custom Icon | 65 | 87 | 18 | 2k+ | Text Domain Mismatch | ||
| #3837 | USPS Simple Shipping for Woocommerce | 65 | 20 | 11 | 8k+ | Exception output is not escaped | ||
| #3838 | Ajaxify Comments – Ajax and Lazy Loading Comments | 65 | 20 | 38 | 3k+ | Non-prefixed hook name | ||
| #3839 | WP Change Default From Email | 65 | 51 | 7 | 10k+ | Non Singular String Literal Domain | ||
| #3840 | WPC Free Gift Coupons for WooCommerce | 65 | 8 | 25 | 400 | Non-prefixed class | ||
| #3841 | AC Advanced Flamingo Settings | 66 | 6 | 32 | 700 | Nonce verification recommended | ||
| #3842 | CP Media Player – Audio Player and Video Player | 66 | 224 | 48 | 3k+ | Text Domain Mismatch | ||
| #3843 | Bopo – WooCommerce Product Bundle Builder | 66 | 137 | 135 | 1k+ | Text Domain Mismatch | ||
| #3844 | Calculated fields for ACF | 66 | 5 | 18 | 1k+ | Non-prefixed global variable | ||
| #3845 | Easy PHP Settings | 66 | 34 | 48 | 1k+ | Missing Translators Comment | ||
| #3846 | FluentBoards – Project Management, Task Management, Goal Tracking, Kanban Board, and, Team Collaboration | 66 | 26 | 30 | 6k+ | Missing direct file access protection | ||
| #3847 | HiFi (Head Injection, Foot Injection) | 66 | 13 | 11 | 2k+ | Output is not escaped | ||
| #3848 | Leadpages | 66 | 6 | 62 | 10k+ | Direct Query | ||
| #3849 | Page Meta | 66 | 26 | 14 | 700 | Missing Arg Domain | ||
| #3850 | Product Code for WooCommerce | 66 | 13 | 54 | 1k+ | Missing direct file access protection |