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 |
|---|---|---|---|---|---|---|---|---|
| #3151 | Search Exclude | 57 | 73 | 40 | 50k+ | Text Domain Mismatch | ||
| #3152 | Team View | 57 | 32 | 19 | 900 | Output is not escaped | ||
| #3153 | WC Call For Price | 57 | 19 | 55 | 1k+ | Non-prefixed global variable | ||
| #3154 | WP Table Builder – Drag & Drop Table Builder | 57 | 63 | 39 | 50k+ | Not Allowed | ||
| #3155 | WP Wrapper | 57 | 13 | 29 | 600 | Input is not validated | ||
| #3156 | XML Feed for Skroutz & BestPrice for WooCommerce | 57 | 12 | 50 | 600 | Input is not sanitized | ||
| #3157 | Admin Page Notes | 58 | 17 | 15 | 700 | Text Domain Mismatch | ||
| #3158 | Basic User Avatars | 58 | 17 | 7 | 20k+ | Output is not escaped | ||
| #3159 | Custom Meta Widget | 58 | 55 | 2 | 7k+ | Output is not escaped | ||
| #3160 | Debloat – Remove Unused CSS, Optimize JS | 58 | 24 | 20 | 30k+ | Nonce verification recommended | ||
| #3161 | Departamentos y Ciudades de Colombia para Woocommerce | 58 | 49 | 42 | 6k+ | Text Domain Mismatch | ||
| #3162 | Easy Sidebar Menu Widget | 58 | 32 | 7 | 2k+ | Output is not escaped | ||
| #3163 | Error Log Viewer by BestWebSoft | 58 | 433 | 172 | 6k+ | Text Domain Mismatch | ||
| #3164 | Gutenverse Form – Contact Form Builder, Block Form & Booking Form | 58 | 17 | 48 | 10k+ | Nonce verification recommended | ||
| #3165 | List Last Changes | 58 | 50 | 15 | 1k+ | Output is not escaped | ||
| #3166 | PW WooCommerce BOGO | 58 | 30 | 8 | 400 | Unsafe printing function | ||
| #3167 | Responsive Select Menu | 58 | 29 | 27 | 3k+ | Output is not escaped | ||
| #3168 | Rewrite Rules Inspector | 58 | 7 | 59 | 10k+ | Nonce verification recommended | ||
| #3169 | Safety Exit | 58 | 52 | 26 | 1k+ | Text Domain Mismatch | ||
| #3170 | SportsPress for Basketball | 58 | 104 | 34 | 1k+ | Text Domain Mismatch | ||
| #3171 | SportsPress for Football (Soccer) | 58 | 107 | 34 | 6k+ | Text Domain Mismatch | ||
| #3172 | SportsPress for Volleyball | 58 | 107 | 34 | 500 | Text Domain Mismatch | ||
| #3173 | UiCore Elements – Free widgets and templates for Elementor | 58 | 29 | 30 | 40k+ | Output is not escaped | ||
| #3174 | Videopack | 58 | 28 | 108 | 10k+ | Input is not sanitized | ||
| #3175 | View Admin As | 58 | 307 | 135 | 9k+ | Non Singular String Literal Domain | ||
| #3176 | Virtuaria PagBank / PagSeguro for WooCommerce | 58 | 152 | 1k+ | Non-prefixed global variable | |||
| #3177 | Social Media Auto Poster – Schedule & Publish to Buffer | 58 | 23 | 211 | 7k+ | Dynamic hook name | ||
| #3178 | Blog Designer | 59 | 62 | 83 | 10k+ | Text Domain Mismatch | ||
| #3179 | Business Reviews – Display Customer Reviews from Popular Sites | 59 | 10 | 31 | 1k+ | Non-prefixed class | ||
| #3180 | Posts Order | 59 | 59 | 20 | 1k+ | Text Domain Mismatch | ||
| #3181 | Co-Authors Plus | 59 | 2 | 76 | 20k+ | Input is not sanitized | ||
| #3182 | Connect SendGrid for Emails | 59 | 37 | 103 | 900 | Missing direct file access protection | ||
| #3183 | Cresta Posts Box | 59 | 10 | 13 | 1k+ | Output is not escaped | ||
| #3184 | ELEX WooCommerce Name Your Price | 59 | 295 | 117 | 600 | Missing Arg Domain | ||
| #3185 | Fathom Analytics Conversions | 59 | 14 | 47 | 400 | Non-prefixed function | ||
| #3186 | GDPR Data Request Form | 59 | 22 | 19 | 5k+ | Missing direct file access protection | ||
| #3187 | Getty Images | 59 | 11 | 46 | 2k+ | Missing nonce verification | ||
| #3188 | Gravity Forms Approvals Add-On | 59 | 17 | 6 | 800 | Output is not escaped | ||
| #3189 | GravityWP – Merge Tags | 59 | 16 | 172 | 2k+ | Non-prefixed global variable | ||
| #3190 | Icon List | 59 | 83 | 11 | 1k+ | Text Domain Mismatch | ||
| #3191 | Importify – AI Dropshipping for WooCommerce | 59 | 22 | 71 | 2k+ | Non-prefixed global variable | ||
| #3192 | MapGeo – Interactive Geo Maps | 59 | 14 | 51 | 40k+ | Non-prefixed hook name | ||
| #3193 | JetSticky For Elementor | 59 | 13 | 38 | 30k+ | Nonce verification recommended | ||
| #3194 | Pattern Wrangler – Manage Block Patterns and Pattern Categories | 59 | 14 | 73 | 400 | Non-prefixed global variable | ||
| #3195 | pensopay Payments v2 | 59 | 413 | 32 | 1k+ | Non Singular String Literal Domain | ||
| #3196 | Remove Add to Cart Button for WooCommerce | 59 | 115 | 18 | 500 | Text Domain Mismatch | ||
| #3197 | Super Progressive Web Apps | 59 | 62 | 22 | 40k+ | wp function not compatible with requires wp | ||
| #3198 | Unlimited Addons For Gutenberg Blocks | 59 | 16 | 68 | 900 | slow db query meta key | ||
| #3199 | Konnect Payment Gateway for WooCommerce | 59 | 39 | 16 | 400 | Text Domain Mismatch | ||
| #3200 | Payment Gateway for LiqPay for Woocommerce | 59 | 84 | 31 | 1k+ | Text Domain Mismatch |