<?php /* Plugin Name: WP-Cron-Dashboard Plugin URI: http:// Description: Author: Martin Cleaver and Joost de Valk Version: 1.0 Author URI: http://martin.cleaver.org/ Author URI: http://www.joostdevalk.nl/ */ // Based on http://blog.slaven.net.au/archives/2007/02/01/timing-is-everything-scheduling-in-wordpress/ function wp_cron_add_pages($s) { add_submenu_page('index.php', 'wp-cron', 'WP-Cron', 1, __FILE__, 'wp_cron_menu'); return $s; } add_action('admin_menu', 'wp_cron_add_pages'); function wp_cron_menu() { if (isset($_POST['submit'])) { wp_unschedule_event($_POST['time'], $_POST['procname']); $success = true; } echo '<div class="wrap">'."\n"; echo '<h2>Overview of tasks scheduled for WP-Cron</h2>'."\n"; if ($success) { echo "Sucessfully unscheduled ".$_POST['procname']."<br/>\n"; } global $wp_filter; print mrjc_show_cron_schedules(); echo '<br/>'."\n"; echo "Current date/time is: ".strftime("%c",time()); echo "</div>"; } function mrjc_show_cron_schedules() { $timeslots = _get_cron_array(); if ( empty($timeslots) ) { return $ans+"Nothing scheduled"; } $ans = ''; $count = 1; foreach ( $timeslots as $time => $tasks ) { $ans .= "Entry #$count: Anytime after ".strftime("%c",$time)." execute tasks: "; foreach ($tasks as $procname => $task) { $ans .= $procname." \n"; // Add in delete button for each entry. $ans .= '<form method="post">'."\n".'<input type="hidden" name="procname" value="'.$procname.'"/>'."\n"; $ans .= '<input type="hidden" name="time" value="'.$time.'"/>'."\n"; $ans .= '<input name="submit" style="float:right; margin-top: -20px;" type="submit" value="Delete"/>'."\n".'</form>'."\n"; $count++; } $ans .= "<br/>\n"; } return $ans; } ?>