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 |
|---|---|---|---|---|---|---|---|---|
| #1401 | Customize My Account Page For WooCommerce | 98 | 1 | 9 | 1k+ | Dynamic hook name | ||
| #1402 | Multisite Language Switcher | 98 | 4 | 21 | 4k+ | Dynamic hook name | ||
| #1403 | Custom Query Blocks | 98 | 6 | 13 | 700 | Non-prefixed hook name | ||
| #1404 | ProvenExpert | 98 | 8 | 10 | 900 | wp function not compatible with requires wp | ||
| #1405 | Shipmondo for WooCommerce | 98 | 2 | 6 | 1k+ | Dynamic hook name | ||
| #1406 | Snapchat for WooCommerce | 98 | 1 | 12 | 60k+ | Dynamic hook name | ||
| #1407 | Swift Switcher — Bulk & Custom Post Type Converter | 98 | 1 | 5 | 600 | Direct Query | ||
| #1408 | Animate Blocks | 99 | 1 | 2 | 400 | Discouraged text-domain loading | ||
| #1409 | Favicon Rotator | 99 | 2 | 2 | 20k+ | wp function not compatible with requires wp | ||
| #1410 | Repeaterly – ACF Repeater, Flexible Content & Dynamic Tags for Elementor | 99 | 7 | 400 | Dynamic hook name | |||
| #1411 | Stop User Enumeration | 99 | 1 | 1 | 50k+ | Dynamic hook name |