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
#1201Easy Updates Manager4813182300k+Non-prefixed global variable
#1202AffiliateWP – Leaderboard4968131k+Output is not escaped
#1203Analytics by BestWebSoft – Google Analytics Dashboard and Statistic Plugin for WordPress494781761k+Text Domain Mismatch
#1204Anti-Spam Protection – No API Key, GDPR Friendly4921061k+Direct Query
#1205Secondary Product Image for WooCommerce4925292k+Output is not escaped
#1206SKT Themes Demo Import492181044k+Text Domain Mismatch
#1207Gateway for Wise on WooCommerce4928301k+Output is not escaped
#1208PDF Invoices & Packing Slips for WooCommerce – Challan49561514k+Non-prefixed global variable
#1209WP Swiper4967285k+Text Domain Mismatch
#1210PostmagThemes Demo Import501911141k+Text Domain Mismatch
#1211Table Addons for Elementor50922920k+wp function not compatible with requires wp
#1212Theme Demo Import50101955k+Non-prefixed hook name
#1213BestWebSoft's Twitter50477174900Text Domain Mismatch
#1214AVIF Uploader5149444k+Missing Arg Domain
#1215Counter Box – Add Countdowns, Timers & Dynamic Counters to WordPress5131161k+Missing nonce verification
#1216Gravatar Enhanced – Avatars, Profiles, and Privacy513848100k+Dynamic hook name
#1217Quotes and Tips by BestWebSoft514851901k+Text Domain Mismatch
#1218StoryChief5112551k+Input is not sanitized
#1219Swift SMTP (formerly Welcome Email Editor)5112627k+Missing nonce verification
#1220REST API Log5144955k+Non-prefixed hook name
#1221YayMail – WooCommerce Email Customizer5116378850k+Non-prefixed global variable
#1222Affiliate Area Shortcodes by AffiliateWP5256162k+Text Domain Mismatch
#1223FakerPress536615210k+Non-prefixed global variable
#1224File Manager53416810k+Missing direct file access protection
#1225REST API Featured Image533416700Output is not escaped
#1226Texty – SMS Notification for WordPress, WooCommerce, Dokan and more5331348k+Output is not escaped
#1227Vibe AI – MCP Server for WordPress. Connect Claude, ChatGPT & Cursor5311552k+Interpolated SQL is not prepared
#1228AffiliateWP – Order Details For Affiliates5462272k+Output is not escaped
#1229Cyr-To-Lat541648300k+Dynamic hook name
#1230PWA — easy way to Progressive Web App5415442k+Dynamic hook name
#1231REST XML-RPC Data Checker541445900Input is not sanitized
#1232YITH Proteo Toolkit54130641k+Text Domain Mismatch
#1233Quick Buy Now Button for WooCommerce5537395k+Output is not escaped
#1234Gutenify – Visual Site Builder Blocks & Site Templates5566405k+Missing Arg Domain
#1235JetWidgets For Elementor559927910k+Non-prefixed global variable
#1236Popup Maker – Boost Sales, Conversions, Optins, Subscribers with the Ultimate WP Popup Builder5554692700k+Non-prefixed hook name
#1237SMTP by BestWebSoft564861751k+Text Domain Mismatch
#1238Fluent Connect – Connect ThriveCart with your WordPress and FluentCRM563754600curl curl setopt
#1239PuzzleMe – Interactive Puzzles for WordPress – Easily publish crosswords, quizzes, word searches and more5636151k+Output is not escaped
#1240BestWebSoft’s Pinterest57490176500Text Domain Mismatch
#1241Gravity PDF5711615220k+Non-prefixed global variable
#1242iConvert Promoter57982171k+Non-prefixed global variable
#1243User Profile Picture57425440k+Non-prefixed hook name
#1244Team View573219900Output is not escaped
#1245Error Log Viewer by BestWebSoft584331726k+Text Domain Mismatch
#1246Responsive Select Menu5829273k+Output is not escaped
#1247REVIEWS.io for WooCommerce58711611k+Non-prefixed global variable
#1248View Admin As583071359k+Non Singular String Literal Domain
#1249Social Media Auto Poster – Schedule & Publish to Buffer58232108k+Dynamic hook name
#1250RevivePress – Keep your Old Content Evergreen5927465k+date date