WordPress.NamingConventions.PrefixAllGlobals.DynamicHooknameFound
Dynamic hook name
The plugin invokes a hook name built from a variable or expression that Plugin Check cannot verify as plugin-prefixed.
Why It Shows Up
Plugin Check found a dynamic hook name such as a variable, array value, or concatenated expression. Static analysis cannot prove the final hook name starts with the plugin's namespace.
Why It Matters
Dynamic hook names can be valid, but unclear naming makes collisions and unexpected integrations harder to reason about across WordPress, themes, and other plugins.
How to Fix
- Prefer a literal hook name with the plugin prefix when the hook is part of the plugin's public API.
- If the hook must be dynamic, keep a fixed plugin-prefixed base before the variable portion.
- Document public dynamic hooks so integrators know the expected final hook names.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #251 | NicheTable – Responsive Comparison Table Block | 23 | 683 | 1,307 | 700 | Non-prefixed global variable | ||
| #252 | NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization | 23 | 316 | 639 | 100k+ | Output is not escaped | ||
| #253 | Ocean Extra | 23 | 1,494 | 2,107 | 500k+ | Non-prefixed global variable | ||
| #254 | Pagination Styler for WooCommerce | 23 | 811 | 445 | 1k+ | Output is not escaped | ||
| #255 | Gallery PhotoBlocks | 23 | 904 | 1,345 | 3k+ | Non-prefixed global variable | ||
| #256 | ExpressTechSoftwares Discord Add-on for Paid Memberships Pro | 23 | 454 | 449 | 700 | Text Domain Mismatch | ||
| #257 | AI Popup | 23 | 1,224 | 636 | 400 | Text Domain Mismatch | ||
| #258 | Post to Google My Business (Google Business Profile) | 23 | 845 | 1,452 | 10k+ | Non-prefixed global variable | ||
| #259 | Postie | 23 | 407 | 261 | 10k+ | Output is not escaped | ||
| #260 | Pricing Table by Supsystic | 23 | 1,299 | 447 | 10k+ | Non Singular String Literal Domain | ||
| #261 | Primary Addon for Elementor | 23 | 765 | 1,306 | 7k+ | Non-prefixed global variable | ||
| #262 | Print My Blog – Print, PDF, & eBook Converter WordPress Plugin | 23 | 1,077 | 1,660 | 8k+ | Non-prefixed global variable | ||
| #263 | Product Watermark for WooCommerce | 23 | 696 | 457 | 2k+ | Output is not escaped | ||
| #264 | Protect Admin | 23 | 606 | 1,300 | 2k+ | Non-prefixed global variable | ||
| #265 | Radio Station by netmix® – Manage and play your Show Schedule in WordPress! | 23 | 934 | 3,619 | 1k+ | Non-prefixed global variable | ||
| #266 | Read More WP | 23 | 570 | 1,311 | 1k+ | Non-prefixed global variable | ||
| #267 | Real 3D Flipbook – 3D FlipBook, PDF FlipBook, PDF Viewer, PDF Embedder | 23 | 856 | 1,365 | 10k+ | Non-prefixed global variable | ||
| #268 | Request a Quote – Quote Forms for Any WordPress Site | 23 | 240 | 1,099 | 1k+ | Non-prefixed hook name | ||
| #269 | Restaurant & Cafe Addon for Elementor | 23 | 889 | 1,326 | 2k+ | Non-prefixed global variable | ||
| #270 | Revive.so – Bulk Rewrite and Republish Blog Posts | 23 | 332 | 228 | 1k+ | Text Domain Mismatch | ||
| #271 | Manago AI & Leadoo AI | 23 | 644 | 429 | 1k+ | Unsafe printing function | ||
| #272 | SecuPress with Simple SSL – Simple and Performant Security | 23 | 1,697 | 1,601 | 40k+ | Non-prefixed global variable | ||
| #273 | Secure Custom Fields | 23 | 240 | 1,370 | 80k+ | Non-prefixed function | ||
| #274 | Seriously Simple Podcasting | 23 | 548 | 627 | 30k+ | Non-prefixed hook name | ||
| #275 | Local Google Analytics for WordPress – caches external requests | 23 | 551 | 199 | 3k+ | Output is not escaped | ||
| #276 | Simple URLs – Link Cloaking, Product Displays, and Affiliate Link Management | 23 | 295 | 298 | 4k+ | Non-prefixed global variable | ||
| #277 | Site Reviews | 23 | 1,625 | 603 | 60k+ | Output is not escaped | ||
| #278 | Slider Hero with Video Background, Animation | 23 | 1,565 | 1,253 | 3k+ | Text Domain Mismatch | ||
| #279 | StreamWeasels Twitch Integration | 23 | 555 | 1,465 | 1k+ | Non-prefixed global variable | ||
| #280 | Strong Testimonials | 23 | 192 | 392 | 90k+ | Nonce verification recommended | ||
| #281 | Super Video player – Fully Customizable Video Player with Playlist | 23 | 1,135 | 1,634 | 2k+ | Non-prefixed global variable | ||
| #282 | The Events Calendar | 23 | 3,511 | 3,851 | 700k+ | Text Domain Mismatch | ||
| #283 | Tutor LMS – eLearning and online course solution | 23 | 395 | 3,406 | 100k+ | Non-prefixed global variable | ||
| #284 | Product Options and Price Calculation Formulas for WooCommerce – Uni CPO | 23 | 2,514 | 1,929 | 1k+ | Output is not escaped | ||
| #285 | User Menus – Nav Menu Visibility | 23 | 531 | 1,298 | 80k+ | Non-prefixed global variable | ||
| #286 | UsersWP – Front-end login form, User Registration, User Profile & Members Directory plugin for WP | 23 | 694 | 2,439 | 20k+ | Non-prefixed hook name | ||
| #287 | Checkout with Zelle on Woocommerce | 23 | 637 | 1,404 | 3k+ | Non-prefixed global variable | ||
| #288 | Advanced Booking & Appointment System – Webba Booking Calendar | 23 | 1,613 | 3,295 | 2k+ | Non-prefixed global variable | ||
| #289 | Widgets on Pages | 23 | 809 | 1,306 | 20k+ | Non-prefixed global variable | ||
| #290 | Widgets for WooCommerce Products on Elementor | 23 | 1,659 | 1,454 | 3k+ | Non-prefixed global variable | ||
| #291 | Germanized for WooCommerce | 23 | 222 | 1,054 | 70k+ | Non-prefixed global variable | ||
| #292 | Predictive Search for WooCommerce | 23 | 530 | 644 | 700 | Output is not escaped | ||
| #293 | StoreCustomizer – A plugin to Customize all WooCommerce Pages | 23 | 587 | 1,426 | 20k+ | Non-prefixed global variable | ||
| #294 | ShopLentor – All-in-One WooCommerce Growth & Store Enhancement Plugin | 23 | 7,423 | 2,181 | 90k+ | Text Domain Mismatch | ||
| #295 | WP BackItUp Community Edition | 23 | 257 | 989 | 6k+ | Non-prefixed global variable | ||
| #296 | WP Free SSL | 23 | 735 | 1,345 | 1k+ | Non-prefixed global variable | ||
| #297 | Stripe Payment Forms by WP Full Pay – Accept Credit Card Payments, Donations & Subscriptions | 23 | 1,123 | 1,860 | 9k+ | Output is not escaped | ||
| #298 | WP Hotelier | 23 | 693 | 1,635 | 2k+ | Non-prefixed global variable | ||
| #299 | FunnelKit Automations – Email Marketing Automation and CRM for WordPress & WooCommerce | 23 | 941 | 2,179 | 20k+ | SQL query is not prepared | ||
| #300 | Shield Security – Smart Bot Blocking, Brute-Force Login Protection & File Scanning | 23 | 1,118 | 202 | 40k+ | Missing Translators Comment |