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 |
|---|---|---|---|---|---|---|---|---|
| #2101 | Require Login for WooCommerce | 35 | 10 | 6 | 2k+ | wp function not compatible with requires wp | ||
| #2102 | Title Limit for WooCommerce | 35 | 41 | 12 | 4k+ | Output is not escaped | ||
| #2103 | Abandoned Cart Lite for WooCommerce | 35 | 84 | 161 | 20k+ | Non-prefixed global variable | ||
| #2104 | Call for Price for WooCommerce | 35 | 5 | 37 | 8k+ | Non-prefixed hook name | ||
| #2105 | Checkout Terms Conditions Popup for WooCommerce | 35 | 76 | 30 | 1k+ | Output is not escaped | ||
| #2106 | Conversion Tracking for WooCommerce | 35 | 74 | 61 | 20k+ | Output is not escaped | ||
| #2107 | Japanized for WooCommerce | 35 | 6 | 68 | 10k+ | Non-prefixed class | ||
| #2108 | Pixel Manager for WooCommerce – Conversion Tracking, Google Ads, GA4, TikTok, Dynamic Remarketing | 35 | 49 | 230 | 50k+ | Non-prefixed hook name | ||
| #2109 | Payment Gateway for PayPal Pro & PayPal Checkout for WooCommerce | 35 | 67 | 147 | 2k+ | Request data is not unslashed | ||
| #2110 | Invoices for WooCommerce | 35 | 55 | 168 | 10k+ | Non-prefixed global variable | ||
| #2111 | PDF Invoices & Packing Slips for WooCommerce | 35 | 35 | 964 | 300k+ | Non-prefixed hook name | ||
| #2112 | Brevo for WooCommerce | 35 | 116 | 67 | 30k+ | Output is not escaped | ||
| #2113 | Stock Manager for WooCommerce | 35 | 5 | 45 | 20k+ | Non-prefixed global variable | ||
| #2114 | BulkGate SMS Plugin for WooCommerce | 35 | 33 | 32 | 1k+ | Output is not escaped | ||
| #2115 | Easy Accept Payments via PayPal | 35 | 322 | 128 | 7k+ | Text Domain Mismatch | ||
| #2116 | WP API Menus | 35 | 12 | 9 | 2k+ | wp function not compatible with requires wp | ||
| #2117 | Bitly's WordPress Plugin | 35 | 6 | 23 | 2k+ | Non-prefixed function | ||
| #2118 | WP Compiler | 35 | 33 | 20 | 1k+ | Output is not escaped | ||
| #2119 | WP Content Copy Protection | 35 | 76 | 11 | 10k+ | Text Domain Mismatch | ||
| #2120 | Custom Body Class | 35 | 39 | 101 | 10k+ | Non-prefixed global variable | ||
| #2121 | WP Dark Mode – Improve Accessibility with AI Powered Dark Theme | 35 | 20 | 160 | 20k+ | Non-prefixed global variable | ||
| #2122 | WP Datepicker | 35 | 225 | 181 | 7k+ | Output is not escaped | ||
| #2123 | WP Duplicate Page | 35 | 44 | 50 | 60k+ | Text Domain Mismatch | ||
| #2124 | WPGraphQL | 35 | 10 | 86 | 30k+ | Non-prefixed hook name | ||
| #2125 | WP Mailto Links – Protect Email Addresses | 35 | 95 | 69 | 8k+ | Output is not escaped | ||
| #2126 | WP Instant Feeds | 35 | 19 | 12 | 6k+ | Output is not escaped | ||
| #2127 | WP-PageNavi | 35 | 84 | 95 | 500k+ | Non Singular String Literal Domain | ||
| #2128 | Parse.ly | 35 | 15 | 44 | 1k+ | Non-prefixed hook name | ||
| #2129 | WP Post Nav | 35 | 73 | 242 | 400 | Non-prefixed global variable | ||
| #2130 | WP-PostViews | 35 | 132 | 64 | 100k+ | Unsafe printing function | ||
| #2131 | WP-Print | 35 | 110 | 52 | 8k+ | Unsafe printing function | ||
| #2132 | WP All Import – Property Import for WP Residence | 35 | 41 | 32 | 700 | Output is not escaped | ||
| #2133 | video carousel slider with lightbox | 35 | 350 | 136 | 1k+ | Output is not escaped | ||
| #2134 | Subresource Integrity (SRI) Manager | 35 | 26 | 94 | 900 | Request data is not unslashed | ||
| #2135 | WP Store Locator | 35 | 26 | 14 | 50k+ | wp function not compatible with requires wp | ||
| #2136 | WPC Badge Management for WooCommerce | 35 | 13 | 81 | 2k+ | Missing nonce verification | ||
| #2137 | WPCore Plugin Manager | 35 | 118 | 38 | 10k+ | Text Domain Mismatch | ||
| #2138 | WPD Beaver Builder Additions | 35 | 406 | 35 | 600 | Non Singular String Literal Domain | ||
| #2139 | WP Views Counter | 35 | 81 | 42 | 2k+ | Output is not escaped | ||
| #2140 | WPElemento Importer | 35 | 126 | 123 | 9k+ | Text Domain Mismatch | ||
| #2141 | WPFront User Role Editor | 35 | 333 | 578 | 30k+ | Output is not escaped | ||
| #2142 | WPGraphQL for ACF | 35 | 6 | 18 | 10k+ | Output is not escaped | ||
| #2143 | WPGraphQL IDE | 35 | 38 | 18 | 1k+ | Text Domain Mismatch | ||
| #2144 | wpLingua – Automatic translation – Translate and make website multilingual | 35 | 79 | 167 | 2k+ | Nonce verification recommended | ||
| #2145 | WPZOOM Addons for Elementor – Starter Templates & Widgets | 35 | 160 | 130 | 20k+ | Output is not escaped | ||
| #2146 | WPZOOM Portfolio Lite – Filterable Portfolio Plugin | 35 | 42 | 92 | 20k+ | Non-prefixed global variable | ||
| #2147 | xili-tidy-tags | 35 | 224 | 157 | 1k+ | Output is not escaped | ||
| #2148 | TypeSquare Webfonts for エックスサーバー | 35 | 183 | 98 | 100k+ | Missing Arg Domain | ||
| #2149 | Yabe Webfont – Use Custom Fonts, Google Fonts or Adobe Fonts | 35 | 48 | 114 | 5k+ | Non-prefixed hook name | ||
| #2150 | Comment Experience by Progress Planner | 35 | 135 | 8 | 500 | Text Domain Mismatch |