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 |
|---|---|---|---|---|---|---|---|---|
| #2851 | Directorist – WPML Integration | 43 | 10 | 134 | 400 | Non-prefixed hook name | ||
| #2852 | Hash Form – Drag & Drop Form Builder | 43 | 9 | 273 | 4k+ | Non-prefixed global variable | ||
| #2853 | Insert Blocks Before or After Posts Content | 43 | 42 | 15 | 1k+ | Output is not escaped | ||
| #2854 | Opal Woo Custom Product Variation | 43 | 1 | 116 | 400 | Non-prefixed global variable | ||
| #2855 | PE Panels | 43 | 181 | 4 | 500 | Output is not escaped | ||
| #2856 | Pods Gravity Forms Add-On | 43 | 79 | 1k+ | Missing nonce verification | |||
| #2857 | Pro Categories Widget | 43 | 59 | 9 | 800 | Output is not escaped | ||
| #2858 | Purchase Orders for WooCommerce | 43 | 117 | 74 | 1k+ | Text Domain Mismatch | ||
| #2859 | Rut Chileno con Validación para WooCommerce | 43 | 35 | 16 | 1k+ | Text Domain Mismatch | ||
| #2860 | SSO for Entra ID | 43 | 65 | 18 | 600 | Output is not escaped | ||
| #2861 | Term Management Tools | 43 | 9 | 26 | 10k+ | Non-prefixed hook name | ||
| #2862 | Terms Order WP – Categories And Taxonomies Order Plugin | 43 | 12 | 47 | 900 | Non-prefixed global variable | ||
| #2863 | Ultimate Member Widgets for Elementor – Login Form, Register Form & User Directory | 43 | 15 | 102 | 400 | Non-prefixed namespace | ||
| #2864 | UPI QR Code Payment Gateway for WooCommerce | 43 | 42 | 28 | 20k+ | Output is not escaped | ||
| #2865 | User role based shipping methods | 43 | 53 | 7 | 400 | Output is not escaped | ||
| #2866 | User Session Control | 43 | 31 | 21 | 700 | Output is not escaped | ||
| #2867 | Checkout Field Manager (Checkout Manager) for WooCommerce | 43 | 162 | 154 | 90k+ | Non-prefixed global variable | ||
| #2868 | WP Hotel Booking WPML Support | 43 | 10 | 52 | 400 | Direct Query | ||
| #2869 | Advanced Dynamic Pricing and Discount Rules for WooCommerce | 44 | 2 | 813 | 20k+ | Non-prefixed namespace | ||
| #2870 | Buttonizer – Live Chat, AI Chatbot, Call, Chat, Contact Button | 44 | 24 | 71 | 50k+ | Non-prefixed constant | ||
| #2871 | Checkout Upsell Funnel for WooCommerce | 44 | 6 | 244 | 600 | Non-prefixed global variable | ||
| #2872 | Code Widget | 44 | 60 | 33 | 4k+ | Text Domain Mismatch | ||
| #2873 | Creative Addons for Elementor | 44 | 63 | 100 | 800 | Missing Arg Domain | ||
| #2874 | ELEX WooCommerce Role Based Pricing | 44 | 213 | 196 | 2k+ | Non-prefixed global variable | ||
| #2875 | Github Embed | 44 | 18 | 35 | 1k+ | Non-prefixed global variable | ||
| #2876 | KKiapay WooCommerce Plugin | 44 | 20 | 25 | 400 | Output is not escaped | ||
| #2877 | LearnPress – BuddyPress Integration | 44 | 27 | 25 | 1k+ | Output is not escaped | ||
| #2878 | Roles & Capabilities | 44 | 24 | 79 | 1k+ | Nonce verification recommended | ||
| #2879 | Minimum Order Amount for Woocommerce | 44 | 50 | 16 | 2k+ | Text Domain Mismatch | ||
| #2880 | Narrative Publisher | 44 | 28 | 37 | 1k+ | Text Domain Mismatch | ||
| #2881 | Notix – Web Push Notifications | 44 | 22 | 41 | 600 | Non-prefixed global variable | ||
| #2882 | Ocean Modal Window | 44 | 26 | 44 | 10k+ | Output is not escaped | ||
| #2883 | Post Grid | 44 | 33 | 208 | 30k+ | Non-prefixed global variable | ||
| #2884 | QR Code Woocommerce | 44 | 37 | 36 | 1k+ | Output is not escaped | ||
| #2885 | Shippit for WooCommerce | 44 | 127 | 26 | 900 | Text Domain Mismatch | ||
| #2886 | Simple Image Widget | 44 | 26 | 19 | 10k+ | Unsafe printing function | ||
| #2887 | SKT Addons for Elementor | 44 | 611 | 383 | 1k+ | Text Domain Mismatch | ||
| #2888 | SmartVideo – Video Player and CDN | 44 | 295 | 44 | 1k+ | Text Domain Mismatch | ||
| #2889 | WCFM – WCFM Marketplace integrate Elementor | 44 | 82 | 18 | 1k+ | Output is not escaped | ||
| #2890 | Calculadora de Frete e Campos Checkout para o Brasil | 44 | 19 | 166 | 5k+ | Missing nonce verification | ||
| #2891 | WP Club Manager – WordPress Sports Club Plugin | 44 | 171 | 682 | 600 | Non-prefixed global variable | ||
| #2892 | Wpazure Kit | 44 | 136 | 140 | 800 | Missing direct file access protection | ||
| #2893 | ReCaptcha v2 for Contact Form 7 | 44 | 12 | 30 | 200k+ | Nonce verification recommended | ||
| #2894 | Advanced Custom Fields – Contact Form 7 Field | 45 | 59 | 8 | 2k+ | Output is not escaped | ||
| #2895 | Ajax Archive Calendar | 45 | 40 | 18 | 1k+ | date date | ||
| #2896 | Back In Stock Notifier for WooCommerce | WooCommerce Waitlist Pro | 45 | 26 | 117 | 20k+ | Non-prefixed hook name | ||
| #2897 | Breadcrumb – Breadcrumb for WooCommerce and Custom Post Types | 45 | 3 | 107 | 10k+ | Request data is not unslashed | ||
| #2898 | Contact Details | 45 | 43 | 29 | 1k+ | Non Singular String Literal Text | ||
| #2899 | Contact Form 7 Signature Addon | 45 | 147 | 44 | 6k+ | Text Domain Mismatch | ||
| #2900 | Hyper Cache | 45 | 36 | 100 | 8k+ | Non-prefixed global variable |