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 | Updated | Top Issue |
|---|---|---|---|---|---|---|---|
| #1351 | WP-PostViews | 35 | 132 | 64 | 100k+ | Unsafe Printing Function | |
| #1352 | WP-Print | 35 | 110 | 52 | 8k+ | Unsafe Printing Function | |
| #1353 | WP Store Locator | 35 | 25 | 14 | 50k+ | wp function not compatible with requires wp | |
| #1354 | WPC Badge Management for WooCommerce | 35 | 28 | 129 | 2k+ | Missing | |
| #1355 | WPC Product Options for WooCommerce | 35 | 93 | 208 | 4k+ | Non Prefixed Variable Found | |
| #1356 | WPCore Plugin Manager | 35 | 118 | 38 | 10k+ | Text Domain Mismatch | |
| #1357 | WP Views Counter | 35 | 81 | 42 | 2k+ | Output Not Escaped | |
| #1358 | WPElemento Importer | 35 | 126 | 123 | 9k+ | Text Domain Mismatch | |
| #1359 | WPFront User Role Editor | 35 | 333 | 578 | 30k+ | Output Not Escaped | |
| #1360 | WPGraphQL for ACF | 35 | 8 | 18 | 10k+ | Output Not Escaped | |
| #1361 | WPZOOM Addons for Elementor – Starter Templates & Widgets | 35 | 160 | 126 | 20k+ | Output Not Escaped | |
| #1362 | WPZOOM Portfolio Lite – Filterable Portfolio Plugin | 35 | 42 | 92 | 20k+ | Non Prefixed Variable Found | |
| #1363 | TypeSquare Webfonts for エックスサーバー | 35 | 183 | 98 | 100k+ | Missing Arg Domain | |
| #1364 | Yabe Webfont – Use Custom Fonts, Google Fonts or Adobe Fonts | 35 | 48 | 114 | 5k+ | Non Prefixed Hookname Found | |
| #1365 | Yoco Payments | 35 | 2 | 32 | 10k+ | Recommended | |
| #1366 | Yotpo: Product & Photo Reviews for WooCommerce | 35 | 24 | 189 | 2k+ | Non Prefixed Function Found | |
| #1367 | Embeds for YouTube | 35 | 255 | 307 | 10k+ | Non Prefixed Variable Found | |
| #1368 | Ziina | 35 | 8 | 19 | 2k+ | wp redirect wp redirect | |
| #1369 | Product Labels For Woocommerce (Sale Badges) | 36 | 90 | 48 | 10k+ | Output Not Escaped | |
| #1370 | Affiliate Links – Link Cloaking and Management | 36 | 26 | 136 | 3k+ | Non Prefixed Variable Found | |
| #1371 | Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator & Custom Form Builder | 36 | 3 | 321 | 10k+ | Recommended | |
| #1372 | Blaze Demo Importer | 36 | 101 | 94 | 8k+ | Output Not Escaped | |
| #1373 | BlockStrap Page Builder – Bootstrap Blocks | 36 | 81 | 89 | 2k+ | missing direct file access protection | |
| #1374 | Breadcrumb NavXT | 36 | 102 | 111 | 800k+ | Non Singular String Literal Domain | |
| #1375 | Simple SEO | 36 | 164 | 113 | 10k+ | Non Singular String Literal Domain | |
| #1376 | Multi Step for Contact Form 7 | 36 | 61 | 106 | 10k+ | Missing | |
| #1377 | Contact Form 7 Polylang Module | 36 | 32 | 45 | 5k+ | Output Not Escaped | |
| #1378 | CMB2 | 36 | 148 | 19 | 300k+ | Output Not Escaped | |
| #1379 | Code Snippets | 36 | 34 | 203 | 1m+ | Recommended | |
| #1380 | Conditional Payments for WooCommerce | 36 | 292 | 184 | 10k+ | Text Domain Mismatch | |
| #1381 | Conditional Shipping for WooCommerce | 36 | 93 | 196 | 10k+ | Non Prefixed Variable Found | |
| #1382 | Constant Contact Forms | 36 | 40 | 81 | 20k+ | Missing | |
| #1383 | Custom PHP Settings | 36 | 153 | 76 | 10k+ | Output Not Escaped | |
| #1384 | Depicter — Popup & Slider Builder | 36 | 130 | 121 | 80k+ | Exception Not Escaped | |
| #1385 | Desktop Mode | 36 | 1 | 579 | 2k+ | Direct Query | |
| #1386 | Doneren met Mollie | 36 | 420 | 351 | 4k+ | Not Prepared | |
| #1387 | Duplicate Post – duplicate pages, copy content, clone posts | 36 | 71 | 81 | 5k+ | wp function not compatible with requires wp | |
| #1388 | Dynamic Visibility for Elementor | 36 | 56 | 89 | 50k+ | Non Prefixed Hookname Found | |
| #1389 | WP CTA – Call Now Button, Sticky Button & Call to Action Builder | 36 | 1 | 433 | 2k+ | Non Prefixed Variable Found | |
| #1390 | Enhanced Media Library | 36 | 361 | 117 | 60k+ | Unsafe Printing Function | |
| #1391 | Envo's Templates & Widgets for Elementor and WooCommerce | 36 | 1,065 | 54 | 10k+ | Text Domain Mismatch | |
| #1392 | Optimize Social Share | 36 | 203 | 61 | 3k+ | Unsafe Printing Function | |
| #1393 | HTML5 Maps | 36 | 194 | 160 | 5k+ | Output Not Escaped | |
| #1394 | Page Speed Optimizer: HTTP/2 Push, Async JavaScript, and Defer CSS | 36 | 68 | 33 | 6k+ | Output Not Escaped | |
| #1395 | Image Watermark | 36 | 76 | 179 | 40k+ | Missing | |
| #1396 | Insert Headers and Footers Code – HT Script | 36 | 391 | 34 | 7k+ | Text Domain Mismatch | |
| #1397 | Italy Cookie Choices (for EU Cookie Law & Cookie Notice) | 36 | 115 | 77 | 10k+ | Unsafe Printing Function | |
| #1398 | Jetpack VideoPress | 36 | 618 | 224 | 7k+ | Text Domain Mismatch | |
| #1399 | Legal Text Connector of the IT-Recht Kanzlei | 36 | 45 | 46 | 10k+ | Exception Not Escaped | |
| #1400 | Login as User | 36 | 101 | 64 | 30k+ | Output Not Escaped |