WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound
Non-prefixed function
The plugin defines a function 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 function 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 |
|---|---|---|---|---|---|---|---|---|
| #3201 | TP Product Image Flipper for WooCommerce | 70 | 17 | 15 | 9k+ | Non-prefixed function | ||
| #3202 | Upsell Funnel Builder for WooCommerce – Create Upsells, Cross-Sells, Order Bumps, Frequently Bought, and Popups. | 70 | 3 | 1,446 | 3k+ | Non-prefixed global variable | ||
| #3203 | Related Products for WooCommerce | 70 | 12 | 12 | 3k+ | Setting is missing a sanitization callback | ||
| #3204 | WP Calorie Calculator | 70 | 22 | 55 | 1k+ | Non-prefixed global variable | ||
| #3205 | WP Image Borders | 70 | 47 | 6 | 2k+ | Text Domain Mismatch | ||
| #3206 | Download Manager Addons for Elementor | 70 | 272 | 13 | 6k+ | Non Singular String Literal Domain | ||
| #3207 | Change Administrator Email Address | 71 | 12 | 9 | 700 | Output is not escaped | ||
| #3208 | Anant Addons for Elementor – Widgets, Templates & WooCommerce Builder | 71 | 21 | 207 | 700 | Non-prefixed global variable | ||
| #3209 | Comfortable Reading | 71 | 16 | 8 | 1k+ | Output is not escaped | ||
| #3210 | Contact Form 7 Confirm Email Field | 71 | 35 | 11 | 2k+ | Text Domain Mismatch | ||
| #3211 | Cresta Social Messenger | 71 | 9 | 10 | 1k+ | Non-prefixed function | ||
| #3212 | Easy Sticky Buttons | 71 | 21 | 16 | 600 | Short PHP open tag found | ||
| #3213 | Event SEO: Event Schema / Structured Data: Google Rich Snippet Schema for Event | 71 | 24 | 49 | 700 | Non-prefixed global variable | ||
| #3214 | GPX Viewer | 71 | 10 | 26 | 900 | Missing Version | ||
| #3215 | Link Checker Pro | 71 | 6 | 25 | 4k+ | Non-prefixed function | ||
| #3216 | Nginx Helper | 71 | 47 | 60 | 200k+ | Non-prefixed global variable | ||
| #3217 | Print Bangla News | 71 | 29 | 17 | 2k+ | Output is not escaped | ||
| #3218 | Privyr CRM – Instant Lead Alerts for Contact Forms | 71 | 2 | 25 | 4k+ | Non-prefixed function | ||
| #3219 | Quick and Easy FAQs | 71 | 92 | 9 | 10k+ | Non Singular String Literal Domain | ||
| #3220 | Really Simple Click To Call Bar | 71 | 23 | 3 | 8k+ | Output is not escaped | ||
| #3221 | Discount Rules for WooCommerce | 71 | 10 | 454 | 100k+ | Non-prefixed global variable | ||
| #3222 | Multi-Step Checkout for WooCommerce | 71 | 38 | 104 | 8k+ | Non-prefixed global variable | ||
| #3223 | Amazing Affiliates – Toolkit for Amazon Associates with Amazon Product Blocks and Amazon PAAPI5 / Creators API integration | 72 | 3 | 650 | 600 | Non-prefixed global variable | ||
| #3224 | Archiiv | 72 | 6 | 30 | 400 | Non-prefixed global variable | ||
| #3225 | Auto Featured Image from Title | 72 | 24 | 4 | 1k+ | Setting is missing a sanitization callback | ||
| #3226 | Click to top | 72 | 22 | 8 | 2k+ | Output is not escaped | ||
| #3227 | Dashboard Wordcount | 72 | 30 | 7 | 500 | Output is not escaped | ||
| #3228 | Discontinued Product Stock Status for WooCommerce | 72 | 1 | 51 | 500 | Missing nonce verification | ||
| #3229 | EU Order Withdrawal Button for WooCommerce | 72 | 52 | 406 | 4k+ | Non-prefixed hook name | ||
| #3230 | Gift Wrapping for WooCommerce | 72 | 2 | 16 | 1k+ | Missing nonce verification | ||
| #3231 | jQuery Masonry Image Gallery | 72 | 17 | 6 | 1k+ | Unsafe printing function | ||
| #3232 | Calendar.online / Kalender.digital – Plugin | 72 | 33 | 7 | 2k+ | Output is not escaped | ||
| #3233 | MemcacheD Is Your Friend | 72 | 23 | 33 | 1k+ | Non-prefixed function | ||
| #3234 | Minimal Maintenance Mode | 72 | 1 | 20 | 600 | Missing nonce verification | ||
| #3235 | Non-Purchasable WooCommerce Products | 72 | 14 | 13 | 1k+ | Input is not validated | ||
| #3236 | Property Hive Stamp Duty Calculator | 72 | 39 | 2 | 800 | Text Domain Mismatch | ||
| #3237 | Responsive Blocks – Page Builder for Blocks & Patterns | 72 | 47 | 43 | 3k+ | badly named files | ||
| #3238 | Responsive Owl Carousel for Elementor | 72 | 40 | 89 | 7k+ | Non-prefixed global variable | ||
| #3239 | RiskPay Gateway: USDC Payouts for WooCommerce | 72 | 20 | 2 | 700 | Output is not escaped | ||
| #3240 | Simple Local Avatars | 72 | 14 | 16 | 100k+ | Non-prefixed constant | ||
| #3241 | Ultimate Member Custom Tab Builder Lite | 72 | 12 | 15 | 500 | Output is not escaped | ||
| #3242 | Product Subtitle For WooCommerce | 72 | 6 | 36 | 3k+ | Non-prefixed namespace | ||
| #3243 | AffiliateWP – Allowed Products | 73 | 47 | 19 | 1k+ | Text Domain Mismatch | ||
| #3244 | AADMY – Add Auto Date Month Year Into Posts | 73 | 30 | 32 | 400 | Non-prefixed function | ||
| #3245 | OpenID Connect Generic Client | 73 | 9 | 59 | 10k+ | Non-prefixed hook name | ||
| #3246 | Emergency password reset | 73 | 56 | 14 | 800 | wp function not compatible with requires wp | ||
| #3247 | Export Plugin Details | 73 | 13 | 6 | 2k+ | Output is not escaped | ||
| #3248 | Freetobook Responsive Widget | 73 | 5 | 14 | 500 | Input is not sanitized | ||
| #3249 | Hide WP Toolbar | 73 | 4 | 13 | 1k+ | trademarked term | ||
| #3250 | jQuery Lightbox For Native Galleries | 73 | 26 | 7 | 4k+ | Text Domain Mismatch |