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 |
|---|---|---|---|---|---|---|---|---|
| #1101 | CAOS | Host Google Analytics Locally | 38 | 124 | 44 | 10k+ | Output is not escaped | ||
| #1102 | Icegram Mailer – Reliable Email Deliverability, No-code SMTP Replacement & Email logs | 38 | 36 | 106 | 1k+ | Non-prefixed global variable | ||
| #1103 | Jupiter X Core | 38 | 71 | 767 | 80k+ | Non-prefixed global variable | ||
| #1104 | Kali Forms — Contact Form & Drag-and-Drop Builder | 38 | 3 | 252 | 10k+ | Dynamic hook name | ||
| #1105 | MainWP Child – Securely Connects to the MainWP Dashboard to Manage Multiple Sites | 38 | 3 | 136 | 700k+ | Non-prefixed hook name | ||
| #1106 | One Click Demo Import | 38 | 22 | 84 | 1m+ | Non-prefixed global variable | ||
| #1107 | Page Links To | 38 | 31 | 40 | 100k+ | Unsafe printing function | ||
| #1108 | Remove WordPress Overhead | 38 | 64 | 47 | 1k+ | Text Domain Mismatch | ||
| #1109 | Simple LDAP Login | 38 | 65 | 33 | 1k+ | Output is not escaped | ||
| #1110 | Social Icons | 38 | 72 | 83 | 10k+ | Output is not escaped | ||
| #1111 | Super Simple Slider | 38 | 55 | 55 | 1k+ | Non-prefixed global variable | ||
| #1112 | Templatiq | 38 | 31 | 94 | 900 | Non-prefixed hook name | ||
| #1113 | Variation Swatches for WooCommerce | 38 | 45 | 65 | 2k+ | Output is not escaped | ||
| #1114 | FancyTube – Video Gallery, Video Slider, and Playlist Slider for YouTube | 38 | 358 | 34 | 1k+ | Text Domain Mismatch | ||
| #1115 | Shipping Packages for WooCommerce – Dropship from multiple locations like AliExpress, eBay, Amazon, Etsy | 38 | 94 | 26 | 900 | Non Singular String Literal Domain | ||
| #1116 | Connect WooCommerce Shop to ERP/CRM, Verifactu and EU/VAT Compliance | 38 | 23 | 104 | 1k+ | Direct Query | ||
| #1117 | AffiliateWP – Affiliate Area Tabs | 39 | 86 | 26 | 3k+ | Output is not escaped | ||
| #1118 | Load More Anything | 39 | 38 | 73 | 5k+ | Output is not escaped | ||
| #1119 | bbPress Voting | 39 | 27 | 53 | 500 | Output is not escaped | ||
| #1120 | Birds Custom Login | 39 | 196 | 23 | 4k+ | Non Singular String Literal Domain | ||
| #1121 | Content Visibility for Divi Builder | 39 | 184 | 59 | 2k+ | Non Singular String Literal Domain | ||
| #1122 | ElementsKit Elementor Addons – Advanced Widgets & Templates Addons for Elementor | 39 | 73 | 350 | 1m+ | Non-prefixed global variable | ||
| #1123 | BestWebSoft's Like & Share – Posts, Pages and Widget Social Extension plugin for WordPress | 39 | 480 | 226 | 4k+ | Text Domain Mismatch | ||
| #1124 | GDPRess | Eliminate external requests to increase GDPR compliance | 39 | 60 | 26 | 1k+ | Output is not escaped | ||
| #1125 | GL Import External Images | 39 | 118 | 19 | 800 | wp function not compatible with requires wp | ||
| #1126 | Gravity Slider Fields | 39 | 56 | 36 | 2k+ | Text Domain Mismatch | ||
| #1127 | Gutenverse News – News Blocks for Blog & Magazine Sites | 39 | 37 | 65 | 800 | Non-prefixed hook name | ||
| #1128 | HW Image Widget | 39 | 138 | 41 | 1k+ | Output is not escaped | ||
| #1129 | S2W – Import Shopify to WooCommerce | 39 | 8 | 132 | 3k+ | Request data is not unslashed | ||
| #1130 | LuckyWP Table of Contents | 39 | 438 | 62 | 100k+ | Output is not escaped | ||
| #1131 | Markup by Attribute for WooCommerce | 39 | 46 | 102 | 2k+ | Direct Query | ||
| #1132 | Mega Addons For WPBakery Page Builder | 39 | 1,320 | 154 | 20k+ | Text Domain Mismatch | ||
| #1133 | Mizan Demo Importer | 39 | 31 | 91 | 1k+ | Missing nonce verification | ||
| #1134 | Multilingual Contact Form 7 with Polylang | 39 | 50 | 30 | 9k+ | Text Domain Mismatch | ||
| #1135 | Social Proof Popups & Real-Time Notifications – Herd Effects | 39 | 5 | 181 | 1k+ | Non-prefixed global variable | ||
| #1136 | Redirect 404 Error Page to Homepage or Custom Page with Logs | 39 | 27 | 53 | 10k+ | Nonce verification recommended | ||
| #1137 | Shared Files – File Upload & Download Manager | 39 | 5 | 184 | 4k+ | Nonce verification recommended | ||
| #1138 | Shipping Simulator for WooCommerce | 39 | 120 | 39 | 5k+ | Text Domain Mismatch | ||
| #1139 | ThemeKit For WordPress | 39 | 149 | 49 | 700 | Output is not escaped | ||
| #1140 | upPrev | 39 | 35 | 36 | 1k+ | Dynamic hook name | ||
| #1141 | Virtuaria Correios – Frete, Etiqueta, Rastreio e Declaração | 39 | 18 | 81 | 500 | Nonce verification recommended | ||
| #1142 | Lucky Wheel for WooCommerce – Spin a Sale | 39 | 12 | 153 | 1k+ | Request data is not unslashed | ||
| #1143 | WPEPP – Essential Security, Password Protect & Login Page Customizer | 39 | 34 | 29 | 3k+ | Unsupported Identifier Placeholder | ||
| #1144 | WP Sitemap Control | 39 | 31 | 37 | 400 | Output is not escaped | ||
| #1145 | You can quote me on that | 39 | 57 | 37 | 500 | Output is not escaped | ||
| #1146 | Address Autocomplete Anything | 40 | 94 | 32 | 900 | Unsafe printing function | ||
| #1147 | Bubble Menu – Floating Button Menu with Sticky Navigation | 40 | 2 | 216 | 1k+ | Nonce verification recommended | ||
| #1148 | Buy one Get one Free – BOGO discount rule maker for WooCommerce | 40 | 119 | 57 | 400 | Text Domain Mismatch | ||
| #1149 | Categories Metabox Enhanced | 40 | 77 | 36 | 1k+ | Output is not escaped | ||
| #1150 | Cron Logger | 40 | 49 | 36 | 1k+ | Output is not escaped |