WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound
Non-prefixed hook name
The plugin defines a hook name 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 hook name 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 |
|---|---|---|---|---|---|---|---|---|
| #3651 | Xpro Theme Builder For Elementor – FREE | 82 | 14 | 28 | 10k+ | Missing direct file access protection | ||
| #3652 | Add To Cart Button Customizations | 83 | 66 | 14 | 400 | Text Domain Mismatch | ||
| #3653 | Integration of Bitrix24 with Contact Form 7 | 83 | 14 | 40 | 600 | Non-prefixed function | ||
| #3654 | dLocal Go Payments | 83 | 9 | 15 | 400 | Missing Translators Comment | ||
| #3655 | Homepage Control | 83 | 13 | 3 | 9k+ | Output is not escaped | ||
| #3656 | All-in-One Microsoft 365 & Entra ID / Azure AD SSO Login | 83 | 182 | 22 | 600 | wp function not compatible with requires wp | ||
| #3657 | Add menu separators to navigation | 83 | 8 | 7 | 900 | Non-prefixed hook name | ||
| #3658 | PDF Generator for WordPress | 83 | 10 | 198 | 1k+ | Non-prefixed global variable | ||
| #3659 | Photo Sphere Viewer – 360° Panorama, Virtual Tour, 360 Video & AR 3D Model Viewer | 83 | 13 | 10 | 500 | wp function not compatible with requires wp | ||
| #3660 | Easy Photography Portfolio | 83 | 38 | 33 | 2k+ | Missing direct file access protection | ||
| #3661 | Photospace Responsive Gallery | 83 | 115 | 14 | 900 | Text Domain Mismatch | ||
| #3662 | Fixed Widget and Sticky Elements for WordPress | 83 | 7 | 13 | 80k+ | Non-prefixed global variable | ||
| #3663 | Lightweight Sidebar Manager | 83 | 13 | 36 | 80k+ | Non-prefixed class | ||
| #3664 | Soro – SEO Autopilot & AI Content Writer | 83 | 4 | 10 | 10k+ | Input is not sanitized | ||
| #3665 | Sticky Header by ThematoSoup | 83 | 20 | 5 | 1k+ | Non Singular String Literal Domain | ||
| #3666 | Team Section Block – Showcase Team Members with Layout Options | 83 | 1 | 21 | 1k+ | Non-prefixed namespace | ||
| #3667 | Template Kit – Export | 83 | 7 | 90 | 8k+ | Non-prefixed global variable | ||
| #3668 | Custom Thank You Page for WooCommerce | 83 | 7 | 6 | 2k+ | Output is not escaped | ||
| #3669 | Stickers for WooCommerce | 83 | 952 | 14 | 3k+ | wp function not compatible with requires wp | ||
| #3670 | WPC AJAX Search for WooCommerce | 83 | 1 | 29 | 1k+ | Nonce verification recommended | ||
| #3671 | WPC Order Tip for WooCommerce | 83 | 55 | 1k+ | Non-prefixed global variable | |||
| #3672 | Image Gallery Block | 84 | 9 | 22 | 2k+ | Non-prefixed global variable | ||
| #3673 | AnimateGL Animations for WordPress – Elementor & Gutenberg Blocks Animations | 84 | 88 | 20 | 3k+ | Text Domain Mismatch | ||
| #3674 | Dynific Addons for Elementor (formerly AnyWhere Elementor) | 84 | 33 | 5 | 70k+ | Text Domain Mismatch | ||
| #3675 | AWEOS PHP Server Info | 84 | 8 | 3 | 1k+ | Output is not escaped | ||
| #3676 | Better Post & Filter Widgets for Elementor | 84 | 7 | 27 | 3k+ | slow db query tax query | ||
| #3677 | BinancePay Checkout for WooCommerce | 84 | 5 | 14 | 800 | Input is not validated | ||
| #3678 | WP All Import – Import Add-On for ACF | 84 | 3 | 46 | 50k+ | Non-prefixed global variable | ||
| #3679 | Digital Signature For Contact Form 7 | 84 | 22 | 11 | 5k+ | file system operations fwrite | ||
| #3680 | FEWC – Extra Checkout Fields For WooCommerce | 84 | 7 | 41 | 700 | Non-prefixed global variable | ||
| #3681 | Filterable Portfolio | 84 | 3 | 76 | 1k+ | Non-prefixed global variable | ||
| #3682 | Floating Button – Easily Create Sticky, Fixed & Floating Buttons | 84 | 6 | 184 | 4k+ | Non-prefixed global variable | ||
| #3683 | Get the Image | 84 | 8 | 8 | 7k+ | Non-prefixed hook name | ||
| #3684 | HHG for TranslatePress | 84 | 43 | 18 | 800 | curl curl setopt | ||
| #3685 | JWT Authentication for WP REST API | 84 | 27 | 41 | 60k+ | wp function not compatible with requires wp | ||
| #3686 | LearnPress – Prerequisites Courses | 84 | 8 | 14 | 6k+ | Non-prefixed constant | ||
| #3687 | Lightweight Cookie Notice – Cookie Banner for Cookie Consent | 84 | 8 | 18 | 5k+ | Database parameter is not escaped | ||
| #3688 | MotoPress Hotel Booking for Elementor | 84 | 3 | 19 | 10k+ | Non-prefixed global variable | ||
| #3689 | Nav Menu Roles | 84 | 3 | 18 | 70k+ | Non-prefixed hook name | ||
| #3690 | Ocean Social Sharing | 84 | 10 | 36 | 60k+ | Non-prefixed global variable | ||
| #3691 | Plugin Security Scanner | 84 | 9 | 9 | 800 | Output is not escaped | ||
| #3692 | Popup builder with Gamification, Multi-Step Popups, Page-Level Targeting, and WooCommerce Triggers | 84 | 1 | 73 | 70k+ | Direct Query | ||
| #3693 | Public Post Preview Configurator | 84 | 14 | 6 | 10k+ | Non Singular String Literal Domain | ||
| #3694 | Replace Image | 84 | 5 | 13 | 8k+ | Input is not sanitized | ||
| #3695 | Safelayout Cute Preloader – CSS3 WordPress Preloader | 84 | 3 | 14 | 10k+ | Input is not validated | ||
| #3696 | Simple Testimonials Showcase | 84 | 33 | 11 | 500 | Missing Translators Comment | ||
| #3697 | Username Changer | 84 | 37 | 13 | 40k+ | wp function not compatible with requires wp | ||
| #3698 | Web Stories | 84 | 12 | 63 | 60k+ | Non-prefixed global variable | ||
| #3699 | Easy Duplicate Product for WooCommerce | 84 | 7 | 8 | 3k+ | Missing direct file access protection | ||
| #3700 | WPB Accordion Menu – Collapsible Vertical Sidebar Menu – WooCommerce Category Accordion | 84 | 5 | 59 | 10k+ | Non-prefixed hook name |