[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fHNUSzs7ADvh7okuYa5AeoHca9GhjPSwmKsRMX3WN5lI":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":36,"analysis":123,"fingerprints":198},"captain-hooks","Captain Hooks","1.0.2","David Beja","https:\u002F\u002Fprofiles.wordpress.org\u002Fdbeja\u002F","\u003Cp>Captain Hooks is a robust WordPress plugin designed to give developers an in-depth look at all the hooks available in their WordPress environment. Explore actions, filters, and shortcodes like never before!\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Comprehensive Hook Listing\u003C\u002Fstrong>: Easily list and search all hooks (actions and filters) across any theme or plugin installed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode Insight\u003C\u002Fstrong>: View all shortcodes, along with their parameters.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Code Implementation Viewer\u003C\u002Fstrong>: Quickly pinpoint where the hooks and shortcodes are implemented within the code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Sample Codes\u003C\u002Fstrong>: Not sure how to use a hook? Get code samples instantly.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Live Mode\u003C\u002Fstrong>: An advanced feature to monitor actions or filters in real-time and log all its parameters for better debugging.\u003C\u002Fli>\n\u003C\u002Ful>\n","Captain Hooks is a WordPress plugin that provides developers with a comprehensive view of all actions, filters, and shortcodes of their environment.",10,1396,0,"2025-03-10T17:17:00.000Z","6.7.5","5.7","7.2",[19,20,21,22,23],"actions","admin","filters","hooks","shortcodes","https:\u002F\u002Fgithub.com\u002Fdbkode\u002Fcaptain-hooks","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcaptain-hooks.1.0.2.zip",92,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"dbeja",3,30,88,"2026-04-04T00:53:12.189Z",[37,60,77,92,108],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":33,"downloaded":45,"rating":46,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":57,"download_link":58,"security_score":59,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"facetwp-manipulator","FacetWP Manipulator","1.0.0","David Cramer","https:\u002F\u002Fprofiles.wordpress.org\u002Fdesertsnowman\u002F","\u003Cp>FacetWP comes with many filters which gives you the power to mould it to your needs. Generally, you would code these filters into your child theme in the functions.php file. This has drawbacks, however. If you do not use a child theme or you change to a new theme, you stand to loose functionality on updates.\u003C\u002Fp>\n\u003Cp>FacetWP Manipulator allows you to add code to specific filters to manipulate functionality without hard coding it to the themes files. This means that your functionality via filters can be activated or deactivated without touching the file system.\u003C\u002Fp>\n","FacetWP Manipulator allows you to add code to specific FacetWP filters and Actions to manipulate functionality without hard coding it to the theme.",6111,100,1,"2017-01-17T23:45:00.000Z","4.7.32","3.6","",[53,54,55,56],"facetwp","facetwp-actions","facetwp-filters","facetwp-hooks","https:\u002F\u002Fcramer.co.za","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffacetwp-manipulator.1.0.0.zip",85,{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":11,"downloaded":68,"rating":46,"num_ratings":69,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":51,"tags":73,"homepage":75,"download_link":76,"security_score":59,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"prioritize-hooks","Prioritize Hooks","1.2","Jon Weatherhead","https:\u002F\u002Fprofiles.wordpress.org\u002Fjweathe\u002F","\u003Cp>Prioritize Hooks allows the overriding of the priority of various filters and actions hooked by plugins and themes.\u003Cbr \u002F>\nA list of non-core actions and filters registered before the \u003Ccode>admin_init\u003C\u002Fcode> action will be shown in the\u003Cbr \u002F>\nPrioritize Hooks settings page, with the option of overriding the priority of any that you should so wish. At the moment,\u003Cbr \u002F>\nthe hook cannot be changed, just the priority of that callback within its respective hook. Note that priorities will not\u003Cbr \u002F>\nbe overridden until the \u003Ccode>wp_loaded\u003C\u002Fcode> action is run. To disabled a hook, use hyphen(-) as the priority.\u003Cbr \u002F>\nLeave a priority blank to reset it.\u003C\u002Fp>\n","Prioritize Hooks allows the overriding of the priority of various filters and actions hooked by plugins and themes.",2383,2,"2013-12-30T06:10:00.000Z","3.7.41","3.2",[19,21,22,74],"override","http:\u002F\u002Fportfolio.planetjon.ca\u002Fprojects\u002Fprioritize-hooks\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fprioritize-hooks.1.2.zip",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":11,"downloaded":85,"rating":13,"num_ratings":13,"last_updated":51,"tested_up_to":86,"requires_at_least":50,"requires_php":51,"tags":87,"homepage":51,"download_link":90,"security_score":46,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":91},"rtpanel-hooks-editor","rtPanel Hooks Editor","2.5.1","rtCamp","https:\u002F\u002Fprofiles.wordpress.org\u002Frtcamp\u002F","\u003Cp>This plugin is add-on for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fthemes\u002Frtpanel\" title=\"rtPanel Theme Framework\" rel=\"ugc\">rtPanel Theme Framework\u003C\u002Fa> and should be used alongwith it.\u003C\u002Fp>\n\u003Cp>It adds an option page under rtPanel Theme Options, using which, a user can write codes for various action and\u002For filter hooks supported by \u003Ca href=\"https:\u002F\u002Frtcamp.com\u002Frtpanel\u002F\" title=\"rtPanel Theme Framework\" rel=\"nofollow ugc\">rtPanel Theme Framework\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Using this plugin a user need not edit any theme files to achieve desired functionality.\u003C\u002Fp>\n\u003Ch4>Useful Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frtcamp.com\u002Frtpanel\u002Fplugins-list\u002Frtpanel-hooks-editor\u002F\" rel=\"nofollow ugc\">rtPanel Hooks Editor Plugin’s Homepage\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fdocs.rtcamp.com\u002Frtpanel\u002Fdeveloper\u002F\" rel=\"nofollow ugc\">Hooks Reference\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fcommunity.rtcamp.com\u002Fc\u002Frtpanel\" rel=\"nofollow ugc\">Free Support Forum\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin is add-on for [rtPanel Theme Framework](https:\u002F\u002Fwordpress.org\u002Fthemes\u002Frtpanel \"rtPanel Theme Framework\") and should be used along &hellip;",5306,"4.0.38",[19,21,22,88,89],"rtcamp","rtpanel","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frtpanel-hooks-editor.2.5.1.zip","2026-03-15T10:48:56.248Z",{"slug":93,"name":94,"version":63,"author":95,"author_profile":96,"description":97,"short_description":98,"active_installs":11,"downloaded":99,"rating":13,"num_ratings":13,"last_updated":100,"tested_up_to":101,"requires_at_least":102,"requires_php":103,"tags":104,"homepage":106,"download_link":107,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"sectors","Sectors – Conditional Templates & Hooks","Joachim Jensen","https:\u002F\u002Fprofiles.wordpress.org\u002Fintoxstudio\u002F","\u003Cp>Sectors is a first of its kind plugin for WordPress. Create theme templates for any context on your site. Make sure select Actions or Filters are only added when certain conditions are met.\u003C\u002Fp>\n\u003Ch4>Contexts\u003C\u002Fh4>\n\u003Cp>When you add a new sector to your site, you select the content it covers. This could be:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>All posts in a select category\u003C\u002Fli>\n\u003Cli>Pages by an author\u003C\u002Fli>\n\u003Cli>Custom Post Types with a Custom Taxonomy\u003C\u002Fli>\n\u003Cli>…\u003C\u002Fli>\n\u003Cli>Any combination of above\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sectors also comes with built in support for BuddyPress, WPML, Polylang, and more.\u003C\u002Fp>\n\u003Ch4>Templates\u003C\u002Fh4>\n\u003Cp>Sectors will look in your theme folder for the following templates:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>\u002Fsectors\u002F\u003Csector-name>.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>\u002Fsector-\u003Csector-name>.php\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If found, it will be automatically loaded for the context.\u003C\u002Fp>\n\u003Ch4>API\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Template Tags\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Check if a query is part of a given or any sector:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>is_sector(string $sector):boolean\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Get all sectors for current context:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>get_current_sectors():array\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Hooks\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Sectors extends all WordPress Actions and Filters by adding a scope. This means you can add a callback to an action and make sure it’s only executed in a given context:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_sector_action(string $sector, string $tag, callable $function, int $priority = 10, int $accepted_args = 1 )\n\nadd_sector_filter(string $sector, string $tag, callable $function, int $priority = 10, int $accepted_args = 1 )\n\u003C\u002Fcode>\u003C\u002Fpre>\n","What if you could add templates, actions, and filters depending on the context?",1519,"2024-07-28T07:14:00.000Z","6.6.5","4.8","5.6",[19,105,21,22],"conditional-templates","https:\u002F\u002Fdev.institute\u002Fwordpress-sectors\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsectors.zip",{"slug":109,"name":110,"version":40,"author":111,"author_profile":112,"description":113,"short_description":114,"active_installs":13,"downloaded":115,"rating":13,"num_ratings":13,"last_updated":116,"tested_up_to":117,"requires_at_least":118,"requires_php":51,"tags":119,"homepage":121,"download_link":122,"security_score":59,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"action-runner","Action Runner by The Rite Sites","The Rite Sites","https:\u002F\u002Fprofiles.wordpress.org\u002Ftheritesites\u002F","\u003Cp>With the increasing popularity of blocks, developers and store owners alike have been finding some templating features missing normally available through the use of PHP and \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Fhooks\u002F\" rel=\"nofollow ugc\">WordPress Hooks\u003C\u002Fa>.\u003Cbr \u002F>\nThe WordPress community is \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@wordpress\u002Fhooks\" rel=\"nofollow ugc\">hard at work\u003C\u002Fa> to create the extensibility tools and framework that exists in PHP into javascript, but some of the tools are not quite there!\u003C\u002Fp>\n\u003Cp>This plugin creates a couple new shortcodes to help bridge the gap temporarily, as well as help users\u002Fadmins with “templating” without going into your theme or plugins.\u003C\u002Fp>\n\u003Cp>The first shortcode is in relation to \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Fhooks\u002Factions\u002F\" rel=\"nofollow ugc\">WordPress Actions\u003C\u002Fa> and aptly follows the parameter naming convention.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[action_runner_trs name=\"woocommerce_before_cart\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The second shortcode, in relation to \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Fhooks\u002Ffilters\u002F\" rel=\"nofollow ugc\">WordPress Filters\u003C\u002Fa>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[filter_runner_trs name=\"woocommerce_shipping_estimate_html\" content=\"Shipping options will be updated during checkout.\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>There are serious limitations these shortcodes have to offer users. The functions do_action() and apply_filters() can have complex code attached to them, and may rely on global variables that are typically accessible on pages the Hooks have existed on.\u003Cbr \u002F>\nThe code is written in a way that even in the block editor, the shortcodes will not attempt to execute in the administrative side of your website. This is especially notable as the Block Editor attempts to render the code of a shortcode as a preview and writing in the database as post_content.\u003Cbr \u002F>\nWe recommend users to put this plugin on a staging server and do a test of the specific Hooks you would like to use on the applicable page(s) as to not break any user experiences.\u003C\u002Fp>\n\u003Cp>Originally designed to work with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoo-gutenberg-products-block\u002F\" rel=\"ugc\">WooCommerce Blocks\u003C\u002Fa> Cart and Checkout pages, we needed to enable users to have the message that notified users can apply their \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fwoocommerce-points-and-rewards\u002F\" rel=\"nofollow ugc\">Points and Rewards\u003C\u002Fa>,\u003Cbr \u002F>\nit also works with plugins that hook into upsell actions or couponing like \u003Ca href=\"https:\u002F\u002Fwww.theritesites.com\u002Fplugins\u002Fpretty-coupons-for-woocommerce\u002F\" rel=\"nofollow ugc\">Pretty Coupons\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwoocommerce.com\u002Fproducts\u002Fsmart-coupons\u002F\" rel=\"nofollow ugc\">Smart Coupon\u003C\u002Fa>, or even your own custom action, which can be created on the fly!\u003C\u002Fp>\n\u003Cp>This plugin pairs nicely with getting custom solutions to your front end quickly for testing or quick notices on your website, especially when using a snippets plugin.\u003C\u002Fp>\n","New Blocks can often ignore action and filter hooks in php or theme templates. This plugin hopes to solve that using shortcodes!",1098,"2020-11-25T17:57:00.000Z","5.6.17","4.0",[19,21,22,120],"templating","https:\u002F\u002Fwww.theritesites.com\u002Fplugins\u002Faction-runner","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Faction-runner.zip",{"attackSurface":124,"codeSignals":182,"taintFlows":191,"riskAssessment":192,"analyzedAt":197},{"hooks":125,"ajaxHandlers":149,"restRoutes":150,"shortcodes":179,"cronEvents":180,"entryPointCount":181,"unprotectedCount":13},[126,132,137,141,145],{"type":127,"name":128,"callback":129,"file":130,"line":131},"action","init","setup","includes\\Captainhooks.php",33,{"type":133,"name":134,"callback":135,"priority":11,"file":130,"line":136},"filter","script_loader_tag","defer_parsing_of_js",47,{"type":127,"name":138,"callback":139,"file":130,"line":140},"rest_api_init","register_api_routes",50,{"type":127,"name":142,"callback":143,"file":130,"line":144},"admin_menu","add_settings_page",53,{"type":127,"name":146,"callback":147,"file":130,"line":148},"admin_init","register_settings",54,[],[151,159,164,169,174],{"namespace":152,"route":153,"methods":154,"callback":156,"permissionCallback":157,"file":130,"line":158},"captainhooks\u002Fv1","\u002Fhooks",[155],"POST","rest_hooks","closure",101,{"namespace":152,"route":160,"methods":161,"callback":162,"permissionCallback":157,"file":130,"line":163},"\u002Frefresh",[155],"rest_refresh",113,{"namespace":152,"route":165,"methods":166,"callback":167,"permissionCallback":157,"file":130,"line":168},"\u002Fpreview",[155],"rest_preview",125,{"namespace":152,"route":170,"methods":171,"callback":172,"permissionCallback":157,"file":130,"line":173},"\u002Flivemode",[155],"rest_livemode",137,{"namespace":152,"route":175,"methods":176,"callback":177,"permissionCallback":157,"file":130,"line":178},"\u002Flivemode\u002Flogs",[155],"rest_livemode_logs",149,[],[],5,{"dangerousFunctions":183,"sqlUsage":184,"outputEscaping":187,"fileOperations":69,"externalRequests":13,"nonceChecks":13,"capabilityChecks":181,"bundledLibraries":190},[],{"prepared":185,"raw":13,"locations":186},16,[],{"escaped":188,"rawEcho":13,"locations":189},12,[],[],[],{"summary":193,"deductions":194},"The \"captain-hooks\" v1.0.2 plugin exhibits a strong security posture based on the provided static analysis and vulnerability history.  The plugin effectively utilizes prepared statements for all SQL queries and ensures proper output escaping for all identified outputs, mitigating common risks like SQL injection and cross-site scripting.  Furthermore, all REST API routes have permission callbacks, and there are no unauthenticated AJAX handlers, significantly reducing the potential attack surface. The absence of any recorded vulnerabilities, including critical or high-severity ones, further reinforces its good security standing.\n\nWhile the plugin demonstrates excellent security practices in key areas, a notable concern is the complete absence of nonce checks. Nonces are crucial for verifying the intent of requests and preventing CSRF attacks. The plugin also has two file operations, and while their context isn't detailed, any file operations without proper sanitization or validation could potentially introduce risks.  The limited number of REST API routes and absence of AJAX handlers might also suggest a smaller feature set, which could inherently limit the attack surface. Overall, \"captain-hooks\" appears to be a well-secured plugin, with the primary area for improvement being the implementation of nonce checks.",[195],{"reason":196,"points":11},"Missing nonce checks","2026-03-17T01:26:04.371Z",{"wat":199,"direct":206},{"assetPaths":200,"generatorPatterns":202,"scriptPaths":203,"versionParams":204},[201],"\u002Fwp-content\u002Fplugins\u002Fcaptain-hooks\u002Fdist\u002Fcaptainhooks.js",[],[201],[205],"captainhooks.js?ver=",{"cssClasses":207,"htmlComments":208,"htmlAttributes":209,"restEndpoints":210,"jsGlobals":216,"shortcodeOutput":218},[],[],[],[211,212,213,214,215],"\u002Fwp-json\u002Fcaptainhooks\u002Fv1\u002Fhooks","\u002Fwp-json\u002Fcaptainhooks\u002Fv1\u002Frefresh","\u002Fwp-json\u002Fcaptainhooks\u002Fv1\u002Fpreview","\u002Fwp-json\u002Fcaptainhooks\u002Fv1\u002Flivemode","\u002Fwp-json\u002Fcaptainhooks\u002Fv1\u002Flivemode\u002Flogs",[217],"captainHooksData",[]]