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
#101Jetpack – WP Security, Backup, Speed, & Growth223,2921,4383m+Text Domain Mismatch
#102LearnPress – WordPress LMS Plugin for Create and Sell Online Courses222,4333,59470k+Non-prefixed global variable
#103Custom Login Page Customizer – Login Designer225881,45530k+Non-prefixed global variable
#104Mail Baby SMTP22385699600SQL query is not prepared
#105MailOptin – Popup, Optin Forms & Email Newsletters for Mailchimp, HubSpot, AWeber Etc.222,6252,45810k+Output is not escaped
#106Modula Image Gallery – Photo Grid & Video Gallery22474437100k+Text Domain Mismatch
#107Molongui Authorship – Author Boxes, Guest Authors & Co-Authors for WordPress229191,23010k+Output is not escaped
#108Motors – Car Dealership & Classified Listings Plugin225,3916,0829k+Text Domain Mismatch
#109MStore API – Create Native Android & iOS Apps On The Cloud226358563k+SQL query is not prepared
#110Simple Newsletter Plugin – Noptin227359910k+Non-prefixed global variable
#111Newsletters222,9772,2612k+Text Domain Mismatch
#112Packeta228013338k+Exception output is not escaped
#113PagBank / PagSeguro Connect para WooCommerce225057574k+Non-prefixed global variable
#114PDF Builder for WPForms22321266900SQL query is not prepared
#115Smart Popup by Supsystic223,02843910k+Non Singular String Literal Domain
#116Post SMTP – Complete Email Deliverability and SMTP Solution with Email Logs, Alerts, Backup SMTP & Mobile App221,5812,326300k+Non-prefixed global variable
#117Product Catalog Feed by PixelYourSite225813578k+Output is not escaped
#118Quick Contact Form222606231k+Non-prefixed function
#119Restrict User Access – Ultimate Membership & Content Protection229771,84010k+Non-prefixed global variable
#120Salon Booking System – Appointment Booking for Salons, Barbershops & Spas221867602k+Non-prefixed global variable
#121Slick Popup: Contact Form 7 Popup Plugin222,3223161k+Text Domain Mismatch
#122SSL Zen — SSL Certificate Installer & HTTPS Redirects227511,60510k+Non-prefixed global variable
#123Swift Performance Lite222,3461,3256k+Text Domain Mismatch
#124Tablesome Table – Contact Form DB – WPForms, CF7, Gravity, Forminator, Fluent222265138k+error log error log
#125Ultimate Carousel For Divi225901,566800Non-prefixed global variable
#126Ultimeter227511,3441k+Non-prefixed global variable
#127Uncanny Toolkit for LearnDash2253999420k+Output is not escaped
#128Unlimited Elements Blocks Library227081,822400Non-prefixed global variable
#129Search & Replace Everything – Quick and Easy Way to Find and Replace Text, Links221,0421,80820k+Non-prefixed global variable
#130UpStream: a Project Management Plugin for WordPress22683703600Non-prefixed global variable
#131Walker Core221,3511,436700Non-prefixed global variable
#132WCFM – Frontend Manager for WooCommerce224,7315,05720k+Non-prefixed global variable
#133Easy Appointment Booking & Scheduling System – Webba Booking Calendar221,6173,3802k+Non-prefixed global variable
#134Fraud Prevention For WooCommerce and EDD225721,3945k+Non-prefixed global variable
#135WooCommerce221,3436,2107m+Non-prefixed global variable
#136Advanced AJAX Product Filters222,8401,25250k+Text Domain Mismatch
#137CoDesigner – All in One Elementor WooCommerce Builder224,1317745k+Text Domain Mismatch
#138Simple Shopping Cart2280054110k+Unsafe printing function
#139WP Affiliate Disclosure221,3581,5041k+Non-prefixed global variable
#140Asset CleanUp: Page Speed Booster222,0302,485100k+Non-prefixed global variable
#141Master Accordion ( Former WP Awesome FAQ Plugin )221,7741,286700Non-prefixed global variable
#142WP Express Checkout (Fast Payments via PayPal & Stripe)225916271k+Output is not escaped
#143WP Umbrella: Security Backup Restore & Monitoring2297099580k+Exception output is not escaped
#144SchedulePress – Auto Post & Publish, Auto Social Share, Schedule Posts with Editorial Calendar & Missed Schedule Post Publisher2231024910k+Output is not escaped
#145NotifSMS – SMS Notifications OTP & 2FA for WordPress & WooCommerce221,3531,4121k+Non-prefixed global variable
#146User Frontend – Membership, User Registration, User Profile, User Directory & Content Restriction with Frontend Post Submission222901,51720k+Non-prefixed global variable
#147WPBITS Addons For Elementor Page Builder229961,3992k+Non-prefixed global variable
#148ShopWP22430225700Text Domain Mismatch
#149WPSSO Core – Complete Schema Markup and Meta Tags221,4084145k+Missing Translators Comment
#150YITH WooCommerce Ajax Search224081,65930k+Non-prefixed global variable