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.

medium weight

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.

Affected Plugins

RankPluginScoreErrorsWarningsInstallsAddedUpdatedTop Issue
#1151Hostinger Reach – AI-Powered Email Marketing for WordPress409461m+Direct Query
#1152JSM Show Order Metadata for WooCommerce HPOS401764700Nonce verification recommended
#1153JSM Show Post Metadata40156610k+Nonce verification recommended
#1154JSM Show Term Metadata401464900Nonce verification recommended
#1155JSM Show User Metadata4014643k+Nonce verification recommended
#1156Give – Paystack Gateway4096101k+Text Domain Mismatch
#1157Requirements Checklist4020022900Output is not escaped
#1158Responsive Plus – Elementor Templates & Starter Sites404630510k+Non-prefixed global variable
#1159LazyLoad Plugin – Lazy Load Images, Videos, and Iframes403117100k+Output is not escaped
#1160ST Demo Importer402775700Missing nonce verification
#1161Timed Content4076635k+Unsafe printing function
#1162Widget Builder404052500Non-prefixed global variable
#1163NP Quote Request for WooCommerce40911459k+Non-prefixed global variable
#1164AffiliateWP – Affiliate Product Rates4184242k+Output is not escaped
#1165Schema – All In One Schema Rich Snippets4159818030k+Text Domain Mismatch
#1166BuddyPress Xprofile Custom Field Types41391894k+Missing nonce verification
#1167BuddyPress Edit Activity412826800Output is not escaped
#1168Social Sharing Plugin – Kiwi4123804k+Non-prefixed global variable
#1169Ally – Web Accessibility & Usability414735500k+Output is not escaped
#1170Simple Revision Control4134431k+Dynamic hook name
#1171Admin Options Pages423284500Nonce verification recommended
#1172Post Grid Master — Post Grids & AJAX Filters42441151k+Non-prefixed global variable
#1173Cronjob Scheduler4220361k+Input is not sanitized
#1174Custom Admin Page by BestWebSoft – Configurable WordPress Dashboard Pages Plugin42472181400Text Domain Mismatch
#1175Custom Login423611610k+Non-prefixed global variable
#1176LH Page Links To422538500Output is not escaped
#1177Product Price History for WooCommerce42101800Nonce verification recommended
#1178Vast Demo Import42180113600Text Domain Mismatch
#1179Dynamic Remarketing for Google Ads and WooCommerce4232152k+Output is not escaped
#1180WP Before After Image Slider – Interactive Image and Video Comparison Plugin for WordPress42112171k+Text Domain Mismatch
#1181Eventin – Event Calendar, Event Registration, Tickets & Booking (AI Powered)422,5831,82310k+Text Domain Mismatch
#1182WP Widget Clipboard – Duplicate widgets intuitively425119800Output is not escaped
#1183AMP4363362400k+Non-prefixed hook name
#1184Checkout Upsell Funnel for WooCommerce446244600Non-prefixed global variable
#1185Simple Image Widget44261910k+Unsafe printing function
#1186Contact Details4543291k+Non Singular String Literal Text
#1187Jetpack Search459254265k+Text Domain Mismatch
#1188Passwords Evolved4526171k+Output is not escaped
#1189WP OpenAPI452622400Output is not escaped
#1190Easy Subscribe46132700Direct Query
#1191Podcast Player – Your Podcasting Companion461413310k+Non-prefixed global variable
#1192Simple Sitemap – Create a Responsive HTML Sitemap46334860k+Non-prefixed hook name
#1193Updater by BestWebSoft464942192k+Text Domain Mismatch
#1194AffiliateWP Checkout Referrals474826600Output is not escaped
#1195Real Media Library: Media Library Folder & File Manager471365100k+Direct Query
#1196Better Usability for WooCommerce472787800Non-prefixed hook name
#1197iControlWP4745591k+Missing direct file access protection
#1198AffiliateWP – Store Credit484721400Output is not escaped
#1199Jetpack Social4882925430k+Text Domain Mismatch
#1200Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories4863273100k+Non-prefixed global variable