WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound
Non-prefixed class
The plugin defines a class 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 class 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 |
|---|---|---|---|---|---|---|---|---|
| #2001 | 404 Notifier | 40 | 39 | 41 | 700 | Output is not escaped | ||
| #2002 | Address Autocomplete Anything | 40 | 94 | 32 | 900 | Unsafe printing function | ||
| #2003 | Advanced Custom Fields: Font Awesome Field | 40 | 332 | 70 | 90k+ | Text Domain Mismatch | ||
| #2004 | AgreeMe Checkboxes For WooCommerce | 40 | 88 | 44 | 600 | Text Domain Mismatch | ||
| #2005 | AJAX Thumbnail Rebuild | 40 | 38 | 14 | 30k+ | Unsafe printing function | ||
| #2006 | Autocomplete LearnDash Lessons and Topics | 40 | 46 | 16 | 1k+ | Missing Arg Domain | ||
| #2007 | Mastodon Autopost | 40 | 41 | 50 | 800 | Output is not escaped | ||
| #2008 | AxiaChat AI – Free AI Chatbot (Answers Customers Automatically) | 40 | 2 | 135 | 2k+ | Interpolated SQL is not prepared | ||
| #2009 | Bangladeshi Payment Gateways – Make Payment Using QR Code | 40 | 40 | 36 | 5k+ | Output is not escaped | ||
| #2010 | Black Studio TinyMCE Widget | 40 | 39 | 28 | 200k+ | Output is not escaped | ||
| #2011 | Bubble Menu – Floating Button Menu with Sticky Navigation | 40 | 2 | 216 | 1k+ | Nonce verification recommended | ||
| #2012 | BuddyPress Profile Completion | 40 | 28 | 30 | 500 | Output is not escaped | ||
| #2013 | Bulk Featured Image | 40 | 69 | 117 | 800 | Output is not escaped | ||
| #2014 | Categories Metabox Enhanced | 40 | 77 | 36 | 1k+ | Output is not escaped | ||
| #2015 | Category Featured Images Extended | 40 | 177 | 40 | 400 | Text Domain Mismatch | ||
| #2016 | Charity Addon for Elementor | 40 | 480 | 8 | 1k+ | Text Domain Mismatch | ||
| #2017 | Classified Ads | 40 | 136 | 38 | 1k+ | Text Domain Mismatch | ||
| #2018 | Client Portal – Private user pages and login | 40 | 52 | 29 | 3k+ | Output is not escaped | ||
| #2019 | Cryout Serious Theme Settings | 40 | 332 | 51 | 40k+ | Output is not escaped | ||
| #2020 | Cryptocurrency Widgets Pack | 40 | 222 | 52 | 700 | Unsafe printing function | ||
| #2021 | Dashboard Welcome for Beaver Builder | 40 | 38 | 24 | 2k+ | Output is not escaped | ||
| #2022 | FameTheme Demo Importer | 40 | 8 | 74 | 30k+ | Nonce verification recommended | ||
| #2023 | FAQ Schema – Accordion, Tab, Slider & Gutenberg Block | 40 | 253 | 46 | 1k+ | Output is not escaped | ||
| #2024 | Far Future Expiry Header | 40 | 25 | 36 | 7k+ | Request data is not unslashed | ||
| #2025 | Fast User Switching | 40 | 28 | 28 | 2k+ | Output is not escaped | ||
| #2026 | Flying Scripts: Delay JavaScript to Improve Site Speed & Performance | 40 | 23 | 44 | 30k+ | Missing direct file access protection | ||
| #2027 | GetPaid > Item Inventory | 40 | 112 | 52 | 400 | Text Domain Mismatch | ||
| #2028 | I Agree! Popups | 40 | 54 | 46 | 600 | Output is not escaped | ||
| #2029 | iCalendrier | 40 | 65 | 7 | 700 | Output is not escaped | ||
| #2030 | Invite Anyone | 40 | 32 | 130 | 1k+ | Non-prefixed hook name | ||
| #2031 | JSM Show Order Metadata for WooCommerce HPOS | 40 | 17 | 64 | 700 | Nonce verification recommended | ||
| #2032 | JSM Show Post Metadata | 40 | 15 | 66 | 10k+ | Nonce verification recommended | ||
| #2033 | JSM Show Term Metadata | 40 | 14 | 64 | 900 | Nonce verification recommended | ||
| #2034 | JSM Show User Metadata | 40 | 14 | 64 | 3k+ | Nonce verification recommended | ||
| #2035 | WP All Import – Listings Import for Listify | 40 | 34 | 27 | 400 | Output is not escaped | ||
| #2036 | Modal Window – create popup modal window | 40 | 4 | 170 | 10k+ | Non-prefixed global variable | ||
| #2037 | 코드엠샵 소셜톡 | 40 | 47 | 36 | 400 | Output is not escaped | ||
| #2038 | Multiple Featured Images | 40 | 50 | 22 | 5k+ | Output is not escaped | ||
| #2039 | My Social Feeds – Social Feeds Embedder Plugin for WP | 40 | 8 | 77 | 400 | Request data is not unslashed | ||
| #2040 | Flying Images: Optimize and Lazy Load Images for Faster Page Speed | 40 | 32 | 58 | 3k+ | Missing direct file access protection | ||
| #2041 | Page As Subdomain Lite | 40 | 61 | 25 | 500 | Output is not escaped | ||
| #2042 | Paystack MemberPress | 40 | 71 | 76 | 400 | Output is not escaped | ||
| #2043 | Pixel Tag Manager for WooCommerce – Google Analytics 4, Google Ads, and More Pixels | 40 | 68 | 249 | 3k+ | Missing nonce verification | ||
| #2044 | Privilege Widget | 40 | 139 | 52 | 600 | Text Domain Mismatch | ||
| #2045 | Product Video Gallery for Woocommerce | 40 | 61 | 36 | 10k+ | Setting is missing a sanitization callback | ||
| #2046 | Manual Related Posts | 40 | 51 | 32 | 1k+ | Output is not escaped | ||
| #2047 | Responsive Plus – Elementor Templates & Starter Sites | 40 | 46 | 305 | 10k+ | Non-prefixed global variable | ||
| #2048 | Salat Times | 40 | 235 | 20 | 500 | Output is not escaped | ||
| #2049 | Shortcodes Finder | 40 | 22 | 188 | 4k+ | Nonce verification recommended | ||
| #2050 | AdFlow – Easy Google AdSense Integration | 40 | 150 | 9 | 3k+ | Unsafe printing function |