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 |
|---|---|---|---|---|---|---|---|---|
| #2701 | Easy!Appointments | 44 | 47 | 6 | 600 | Unsafe printing function | ||
| #2702 | ELEX WooCommerce Role Based Pricing | 44 | 213 | 196 | 2k+ | Non-prefixed global variable | ||
| #2703 | Image Widget | 44 | 48 | 5 | 3k+ | Output is not escaped | ||
| #2704 | LearnPress – BuddyPress Integration | 44 | 27 | 25 | 1k+ | Output is not escaped | ||
| #2705 | Roles & Capabilities | 44 | 24 | 79 | 1k+ | Nonce verification recommended | ||
| #2706 | Minimum Order Amount for Woocommerce | 44 | 50 | 16 | 2k+ | Text Domain Mismatch | ||
| #2707 | Notix – Web Push Notifications | 44 | 22 | 41 | 600 | Non-prefixed global variable | ||
| #2708 | Ocean Modal Window | 44 | 26 | 44 | 10k+ | Output is not escaped | ||
| #2709 | Post Grid | 44 | 33 | 208 | 30k+ | Non-prefixed global variable | ||
| #2710 | QR Code Woocommerce | 44 | 37 | 36 | 1k+ | Output is not escaped | ||
| #2711 | Razorpay Subscriptions for WooCommerce | 44 | 28 | 35 | 600 | Exception output is not escaped | ||
| #2712 | senangpay | 44 | 38 | 46 | 1k+ | Text Domain Mismatch | ||
| #2713 | Setmore Appointments | 44 | 45 | 13 | 4k+ | Output is not escaped | ||
| #2714 | Shippit for WooCommerce | 44 | 127 | 26 | 900 | Text Domain Mismatch | ||
| #2715 | Simple Full Screen Background Image | 44 | 23 | 13 | 10k+ | Output is not escaped | ||
| #2716 | Simple Image Widget | 44 | 26 | 19 | 10k+ | Unsafe printing function | ||
| #2717 | SKT Addons for Elementor | 44 | 611 | 383 | 1k+ | Text Domain Mismatch | ||
| #2718 | SmartVideo – Video Player and CDN | 44 | 295 | 44 | 1k+ | Text Domain Mismatch | ||
| #2719 | TP Product Description in Loop for WooCommerce | 44 | 48 | 7 | 500 | Setting is missing a sanitization callback | ||
| #2720 | WP Club Manager – WordPress Sports Club Plugin | 44 | 171 | 682 | 600 | Non-prefixed global variable | ||
| #2721 | Wpazure Kit | 44 | 136 | 140 | 800 | Missing direct file access protection | ||
| #2722 | ReCaptcha v2 for Contact Form 7 | 44 | 12 | 30 | 200k+ | Nonce verification recommended | ||
| #2723 | Back In Stock Notifier for WooCommerce | WooCommerce Waitlist Pro | 45 | 26 | 117 | 20k+ | Non-prefixed hook name | ||
| #2724 | Breadcrumb – Breadcrumb for WooCommerce and Custom Post Types | 45 | 3 | 107 | 10k+ | Request data is not unslashed | ||
| #2725 | Contact Form 7 Signature Addon | 45 | 147 | 44 | 6k+ | Text Domain Mismatch | ||
| #2726 | Extended Post Status | 45 | 27 | 27 | 1k+ | Output is not escaped | ||
| #2727 | Goftino | 45 | 16 | 20 | 10k+ | Output is not escaped | ||
| #2728 | Hyper Cache | 45 | 36 | 100 | 8k+ | Non-prefixed global variable | ||
| #2729 | New Order Notification for WooCommerce | 45 | 21 | 42 | 900 | Output is not escaped | ||
| #2730 | Outdooractive Embed | 45 | 70 | 18 | 400 | Text Domain Mismatch | ||
| #2731 | Product Visibility by User Role for WooCommerce | 45 | 36 | 35 | 6k+ | Missing Translators Comment | ||
| #2732 | Related Posts By PickPlugins | 45 | 4 | 84 | 3k+ | Non-prefixed global variable | ||
| #2733 | Slider Templates | 45 | 10 | 33 | 1k+ | Request data is not unslashed | ||
| #2734 | Utimate Kit ( Styler ) for WPForms | 45 | 240 | 69 | 20k+ | Missing Arg Domain | ||
| #2735 | TriPay Payment Gateway | 45 | 478 | 44 | 1k+ | Text Domain Mismatch | ||
| #2736 | VietQR | 45 | 32 | 39 | 4k+ | Text Domain Mismatch | ||
| #2737 | ARI Stream Quiz – WordPress Quizzes Builder | 46 | 21 | 239 | 2k+ | Non-prefixed global variable | ||
| #2738 | CLP Varnish Cache | 46 | 15 | 58 | 10k+ | Non-prefixed global variable | ||
| #2739 | Easy Subscribe | 46 | 132 | 700 | Direct Query | |||
| #2740 | Enhanced AJAX Add to Cart for WooCommerce | 46 | 90 | 78 | 600 | Missing Arg Domain | ||
| #2741 | Gravity Forms Constant Contact | 46 | 36 | 27 | 3k+ | Non-prefixed class | ||
| #2742 | Import Social Events | 46 | 26 | 355 | 3k+ | Non-prefixed global variable | ||
| #2743 | Material Design Icons for Page Builders | 46 | 69 | 46 | 20k+ | Missing direct file access protection | ||
| #2744 | PickPlugins Product Designer for WooCommerce | 46 | 14 | 123 | 500 | Missing nonce verification | ||
| #2745 | RY Tools for WooCommerce | 46 | 295 | 5k+ | Non-prefixed class | |||
| #2746 | Ultimate FAQ Solution | 46 | 285 | 97 | 600 | Text Domain Mismatch | ||
| #2747 | Updater by BestWebSoft | 46 | 494 | 219 | 2k+ | Text Domain Mismatch | ||
| #2748 | URL Params | 46 | 36 | 17 | 8k+ | Text Domain Mismatch | ||
| #2749 | SX User Name Security | 46 | 42 | 9 | 900 | Output is not escaped | ||
| #2750 | WEN Logo Slider | 46 | 6 | 46 | 1k+ | Non-prefixed global variable |