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
#951Before After Image Comparison Slider for WPBakery Page Builder3558591k+Output is not escaped
#952Lord of the Files: Enhanced Upload Security3562421k+Non-prefixed global variable
#953Business Hours Indicator351391068k+Alternative PHP tag found
#954Central Connect35521400Nonce verification recommended
#955CF7 Submissions – Securely Store Contact Form 7 Data and Attachments, Reply to the Sender and more35161192k+Non-prefixed global variable
#956Payment Gateway Based Fees and Discounts for WooCommerce3525911130k+Text Domain Mismatch
#957CiviCRM Admin Utilities3519871k+Non-prefixed hook name
#958CiviCRM Profile Sync3531140500Non-prefixed global variable
#959CM E-Mail Blacklist – Simple email filtering for safer registration35269205800Output is not escaped
#960Cookie Information – Cookie Banner with Consent Mode v235185282k+Output is not escaped
#961Currency per Product for WooCommerce3546242k+Text Domain Mismatch
#962Currency Switcher for WooCommerce3516661800Text Domain Mismatch
#963Custom Order Numbers for WooCommerce3563220k+Non-prefixed hook name
#964Custom Order Status for WooCommerce35415510k+Non-prefixed hook name
#965Customize My Account Page354101k+Dynamic hook name
#966DarkLooks – Dark Mode Switcher For WordPress3519521900Text Domain Mismatch
#967Deposits & Partial Payments for WooCommerce351721445k+Text Domain Mismatch
#968Nexi Checkout35453083k+Dynamic hook name
#969Dintero Checkout for WooCommerce Payment Methods355848600Text Domain Mismatch
#970PiWeb Disable payment method / Partial payment for WooCommerce35552214k+Non-prefixed class
#971Duplica – Duplicate Posts, Pages, Custom Posts or Users3514312k+Non-prefixed global variable
#972Easy Panorama3512010500Non Singular String Literal Domain
#973Easy Post Types and Fields351381351k+Text Domain Mismatch
#974Easy SwipeBox35157102k+Non Singular String Literal Domain
#975Elementor Website Builder – more than just a page builder354642810m+Non-prefixed global variable
#976Elements Hive for Breakdance3576251k+Output is not escaped
#977EWWW Image Optimizer352257291m+Direct Query
#978Export Featured Images35176671k+Output is not escaped
#979Extendify35117168500k+Non-prefixed global variable
#980Reviews Widgets for Google, TripAdvisor, Yelp & Recommendations3525522510k+Output is not escaped
#981Force Reinstall35118342k+Output is not escaped
#982Frontend Reset Password358312810k+Text Domain Mismatch
#983GDPR Compliance & Cookie Consent35251614k+Output is not escaped
#984Give – Divi Donation Modules3528612600Text Domain Mismatch
#985Glossary35169932k+Non Singular String Literal Domain
#986HookMeUp for WooCommerce35592910k+Output is not escaped
#987Inspiro Starter Sites – 20+ Free Demo Templates for Gutenberg & Elementor35620010k+Non-prefixed global variable
#988Kustom Checkout for WooCommerce3510150510k+Dynamic hook name
#989Lead Call Buttons35113816k+Output is not escaped
#990Topic Progression Using Storyline/Captivate for LearnDash3538225400Text Domain Mismatch
#991Less PHP Compiler35163473k+Exception output is not escaped
#992More Widgets3555151k+Output is not escaped
#993mosparo Integration35114301900Missing nonce verification
#994Image Refresh35461k+Dynamic hook name
#995One Page Express Companion351326510k+Output is not escaped
#996Order Delivery Date for WooCommerce352,0607310k+wp function not compatible with requires wp
#997Paybox WooCommerce Payment Gateway3516588500Non Singular String Literal Domain
#998Posts Table with Search & Sort35143333k+Text Domain Mismatch
#999PowerPack Addons for Elementor (Free Widgets, Extensions and Templates)3565680k+Post Not In exclude
#1000Presto Player353777100k+Missing Arg Domain