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 | Updated | Top Issue |
|---|---|---|---|---|---|---|---|
| #1051 | Ad Widget for WordPress | 35 | 68 | 14 | 2k+ | Output is not escaped | |
| #1052 | AnsPress – Question and answer | 35 | 22 | 778 | 3k+ | Non-prefixed function | |
| #1053 | Aquila Admin Theme | 35 | 151 | 329 | 3k+ | Non-prefixed global variable | |
| #1054 | Auto Login for Sakura Rental Server | 35 | 3 | 3 | 10k+ | Hidden files included | |
| #1055 | Basic Google Maps Placemarks | 35 | 189 | 80 | 3k+ | Output is not escaped | |
| #1056 | Before After Image Comparison – Visual Comparison for Two Images | 35 | 19 | 16 | 3k+ | Text Domain Mismatch | |
| #1057 | Better Plugin Compatibility Control | 35 | 7 | 4 | 4k+ | trademarked term | |
| #1058 | Block Manager | 35 | 33 | 26 | 4k+ | Text Domain Mismatch | |
| #1059 | Gutenberg Block Editor Toolkit – EditorsKit | 35 | 61 | 25 | 30k+ | Text Domain Mismatch | |
| #1060 | Registration Options for BuddyPress | 35 | 47 | 132 | 1k+ | Non-prefixed function | |
| #1061 | Brozzme DB Prefix & Tools Addons | 35 | 24 | 42 | 9k+ | Request data is not unslashed | |
| #1062 | UseStrict's Calendly Embedder | 35 | 4 | 1 | 2k+ | Hidden files included | |
| #1063 | Change Quantity on Checkout for WooCommerce | 35 | 270 | 32 | 4k+ | wp function not compatible with requires wp | |
| #1064 | Payment Gateway Based Fees and Discounts for WooCommerce | 35 | 259 | 111 | 30k+ | Text Domain Mismatch | |
| #1065 | CiviCRM Admin Utilities | 35 | 19 | 87 | 1k+ | Non-prefixed hook name | |
| #1066 | Code Block Pro – Beautiful Syntax Highlighting | 35 | 7 | 4 | 10k+ | badly named files | |
| #1067 | Kit (formerly ConvertKit) for WooCommerce | 35 | 213 | 18 | 4k+ | Text Domain Mismatch | |
| #1068 | Cookie-Script.com | 35 | 6 | 7 | 10k+ | Non-prefixed class | |
| #1069 | Core Framework | 35 | 70 | 62 | 10k+ | Text Domain Mismatch | |
| #1070 | Coupon X – Discount Popups, Promo Codes Pop Ups for WooCommerce & Announcement Popups | 35 | 30 | 168 | 1k+ | Non-prefixed global variable | |
| #1071 | CubeWP Framework | 35 | 114 | 71 | 4k+ | wp function not compatible with requires wp | |
| #1072 | Cue by AudioTheme.com | 35 | 28 | 150 | 6k+ | Non-prefixed hook name | |
| #1073 | Currency per Product for WooCommerce | 35 | 15 | 16 | 2k+ | Non-prefixed global variable | |
| #1074 | Custom CSS and JavaScript | 35 | 38 | 91 | 10k+ | Input is not sanitized | |
| #1075 | Wbcom Designs – Custom Font Uploader | 35 | 340 | 123 | 3k+ | Text Domain Mismatch | |
| #1076 | Custom Order Numbers for WooCommerce | 35 | 5 | 54 | 20k+ | Non-prefixed hook name | |
| #1077 | Custom Order Status for WooCommerce | 35 | 20 | 60 | 10k+ | Non-prefixed hook name | |
| #1078 | Deposits & Partial Payments for WooCommerce | 35 | 172 | 144 | 5k+ | Text Domain Mismatch | |
| #1079 | Nexi Checkout | 35 | 45 | 308 | 3k+ | Dynamic hook name | |
| #1080 | PiWeb Disable payment method / Partial payment for WooCommerce | 35 | 55 | 221 | 4k+ | Non-prefixed class | |
| #1081 | Disable XML-RPC-API | 35 | 444 | 52 | 100k+ | Text Domain Mismatch | |
| #1082 | DOOFINDER Search and Discovery for WP & WooCommerce | 35 | 151 | 120 | 2k+ | Text Domain Mismatch | |
| #1083 | Elementor Website Builder – more than just a page builder | 35 | 46 | 428 | 10m+ | Non-prefixed global variable | |
| #1084 | Elements Hive for Breakdance | 35 | 76 | 25 | 1k+ | Output is not escaped | |
| #1085 | Email Subscription Popup — Newsletter & GDPR Consent | 35 | 683 | 193 | 1k+ | Output is not escaped | |
| #1086 | Connect WooCommerce to ActiveCampaign by EqualServing | 35 | 135 | 89 | 1k+ | Text Domain Mismatch | |
| #1087 | AI Popup Builder & Popup Maker by OptiMonk | 35 | 81 | 65 | 4k+ | Text Domain Mismatch | |
| #1088 | Export Featured Images | 35 | 176 | 67 | 1k+ | Output is not escaped | |
| #1089 | Flexible PDF Invoices for WooCommerce & WordPress | 35 | 15 | 55 | 6k+ | Non-prefixed global variable | |
| #1090 | Events Calendar by FooEvents | 35 | 56 | 59 | 4k+ | Non-prefixed global variable | |
| #1091 | Force Regenerate Thumbnails | 35 | 12 | 17 | 200k+ | unlink unlink | |
| #1092 | Form Input Masks For Elementor Forms | 35 | 3 | 2 | 10k+ | Hidden files included | |
| #1093 | Friendly Captcha for WordPress | 35 | 192 | 62 | 9k+ | Output is not escaped | |
| #1094 | Frontend Reset Password | 35 | 83 | 128 | 10k+ | Text Domain Mismatch | |
| #1095 | GDPR Compliance & Cookie Consent | 35 | 251 | 61 | 5k+ | Output is not escaped | |
| #1096 | Gum Addon for Elementor | 35 | 660 | 72 | 50k+ | Text Domain Mismatch | |
| #1097 | Ultimate Addons for Elementor | 35 | 70 | 226 | 2m+ | Non-prefixed hook name | |
| #1098 | Health Check & Troubleshooting | 35 | 264 | 238 | 300k+ | Missing Arg Domain | |
| #1099 | HookMeUp for WooCommerce | 35 | 59 | 29 | 10k+ | Output is not escaped | |
| #1100 | Image Widget | 35 | 165 | 31 | 100k+ | Output is not escaped |