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 |
|---|---|---|---|---|---|---|---|---|
| #1 | BulletProof Security | 0 | 5,048 | 4,949 | 20k+ | Output is not escaped | ||
| #2 | Intercom | 0 | 60 | 71 | 6k+ | Non-prefixed function | ||
| #3 | Live Shopping & Shoppable Videos For WooCommerce | 0 | 79 | 174 | 400 | Non-prefixed global variable | ||
| #4 | Themify Builder | 9 | 5,334 | 2,171 | 5k+ | Text Domain Mismatch | ||
| #5 | 404 Solution | 15 | 582 | 1,532 | 10k+ | Non-prefixed class | ||
| #6 | Visual Composer Website Builder | 16 | 82 | 320 | 40k+ | Non-prefixed global variable | ||
| #7 | MDTF – Meta Data and Taxonomies Filter | 16 | 1,550 | 1,956 | 1k+ | Non-prefixed global variable | ||
| #8 | AnyComment | 17 | 445 | 449 | 5k+ | Output is not escaped | ||
| #9 | RestroPress – Online Food Ordering System | 17 | 534 | 3,207 | 1k+ | Non-prefixed global variable | ||
| #10 | Efí Bank | 17 | 886 | 553 | 400 | Exception output is not escaped | ||
| #11 | Shopping Cart & eCommerce Store | 17 | 8,038 | 17,464 | 3k+ | Non-prefixed global variable | ||
| #12 | wpForo Forum | 17 | 4,306 | 3,026 | 20k+ | Unsafe printing function | ||
| #13 | WPtouch – Make your WordPress Website Mobile-Friendly | 17 | 1,466 | 325 | 50k+ | Text Domain Mismatch | ||
| #14 | JetFormBuilder — Dynamic Blocks Form Builder | 18 | 2,120 | 1,615 | 80k+ | Text Domain Mismatch | ||
| #15 | Pagopar – WooCommerce Gateway | 18 | 530 | 1,215 | 400 | Non-prefixed global variable | ||
| #16 | Property Hive | 18 | 1,957 | 6,027 | 3k+ | Missing nonce verification | ||
| #17 | Block Slider – Responsive Image Slider, Video Slider & Post Slider | 19 | 555 | 1,291 | 3k+ | Non-prefixed global variable | ||
| #18 | Advanced File Manager – Ultimate File Manager for WordPress And Document Library Solution | 19 | 1,227 | 892 | 100k+ | Exception output is not escaped | ||
| #19 | GiveWP – Donation Plugin and Fundraising Platform | 19 | 3,413 | 3,569 | 100k+ | Output is not escaped | ||
| #20 | Go Fetch Jobs (for WP Job Manager) | 19 | 1,410 | 1,741 | 700 | Non-prefixed global variable | ||
| #21 | Leaflet Maps Marker (Google Maps, OpenStreetMap, Bing Maps) | 19 | 3,275 | 3,228 | 9k+ | Output is not escaped | ||
| #22 | Matomo Analytics – Powerful, Privacy-First Insights for WordPress | 19 | 1,975 | 892 | 100k+ | Exception output is not escaped | ||
| #23 | Netgsm | 19 | 334 | 308 | 1k+ | Setting is missing a sanitization callback | ||
| #24 | Razorpay Payment Button Plugin | 19 | 486 | 98 | 2k+ | Exception output is not escaped | ||
| #25 | Really Simple Security – Simple and Performant Security (formerly Really Simple SSL) | 19 | 531 | 378 | 3m+ | Missing Translators Comment | ||
| #26 | Membership Plugin – Kadence Memberships | 19 | 5,085 | 3,003 | 9k+ | Text Domain Mismatch | ||
| #27 | Scrollsequence – Cinematic Scroll Image Animation Plugin | 19 | 878 | 1,528 | 3k+ | Non-prefixed global variable | ||
| #28 | SendPress Newsletters | 19 | 2,293 | 1,422 | 1k+ | Output is not escaped | ||
| #29 | WP Email Template | 19 | 344 | 345 | 2k+ | Exception output is not escaped | ||
| #30 | WP Import Export Lite | 19 | 737 | 979 | 40k+ | Non-prefixed global variable | ||
| #31 | WP Directory Kit | 19 | 1,502 | 2,641 | 2k+ | Non-prefixed global variable | ||
| #32 | WPOSS阿里云对象存储 | 19 | 269 | 315 | 900 | Non-prefixed namespace | ||
| #33 | Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC) | 20 | 736 | 2,112 | 900 | Non-prefixed global variable | ||
| #34 | Cost Calculator Builder | 20 | 323 | 766 | 20k+ | Non-prefixed global variable | ||
| #35 | Download Monitor | 20 | 423 | 1,367 | 80k+ | Non-prefixed hook name | ||
| #36 | Ebook Store | 20 | 405 | 1,065 | 700 | Non-prefixed global variable | ||
| #37 | Event Espresso – Event Registration & Ticketing Sales | 20 | 12,698 | 2,135 | 600 | Text Domain Mismatch | ||
| #38 | Event Organiser | 20 | 1,104 | 544 | 20k+ | Text Domain Mismatch | ||
| #39 | EventPrime – Events Calendar, Bookings and Tickets | 20 | 846 | 4,211 | 7k+ | Non-prefixed global variable | ||
| #40 | MBE eShip | 20 | 527 | 740 | 1k+ | Non-prefixed global variable | ||
| #41 | Brevo – Email, SMS, Web Push, Chat, and more. | 20 | 460 | 646 | 100k+ | Request data is not unslashed | ||
| #42 | MAS Videos | 20 | 519 | 1,693 | 1k+ | Non-prefixed global variable | ||
| #43 | Nimble Page Builder | 20 | 1,591 | 1,684 | 30k+ | Missing Arg Domain | ||
| #44 | Shipping for Nova Poshta | 20 | 598 | 923 | 400 | Output is not escaped | ||
| #45 | پلاگین پرداخت دلخواه | 20 | 584 | 446 | 900 | Text Domain Mismatch | ||
| #46 | Pronamic Pay | 20 | 266 | 1,078 | 2k+ | Non-prefixed global variable | ||
| #47 | Quill Forms | Conversational Multi Step Forms, Surveys & quizzes | 20 | 400 | 371 | 3k+ | Text Domain Mismatch | ||
| #48 | Razorpay Payment Button Elementor Plugin | 20 | 479 | 62 | 1k+ | Exception output is not escaped | ||
| #49 | Remove Add to Cart WooCommerce | 20 | 616 | 1,378 | 4k+ | Non-prefixed global variable | ||
| #50 | Restrict User Access – Ultimate Membership & Content Protection | 20 | 977 | 1,848 | 10k+ | Non-prefixed global variable |