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 |
|---|---|---|---|---|---|---|---|---|
| #3551 | Astra Widgets | 86 | 10 | 15 | 200k+ | Missing direct file access protection | ||
| #3552 | Catch Breadcrumb | 86 | 1 | 29 | 2k+ | Non-prefixed global variable | ||
| #3553 | CBX User Online & Last Login | 86 | 3 | 87 | 800 | Non-prefixed global variable | ||
| #3554 | Helpful – Article Feedback Plugin | 86 | 8 | 17 | 600 | Database parameter is not escaped | ||
| #3555 | Debug Bar Actions and Filters Addon | 86 | 6 | 4 | 400 | Forbidden PHP function found | ||
| #3556 | Extra Styling for MemberPress | 86 | 64 | 7 | 500 | Text Domain Mismatch | ||
| #3557 | Heroic Glossary – Block for building Glossaries, Dictionaries and more | 86 | 8 | 7 | 3k+ | Text Domain Mismatch | ||
| #3558 | Shoppable Images (Lookbook) for WooCommerce | 86 | 21 | 31 | 6k+ | Missing direct file access protection | ||
| #3559 | Mailchimp List Subscribe Form | 86 | 22 | 156 | 60k+ | Non-prefixed global variable | ||
| #3560 | Modern Cart – WooCommerce Side Cart & Popup Cart | 86 | 8 | 95 | 50k+ | Non-prefixed global variable | ||
| #3561 | Nice page transition | 86 | 4 | 12 | 1k+ | Direct Query | ||
| #3562 | Ocean Product Sharing | 86 | 9 | 18 | 20k+ | Non-prefixed global variable | ||
| #3563 | PageView | 86 | 17 | 2 | 1k+ | wp function not compatible with requires wp | ||
| #3564 | Payment Gateway Icons For WooCommerce | 86 | 2 | 4 | 1k+ | Input is not sanitized | ||
| #3565 | Printus – Automatic Cloud Printing for WooCommerce | 86 | 28 | 20 | 800 | Missing Arg Domain | ||
| #3566 | Product Enquiry for WooCommerce (Now with AI Assistant) | 86 | 6 | 146 | 10k+ | Non-prefixed global variable | ||
| #3567 | Sharespine Woocommerce Connector | 86 | 2 | 16 | 500 | error log error log | ||
| #3568 | Social Sharing Block | 86 | 5 | 11 | 7k+ | Non-prefixed global variable | ||
| #3569 | Subtitles | 86 | 4 | 9 | 3k+ | Non-prefixed hook name | ||
| #3570 | Ticket Tailor — Event Ticketing & Registration | 86 | 3 | 3 | 4k+ | Non Enqueued Script | ||
| #3571 | Ultimate Markdown – Markdown Editor, Importer, & Exporter | 86 | 6 | 15 | 2k+ | Database parameter is not escaped | ||
| #3572 | Unlimited Theme Addon For Elementor | 86 | 74 | 68 | 600 | Missing direct file access protection | ||
| #3573 | WC MyParcel Belgium | 86 | 340 | 79 | 600 | Text Domain Mismatch | ||
| #3574 | Microsoft Azure Storage for WordPress | 86 | 25 | 26 | 2k+ | Missing Translators Comment | ||
| #3575 | WP Image Size Limit | 86 | 7 | 6 | 3k+ | Output is not escaped | ||
| #3576 | WP YouTube Live | 86 | 28 | 24 | 1k+ | Non-prefixed function | ||
| #3577 | Catch Infinite Scroll | 87 | 20 | 10k+ | Non-prefixed global variable | |||
| #3578 | Contact Form 7 Spam Killer | 87 | 1 | 21 | 4k+ | Missing nonce verification | ||
| #3579 | Connect Contact Form 7 to Mailchimp, Brevo, MailerLite & Klaviyo | 87 | 444 | 42 | 40k+ | Text Domain Mismatch | ||
| #3580 | CookieYes – Cookie Banner for Cookie Consent (Easy to setup GDPR/CCPA Compliant Cookie Notice) | 87 | 1 | 291 | 1m+ | Non-prefixed global variable | ||
| #3581 | Cookie Notice lite | 87 | 3 | 1 | 400 | Missing direct file access protection | ||
| #3582 | Donorbox – Free Recurring Donation Plugin and Fundraising Platform | 87 | 5 | 6 | 8k+ | Missing Arg Domain | ||
| #3583 | Embed Any Document – Embed PDF, Word, PowerPoint and Excel Files | 87 | 7 | 5 | 50k+ | Setting is missing a sanitization callback | ||
| #3584 | Last Modified Timestamp | 87 | 9 | 3 | 7k+ | Output is not escaped | ||
| #3585 | Menu Caching | 87 | 3 | 12 | 500 | Request data is not unslashed | ||
| #3586 | Object Cache 4 everyone | 87 | 2 | 65 | 5k+ | Non-prefixed function | ||
| #3587 | Parallax Section Block – Add Parallax Scrolling Effects to Sections. | 87 | 3 | 22 | 3k+ | Non-prefixed global variable | ||
| #3588 | Security Header Generator | 87 | 10 | 20 | 500 | Non Singular String Literal Text | ||
| #3589 | Simple Photo Feed | 87 | 4 | 48 | 1k+ | Non-prefixed global variable | ||
| #3590 | Unnotifier — disable admin notices individually | 87 | 5 | 11 | 700 | Missing Translators Comment | ||
| #3591 | Variations as Single Product – Display Single Variation for WooCommerce | 87 | 8 | 33 | 1k+ | Direct Query | ||
| #3592 | Coupon Box for WooCommerce | 87 | 11 | 85 | 1k+ | Non-prefixed global variable | ||
| #3593 | ZI Hide price and add to cart for WooCommerce | 87 | 15 | 7 | 1k+ | wp function not compatible with requires wp | ||
| #3594 | Ample Themes Demo Importer | 88 | 135 | 13 | 600 | Text Domain Mismatch | ||
| #3595 | Worldline Online Checkout | 88 | 4 | 16 | 1k+ | Nonce verification recommended | ||
| #3596 | Catch IDs | 88 | 16 | 20k+ | Non-prefixed global variable | |||
| #3597 | Content Control – The Ultimate Content Restriction Plugin! Restrict Content, Create Conditional Blocks & More | 88 | 20 | 116 | 40k+ | Non-prefixed hook name | ||
| #3598 | Custom Header Footer Scripts for Customizer | 88 | 6 | 5 | 2k+ | Non-prefixed function | ||
| #3599 | Dynamic Animations for Elementor | 88 | 77 | 17 | 1k+ | Non Singular String Literal Domain | ||
| #3600 | 301 Redirects – Redirect Manager | 88 | 6 | 71 | 300k+ | Non-prefixed global variable |