[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fkaBybGSYNLG9ehqdVKexOsCUssvP2y9tz1_3L4Jincw":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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":24,"download_link":25,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":138,"fingerprints":336},"oik-bwtrace","oik bwtrace","4.1.0","bobbingwide","https:\u002F\u002Fprofiles.wordpress.org\u002Fbobbingwide\u002F","\u003Cul>\n\u003Cli>The primary purpose of debug trace is to help in the development of PHP code: plugins or themes.\u003C\u002Fli>\n\u003Cli>The primary purpose of action trace is to help you understand the sequence of events in the server.\u003C\u002Fli>\n\u003Cli>The primary purpose of ad hoc tracing is to let you see what’s happening without changing any code.\u003C\u002Fli>\n\u003Cli>The primary purpose of ‘string watch’ is to track the source of some output.\u003C\u002Fli>\n\u003Cli>This plugin provides the admin interface to trace functions and methods and action and filter tracing.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>oik bwtrace does not alter the output of your web pages though there are options\u003Cbr \u002F>\nwhich cause some output to be written to the browser during ‘shutdown’ processing.\u003C\u002Fp>\n\u003Cp>You can also use the oik trace facilities to assist in problem determination in a live site.\u003Cbr \u002F>\nOutput is written to files on the server in a user defined trace files directory.\u003Cbr \u002F>\nWhen tracing a live or staging site you should ensure that the trace files directory is not publicly accessible.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Traces to a defined Trace files directory\u003C\u002Fli>\n\u003Cli>Traces ALL server functionality, including AJAX, REST and other background requests\u003C\u002Fli>\n\u003Cli>Writes summary trace record for each transaction into Daily Trace summary files\u003C\u002Fli>\n\u003Cli>Traces browser transactions separately, if required\u003C\u002Fli>\n\u003Cli>Traces AJAX transactions separately, if required \u003C\u002Fli>\n\u003Cli>Traces REST requests separately, if required\u003C\u002Fli>\n\u003Cli>Traces CLI requests separately, if required\u003C\u002Fli>\n\u003Cli>Ability to choose the IP address to trace, defaults to ALL requests\u003C\u002Fli>\n\u003Cli>Supports ad hoc tracing of user defined hooks\u003C\u002Fli>\n\u003Cli>Action trace counts help you understand the sequence of actions and filters\u003C\u002Fli>\n\u003Cli>Provides contextual information\u003C\u002Fli>\n\u003Cli>Minimum performance overhead when tracing is not enabled\u003C\u002Fli>\n\u003Cli>Tracing can be enabled programmatically\u003C\u002Fli>\n\u003Cli>Traces and backtraces PHP Error, Warning and Notice messages\u003C\u002Fli>\n\u003Cli>Backtraces deprecated logic messages\u003C\u002Fli>\n\u003Cli>Does not require WP_DEBUG to be defined\u003C\u002Fli>\n\u003Cli>Does not require SAVEQUERIES to be defined\u003C\u002Fli>\n\u003Cli>Dynamically activates trace functions\u003C\u002Fli>\n\u003Cli>Implemented as lazy just-in-time code\u003C\u002Fli>\n\u003Cli>Can be used during regression testing\u003C\u002Fli>\n\u003Cli>Can be activated in wp-config.php and db.php to trace code before WordPress is fully loaded\u003C\u002Fli>\n\u003Cli>Plugin does not need to be activated if started programmatically or from wp-config.php\u003C\u002Fli>\n\u003Cli>Operates as a standalone plugin\u003C\u002Fli>\n\u003Cli>Integrated with oik-lib shared library management\u003C\u002Fli>\n\u003Cli>Easy to code APIs: bw_trace2(), bw_backtrace().\u003C\u002Fli>\n\u003Cli>API supports multiple trace levels\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Ad hoc tracing allows you to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>trace parameters\u003C\u002Fli>\n\u003Cli>trace results\u003C\u002Fli>\n\u003Cli>trace registered functions\u003C\u002Fli>\n\u003Cli>trace the global post\u003C\u002Fli>\n\u003Cli>set the priority for the trace hook\u003C\u002Fli>\n\u003Cli>debug backtrace hook invocation\u003C\u002Fli>\n\u003Cli>perform ‘string watch’ to watch for a particular string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The trace record output can include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fully qualified source file name\u003C\u002Fli>\n\u003Cli>Trace record count and trace error count\u003C\u002Fli>\n\u003Cli>Time stamp\u003C\u002Fli>\n\u003Cli>Current filter information\u003C\u002Fli>\n\u003Cli>Hook count\u003C\u002Fli>\n\u003Cli>Number of database queries that have been performed.\u003C\u002Fli>\n\u003Cli>Current post ID\u003C\u002Fli>\n\u003Cli>Current and peak memory usage (in bytes)\u003C\u002Fli>\n\u003Cli>Files loaded count\u003C\u002Fli>\n\u003Cli>Contextual information\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The output for action tracing can include trace records showing:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Count of action hooks and filters\u003C\u002Fli>\n\u003Cli>Invocation of the ‘wp’ actions\u003C\u002Fli>\n\u003Cli>Contents of the global wp_rewrite for the ‘wp’ action\u003C\u002Fli>\n\u003Cli>Summary reports at ‘shutdown’\u003C\u002Fli>\n\u003Cli>Information about deprecated logic\u003C\u002Fli>\n\u003Cli>Information related to Errors, Warnings and Notices\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>New in v3.4.0\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Experimental Performance trace option\u003C\u002Fli>\n\u003Cli>Experimental front end links to trace file and daily trace summary\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Is there a tutorial?\u003C\u002Fh3>\n\u003Cp>See this page and short video\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.oik-plugins.com\u002Fwordpress-plugins-from-oik-plugins\u002Ffree-oik-plugins\u002Foik-trace-plugin\u002Fan-introduction-to-problem-determination-with-oik-bwtrace-debug-trace-for-wordpress\" rel=\"nofollow ugc\">Introduction to oik-bwtrace\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Can I get support?\u003C\u002Fh4>\n\u003Cp>Use the contact form on the oik-plugins website.\u003C\u002Fp>\n\u003Ch4>How can I contribute?\u003C\u002Fh4>\n\u003Cp>[github bobbingwide oik-bwtrace]\u003C\u002Fp>\n\u003Ch3>Further reading\u003C\u002Fh3>\n\u003Cp>If you want to read more about the oik plugins then please visit the\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.oik-plugins.com\u002Foik\" rel=\"nofollow ugc\">oik plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Cstrong>“the oik plugin – for often included key-information”\u003C\u002Fstrong>\u003C\u002Fp>\n","Debug trace for WordPress, including ad hoc action hook and filter tracing.",20,6153,100,1,"2025-05-10T15:36:00.000Z","6.8.5","5.0","5.6",[20,21,22,23],"ad-hoc-tracing","backtrace","debug","trace","https:\u002F\u002Fwww.oik-plugins.com\u002Foik-plugins\u002Foik-bwtrace","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foik-bwtrace.4.1.0.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},16,6770,97,15,92,"2026-04-04T15:32:48.506Z",[38,58,78,95,112],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":11,"downloaded":46,"rating":13,"num_ratings":47,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":18,"tags":51,"homepage":55,"download_link":56,"security_score":57,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"debug-toolkit","Debug Toolkit","1.0.1","Tonya Mork","https:\u002F\u002Fprofiles.wordpress.org\u002Fhellofromtonya\u002F","\u003Cp>Debug Toolkit makes debugging your code easier and more enjoyable.  It provides you with interactive and helpful tools:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Better PHP error interface from (\u003Ca href=\"http:\u002F\u002Ffilp.github.io\u002Fwhoops\u002F\" rel=\"nofollow ugc\">Whoops\u003C\u002Fa>)\u003C\u002Fli>\n\u003Cli>Better variable inspection – no need to use \u003Ccode>var_dump\u003C\u002Fcode>, \u003Ccode>print_r\u003C\u002Fcode>, or X-debug\u003C\u002Fli>\n\u003Cli>An interactive way to back trace the program’s execution order\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Better PHP Error Interface from Whoops\u003C\u002Fh3>\n\u003Cp>The built-in PHP error container is basic and not as helpful as it could be.  On top of that, it’s rather ugly. Wouldn’t you agree?\u003C\u002Fp>\n\u003Cp>Whoops gives you a cool interface that is helpful, interactive, and quite nice to look at.  Some features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Provides the error message and links to search Google, DuckDuckGo, and Stack Overflow.\u003C\u002Fli>\n\u003Cli>Shows the actual code where the error occurred.\u003C\u002Fli>\n\u003Cli>Provides an interactive call stack.  Click each and the actual code appears in the viewer panel.\u003C\u002Fli>\n\u003Cli>Environment and details including GET Data, POST Data, Files, Cookie, Session, Server\u002FRequest Data, Environment Variables, and Registered Handlers.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>See the tools in action in this video\u003C\u002Fp>\n\u003Cp>\u003Ciframe loading=\"lazy\" title=\"Introducing the Debug Toolkit Plugin for WordPress\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F322351688?dnt=1&app_id=122963\" width=\"750\" height=\"422\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\">\u003C\u002Fiframe>\u003C\u002Fp>\n\u003Ch3>Better Variable Inspection\u003C\u002Fh3>\n\u003Cp>Though X-debug is powerful, it can be difficult to set up and run.  For that reason, it’s common to dump or print out the variable to browser.  But the built-in display for the PHP \u003Ccode>var_dump\u003C\u002Fcode> and \u003Ccode>print_r\u003C\u002Fcode> is basic.\u003C\u002Fp>\n\u003Cp>This plugin includes both two very popular variable dumper tools:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fsymfony.com\u002Fdoc\u002Fcurrent\u002Fcomponents\u002Fvar_dumper.html\" rel=\"nofollow ugc\">VarDumper from Symfony\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fkint-php.github.io\u002Fkint\u002F\" rel=\"nofollow ugc\">Kint – a modern and powerful PHP debugging helper\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>VarDumper provides a simple container that displays where you place it.\u003C\u002Fp>\n\u003Cp>On the other hand, Kint provides a more powerful interface that gives you more information such as printing out the expression that was passed into it, the data type, memory size, and the value.\u003C\u002Fp>\n\u003Cp>To make it even easier, the following utility functions are available for you to use in your code:\u003C\u002Fp>\n\u003Ch4>Available Functions for Inspecting Variable Values\u003C\u002Fh4>\n\u003Cp>Let’s explore the functions that are available for you through this plugin.  We’ll use the variable inspectors to dump \u003Ccode>global $post\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Note: You can pass in any variable or function that returns a value.\u003C\u002Fp>\n\u003Cp>Dumps the given variable(s):\u003C\u002Fp>\n\u003Cpre>\u003Ccode>global $post;\n\n\u002F\u002F VarDumper\nvdump( $post );\n\n\u002F\u002F Kint\ndump( $post );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Dumps the given variable(s) and then exits the program’s execution:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>global $post;\n\n\u002F\u002F VarDumper\nvdump_and_die( $post );\n\n\u002F\u002F Kint\ndump_and_die( $post );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>In addition, there are alias (shorthand) functions available for you if you prefer shorter function names:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>vd()\u003C\u002Fcode> is an alias for \u003Ccode>vdump()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>vdd()\u003C\u002Fcode> and \u003Ccode>vdd()\u003C\u002Fcode> are aliases for \u003Ccode>vdump_and_die()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>d()\u003C\u002Fcode> is an alias for \u003Ccode>dump()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>dd()\u003C\u002Fcode> and \u003Ccode>ddd()\u003C\u002Fcode> are aliases for \u003Ccode>dump_and_die()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Tracing Call Stack\u003C\u002Fh3>\n\u003Cp>When debugging, there are times when you need to see the order in which functions were called that lead to a certain point in the program.  PHP offers a backtrace that traces back the execution order from the point when the function is invoked.\u003C\u002Fp>\n\u003Cp>To make backtracing easier, this plugin provides you with a \u003Ccode>trace()\u003C\u002Fcode> function and combines it with the variable inspect functions.\u003C\u002Fp>\n\u003Cp>For example, if you wanted to trace the call stack to the start of the loop in your theme’s \u003Ccode>functions.php\u003C\u002Fcode> file, you could use this code:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_action( 'loop_start', function() {\n    trace();\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Available Trace Functions\u003C\u002Fh4>\n\u003Cp>Place these functions at the point where you want to trace the call stack.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>trace();\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>trace_vdump();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>vdump()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>trace_dump();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>dump()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>trace_vdump_and_die();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>vdump_and_die()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>trace_dump_and_die();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>dump_and_die()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In addition, there are alias (shorthand) functions available for you if you prefer shorter function names:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tracevd();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>vd()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>traced();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>d()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tracevdd();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>vdd()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tracedd();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>dd()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>tracevddd();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>vddd()\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>traceddd();\u003C\u002Fcode> – Combines \u003Ccode>trace()\u003C\u002Fcode> and \u003Ccode>ddd()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Admin Bar\u003C\u002Fh3>\n\u003Cp>“DEBUG ACTIVE” indicator displays in the WordPress admin bar to alert you when the plugin is active.\u003C\u002Fp>\n","Code debug made easier and more enjoyable.",8785,13,"2019-03-11T15:34:00.000Z","5.1.22","4.9",[21,22,52,53,54],"debugger","print_r","var_dump","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdebug-toolkit","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdebug-toolkit.1.0.1.zip",85,{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":11,"num_ratings":14,"last_updated":68,"tested_up_to":69,"requires_at_least":70,"requires_php":68,"tags":71,"homepage":75,"download_link":76,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":77},"debug-bar-query-tracer","Debug Bar Query Tracer","0.1","Chris M.","https:\u002F\u002Fprofiles.wordpress.org\u002Finxilpro\u002F","\u003Cp>The Debug Bar Query Tracer plugin backtraces all calls to \u003Ccode>WPDB::query()\u003C\u002Fcode> and determines:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>which plugin caused that database query (it ignores all queries that are a part of normal WordPress activity), and\u003C\u002Fli>\n\u003Cli>the function chain that led to that query.  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>It then displays that information on an additional panel in the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fdebug-bar\u002F\" rel=\"ugc\">Debug Bar\u003C\u002Fa>\u003Cbr \u002F>\nplugin (which is required).\u003C\u002Fp>\n","A Debug Bar plugin that lets you trace what plugins are causing database queries.",10,5204,"","3.2.1","3.2",[21,72,73,74],"debug-bar","performance","wpdb","http:\u002F\u002Fcmorrell.com\u002Fopen-source\u002Fwordpress-plugins\u002Fdebug-bar-query-tracer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdebug-bar-query-tracer.0.1.2.zip","2026-03-15T10:48:56.248Z",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":26,"downloaded":86,"rating":26,"num_ratings":26,"last_updated":87,"tested_up_to":16,"requires_at_least":17,"requires_php":88,"tags":89,"homepage":93,"download_link":94,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"notice-trace-log","Notice TraceLog","1.1.0","shuliakmaster","https:\u002F\u002Fprofiles.wordpress.org\u002Fshuliakmaster\u002F","\u003Cp>Notice TraceLog is a lightweight developer tool that displays PHP backtraces when Notices occur, helping you identify and fix issues caused by early execution or translation loading problems. Useful for debugging during plugin and theme development.\u003C\u002Fp>\n","Easily display PHP backtraces when Notices occur. Designed for developers to quickly identify the source of early execution issues in WordPress.",355,"2025-06-25T12:45:00.000Z","7.2",[21,22,90,91,92],"developer","notices","troubleshooting","https:\u002F\u002Fgithub.com\u002Fupandrii\u002Fdebug-backtrace","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnotice-trace-log.1.1.0.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":13,"num_ratings":14,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":68,"tags":108,"homepage":110,"download_link":111,"security_score":57,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"debug-bar-post-meta","Debug Bar Post Meta","0.5.8","Jake Spurlock","https:\u002F\u002Fprofiles.wordpress.org\u002Fwhyisjake\u002F","\u003Cp>This plugin will show you what post meta is attached to the main post.\u003C\u002Fp>\n","Adds a post meta panel for displaying all of the post meta.",40,6026,"2020-08-18T23:31:00.000Z","5.5.18","3.4",[22,109,23],"template","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fdebug-bar-template-trace\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdebug-bar-post-meta.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":122,"num_ratings":123,"last_updated":124,"tested_up_to":125,"requires_at_least":126,"requires_php":127,"tags":128,"homepage":133,"download_link":134,"security_score":135,"vuln_count":136,"unpatched_count":26,"last_vuln_date":137,"fetched_at":28},"wp-crontrol","WP Crontrol","1.21.0","John Blackbourn","https:\u002F\u002Fprofiles.wordpress.org\u002Fjohnbillion\u002F","\u003Cp>WP Crontrol enables you to take control of the scheduled cron events on your WordPress website or WooCommerce store. From the admin screens you can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>View all scheduled cron events along with their arguments, schedule, callback functions, and when they are next due.\u003C\u002Fli>\n\u003Cli>Edit, delete, pause, resume, and immediately run cron events.\u003C\u002Fli>\n\u003Cli>Add new cron events.\u003C\u002Fli>\n\u003Cli>Bulk delete cron events.\u003C\u002Fli>\n\u003Cli>Add and remove custom cron schedules.\u003C\u002Fli>\n\u003Cli>Export and download cron event lists as a CSV file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>WP Crontrol is aware of timezones, will alert you to events that have no actions or that have missed their schedule, and will show you a helpful warning message if it detects any problems with your cron system.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to the \u003Ccode>Tools \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Cron Events\u003C\u002Fcode> menu to manage cron events.\u003C\u002Fli>\n\u003Cli>Go to the \u003Ccode>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Cron Schedules\u003C\u002Fcode> menu to manage cron schedules.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-crontrol.com\u002Fdocs\u002Fhow-to-use\u002F\" rel=\"nofollow ugc\">Extensive documentation on how to use WP Crontrol and how to get help for error messages that it shows is available on the WP Crontrol website\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>For site owners\u003C\u002Fh3>\n\u003Cp>Owners of WordPress websites and WooCommerce stores use WP Crontrol to ensure that scheduled cron events run correctly and efficiently. By providing complete control over cron events, WP Crontrol helps you:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Improve reliability\u003C\u002Fstrong>: Address missed or failed cron events, ensuring your website or WooCommerce store continues to function as expected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Enhance security\u003C\u002Fstrong>: Monitor and control cron events to ensure automatic update checks are performed as they should.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Simplify management\u003C\u002Fstrong>: Add, edit, delete, and pause cron events from a user-friendly interface, without needing to write any code.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Gain insights\u003C\u002Fstrong>: Export cron event data for analysis or reporting.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Action Scheduler compatibility\u003C\u002Fstrong>: Full support for the Action Scheduler system in WooCommerce, which is used to process recurring payments, subscriptions, and background orders.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clarity of times and timezones\u003C\u002Fstrong>: All times are shown with a clear and accurate indication of which timezone applies. No more guesswork!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>For developers\u003C\u002Fh3>\n\u003Cp>Developers use WP Crontrol to streamline and debug their WordPress development process:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Enhanced debugging\u003C\u002Fstrong>: Identify and troubleshoot issues with scheduled tasks, ensuring your scheduled events and their callbacks run as expected.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom schedules\u003C\u002Fstrong>: Create and manage custom cron schedules to fit the specific needs of your website, plugins, or themes, providing greater flexibility than just the core schedules.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Efficient workflow\u003C\u002Fstrong>: Add, edit, and delete cron events directly from the WordPress admin interface, saving time and reducing the need for manual coding.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Insightful monitoring\u003C\u002Fstrong>: Get insight into the performance and behavior of your scheduled tasks, allowing for optimization and better resource management.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Accurate debugging\u003C\u002Fstrong>: WP Crontrol goes to great lengths to ensure that running an event manually does so in a manner which exactly matches how WordPress core runs schdeuled events. This ensures that you can debug events accurately and with confidence.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Plugins\u003C\u002Fh3>\n\u003Cp>I maintain several other plugins for developers. Check them out:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fquery-monitor\u002F\" rel=\"ugc\">Query Monitor\u003C\u002Fa> is the developer tools panel for WordPress.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fuser-switching\u002F\" rel=\"ugc\">User Switching\u003C\u002Fa> provides instant switching between user accounts in WordPress.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Statement\u003C\u002Fh3>\n\u003Cp>WP Crontrol is private by default and always will be. It does not send data to any third party, nor does it include any third party resources. \u003Ca href=\"https:\u002F\u002Fwp-crontrol.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">WP Crontrol’s full privacy statement can be found here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Accessibility Statement\u003C\u002Fh3>\n\u003Cp>WP Crontrol aims to be fully accessible to all of its users. \u003Ca href=\"https:\u002F\u002Fwp-crontrol.com\u002Faccessibility\u002F\" rel=\"nofollow ugc\">WP Crontrol’s full accessibility statement can be found here\u003C\u002Fa>.\u003C\u002Fp>\n","WP Crontrol enables you to take control of the cron events on your WordPress website.",300000,7578206,90,163,"2026-01-28T21:40:00.000Z","6.9.4","6.4","7.4",[129,130,22,131,132],"cron","crontrol","woocommerce","wp-cron","https:\u002F\u002Fwp-crontrol.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-crontrol.1.21.0.zip",96,3,"2025-08-21 00:00:00",{"attackSurface":139,"codeSignals":304,"taintFlows":323,"riskAssessment":324,"analyzedAt":335},{"hooks":140,"ajaxHandlers":300,"restRoutes":301,"shortcodes":302,"cronEvents":303,"entryPointCount":26,"unprotectedCount":26},[141,148,153,157,160,164,167,170,173,177,181,185,189,192,196,199,202,204,207,212,216,219,222,225,227,232,236,241,244,246,250,253,257,259,263,268,272,276,279,283,286,289,292,296],{"type":142,"name":143,"callback":144,"priority":145,"file":146,"line":147},"action","shutdown","record_vt",11,"admin\\class-oik-trace-summary.php",57,{"type":142,"name":149,"callback":150,"priority":66,"file":151,"line":152},"activated_plugin","bw_this_plugin_first","admin\\oik-bwtrace.php",33,{"type":142,"name":154,"callback":155,"file":151,"line":156},"admin_print_styles-settings_page_bw_trace_options","bw_action_enqueue_styles",61,{"type":142,"name":158,"callback":155,"file":151,"line":159},"admin_print_styles-settings_page_bw_action_options",71,{"type":142,"name":161,"callback":162,"priority":66,"file":151,"line":163},"update_option_bw_trace_files_options","bw_trace_update_option_sync",496,{"type":142,"name":165,"callback":162,"priority":66,"file":151,"line":166},"update_option_bw_trace_options",497,{"type":142,"name":168,"callback":162,"priority":66,"file":151,"line":169},"update_option_bw_action_options",498,{"type":142,"name":171,"callback":162,"priority":66,"file":151,"line":172},"update_option_bw_summary_options",499,{"type":142,"name":174,"callback":175,"priority":66,"file":176,"line":35},"deprecated_constructor_run","bw_trace_deprecated_constructor_run","includes\\bwtrace-actions.php",{"type":142,"name":178,"callback":179,"priority":66,"file":176,"line":180},"deprecated_argument_run","bw_trace_deprecated_argument_run",93,{"type":142,"name":182,"callback":183,"priority":66,"file":176,"line":184},"deprecated_file_included","bw_trace_deprecated_file_included",94,{"type":142,"name":186,"callback":187,"priority":66,"file":176,"line":188},"deprecated_function_run","bw_trace_deprecated_function_run",95,{"type":142,"name":190,"callback":191,"priority":66,"file":176,"line":135},"doing_it_wrong_run","bw_trace_doing_it_wrong_run",{"type":193,"name":194,"callback":195,"priority":66,"file":176,"line":33},"filter","deprecated_argument_trigger_error","bw_trace_deprecated_argument_trigger_error",{"type":193,"name":197,"callback":195,"priority":66,"file":176,"line":198},"deprecated_constructor_trigger_error",98,{"type":193,"name":200,"callback":195,"priority":66,"file":176,"line":201},"deprecated_file_trigger_error",99,{"type":193,"name":203,"callback":195,"priority":66,"file":176,"line":13},"deprecated_function_trigger_error",{"type":193,"name":205,"callback":195,"priority":66,"file":176,"line":206},"doing_it_wrong_trigger_error",101,{"type":193,"name":208,"callback":209,"priority":210,"file":176,"line":211},"rest_pre_echo_response","bw_trace_rest_pre_echo_response",9999,480,{"type":142,"name":213,"callback":214,"file":176,"line":215},"plugin_loaded","bw_trace_time_plugin_loaded",491,{"type":142,"name":217,"callback":214,"file":176,"line":218},"mu_plugin_loaded",492,{"type":142,"name":220,"callback":214,"file":176,"line":221},"network_plugin_loaded",493,{"type":142,"name":223,"callback":214,"file":176,"line":224},"plugins_loaded",495,{"type":142,"name":226,"callback":214,"file":176,"line":166},"muplugins_loaded",{"type":142,"name":228,"callback":229,"priority":210,"file":230,"line":231},"all","bw_trace_anychange","includes\\bwtrace-anychange.php",88,{"type":142,"name":228,"callback":233,"priority":210,"file":234,"line":235},"bw_trace_stringwatch","includes\\bwtrace-stringwatch.php",113,{"type":142,"name":143,"callback":237,"priority":238,"file":239,"line":240},"shutdown_performance_trace",9,"includes\\class-BW-trace-controller.php",70,{"type":142,"name":228,"callback":242,"file":239,"line":243},"set_trace_hook_count",87,{"type":142,"name":223,"callback":245,"file":239,"line":211},"bw_trace_plugin_paths",{"type":142,"name":228,"callback":247,"priority":66,"file":248,"line":249},"bw_trace_count_all","includes\\oik-action-counts.php",74,{"type":142,"name":143,"callback":251,"priority":201,"file":248,"line":252},"bw_trace_count_report",75,{"type":142,"name":223,"callback":254,"file":255,"line":256},"bw_trace_count_plugins_loaded","oik-bwtrace.php",120,{"type":142,"name":226,"callback":254,"file":255,"line":258},121,{"type":142,"name":260,"callback":261,"priority":238,"file":255,"line":262},"wp_loaded","oik_bwtrace_plugins_loaded",129,{"type":193,"name":264,"callback":265,"priority":266,"file":255,"line":267},"oik_query_libs","oik_bwtrace_query_libs",12,130,{"type":193,"name":269,"callback":270,"priority":210,"file":255,"line":271},"determine_locale","bw_trace_determine_locale",140,{"type":142,"name":273,"callback":274,"file":255,"line":275},"admin_menu","bw_trace_options_add_page",172,{"type":142,"name":273,"callback":277,"file":255,"line":278},"bw_action_options_add_page",173,{"type":142,"name":280,"callback":281,"file":255,"line":282},"admin_init","bw_trace_options_init",179,{"type":142,"name":280,"callback":284,"file":255,"line":285},"bw_action_options_init",180,{"type":142,"name":280,"callback":287,"file":255,"line":288},"bw_summary_options_init",181,{"type":142,"name":280,"callback":290,"file":255,"line":291},"bw_trace_options_sync",182,{"type":142,"name":293,"callback":294,"file":255,"line":295},"oik_admin_menu","oik_bwtrace_admin_menu",193,{"type":142,"name":297,"callback":298,"priority":145,"file":255,"line":299},"oik_add_shortcodes","oik_bwtrace_add_shortcodes",195,[],[],[],[],{"dangerousFunctions":305,"sqlUsage":306,"outputEscaping":308,"fileOperations":145,"externalRequests":26,"nonceChecks":26,"capabilityChecks":26,"bundledLibraries":322},[],{"prepared":26,"raw":26,"locations":307},[],{"escaped":26,"rawEcho":309,"locations":310},4,[311,314,317,320],{"file":234,"line":312,"context":313},171,"raw output",{"file":315,"line":316,"context":313},"includes\\class-trace-file-selector.php",458,{"file":318,"line":319,"context":313},"includes\\oik-actions.php",874,{"file":318,"line":321,"context":313},890,[],[],{"summary":325,"deductions":326},"The plugin \"oik-bwtrace\" v4.1.0 exhibits a mixed security posture. On one hand, the absence of known vulnerabilities and the use of prepared statements for all SQL queries are positive indicators. The plugin also does not appear to have a significant attack surface through AJAX handlers, REST API routes, shortcodes, or cron events, and there are no reported taint flows, which are all strong points.\n\nHowever, significant concerns arise from the static analysis. The fact that 100% of the total outputs are not properly escaped presents a high risk of Cross-Site Scripting (XSS) vulnerabilities. Additionally, the absence of any nonce checks or capability checks on any of the entry points (even though the stated entry points are zero) is a critical oversight, as it means any potential future additions to the attack surface would likely be unprotected.\n\nWhile the plugin has no recorded vulnerability history, this is likely due to its limited exposure and the current lack of a developed attack surface. The lack of escaping and authorization checks are fundamental security practices that are missing, making the plugin inherently vulnerable to exploitation should an entry point be utilized or introduced. The overall risk is moderate to high due to the critical unescaped output issue and the lack of authorization checks.",[327,330,333],{"reason":328,"points":329},"Unescaped output detected",8,{"reason":331,"points":332},"No nonce checks on any entry points",5,{"reason":334,"points":332},"No capability checks on any entry points","2026-03-16T22:51:25.479Z",{"wat":337,"direct":346},{"assetPaths":338,"generatorPatterns":341,"scriptPaths":342,"versionParams":343},[339,340],"\u002Fwp-content\u002Fplugins\u002Foik-bwtrace\u002Fcss\u002Fbw-trace.css","\u002Fwp-content\u002Fplugins\u002Foik-bwtrace\u002Fjs\u002Fbw-trace.js",[],[340],[344,345],"oik-bwtrace\u002Fcss\u002Fbw-trace.css?ver=","oik-bwtrace\u002Fjs\u002Fbw-trace.js?ver=",{"cssClasses":347,"htmlComments":350,"htmlAttributes":353,"restEndpoints":357,"jsGlobals":359,"shortcodeOutput":363},[348,349],"bw-trace-enabled","bw-trace-status",[351,352],"\u003C!-- oik-bwtrace -->","\u003C!-- BW trace -->",[354,355,356],"data-bw_trace_level","data-bw_trace_status","data-bw_trace_output",[358],"\u002Fwp-json\u002Foik-bwtrace\u002Fv1\u002Ftrace",[360,361,362],"bw_trace_options","bw_trace_enabled","bw_trace_settings",[364,365,366],"[bw_trace]","[bw_trace_output]","[bw_trace_status]"]