' . __('Settings', 'advanced-db-cleaner') . ''; array_unshift($links, $adc_settings_link); return $links; } /******************************************************************** * Add 'Database Cleaner' to Wordpress settings menu ********************************************************************/ add_action('admin_menu', 'adv_db_cleaner_add_admin_menu'); function adv_db_cleaner_add_admin_menu() { $hook_adv_db_cleaner = add_options_page('Advanced DB Cleaner Options', 'Database Cleaner','manage_options', __FILE__, 'adv_db_cleaner_page'); add_action('admin_print_styles-' . $hook_adv_db_cleaner, 'adv_db_cleaner_enqueue_styles'); } /******************************************************************** * Register stylesheet ********************************************************************/ add_action('admin_init', 'adv_db_cleaner_register_styles' ); function adv_db_cleaner_register_styles() { wp_register_style('adv_db_cleaner_css', plugins_url() .'/'. dirname(plugin_basename(__FILE__)) . '/css/style.css'); } /******************************************************************** * nqueue stylesheet ********************************************************************/ function adv_db_cleaner_enqueue_styles() { wp_enqueue_style( 'adv_db_cleaner_css' ); } /****************************************************************************************** * The scheduler * Get more info here: http://codex.wordpress.org/Plugin_API/Filter_Reference/cron_schedules ******************************************************************************************/ add_filter('cron_schedules', 'aDBc_additional_schedules'); function aDBc_additional_schedules($schedules){ // Add weekly schedule $schedules['weekly'] = array( 'interval' => 604800, 'display' => __('Once Weekly') ); // Add monthly schedule $schedules['monthly'] = array( 'interval' => 2635200, 'display' => __('Once a month') ); return $schedules; } // (RE)-schedule tasks after (RE)-activation or update of the plugin register_activation_hook(__FILE__, 'aDBc_activate_plugin'); add_action('aDBc_optimize_scheduler', 'adv_db_cleaner_optimize'); add_action('aDBc_clean_scheduler', 'aDBc_cleanAll'); function aDBc_activate_plugin(){ $aDBc_optimize_schedule = get_option('aDBc_optimize_schedule'); if($aDBc_optimize_schedule && $aDBc_optimize_schedule != 'no_schedule'){ if(!wp_next_scheduled('aDBc_optimize_scheduler')) wp_schedule_event(time()+60, $aDBc_optimize_schedule, 'aDBc_optimize_scheduler'); } $aDBc_clean_schedule = get_option('aDBc_clean_schedule'); if($aDBc_clean_schedule && $aDBc_clean_schedule != 'no_schedule'){ if(!wp_next_scheduled('aDBc_clean_scheduler')) wp_schedule_event(time()+60, $aDBc_clean_schedule, 'aDBc_clean_scheduler'); } } // Clear current scheduled tasks (if any) when deactivated register_deactivation_hook(__FILE__, 'aDBc_deactivate_plugin' ); function aDBc_deactivate_plugin(){ wp_clear_scheduled_hook('aDBc_optimize_scheduler'); wp_clear_scheduled_hook('aDBc_clean_scheduler'); } register_uninstall_hook(__FILE__, 'aDBc_uninstall'); function aDBc_uninstall(){ delete_option('aDBc_optimize_schedule'); delete_option('aDBc_clean_schedule'); wp_clear_scheduled_hook('aDBc_optimize_scheduler'); wp_clear_scheduled_hook('aDBc_clean_scheduler'); } /*************************************************************** * * The admin page content * ***************************************************************/ function adv_db_cleaner_page(){ ?>
' . $adv_db_cleaner_message . '