function update_schedule()
 {
     $sch_id = isset($_POST['schedule_id']) ? $_POST['schedule_id'] : 0;
     $sch_id = sanitize_text_field(urldecode($sch_id));
     $options = isset($_POST['options']) ? unserialize(base64_decode($_POST['options'])) : false;
     if (!is_array($options) || empty($options) || empty($sch_id)) {
         return array('error' => 'Error: Schedule data');
     }
     $current_value = get_option('hmbkp_schedule_' . $sch_id);
     if (is_array($current_value) && isset($current_value['excludes'])) {
         // do not update 'excludes' value
         $options['excludes'] = $current_value['excludes'];
     }
     $out = array();
     if (is_array($options)) {
         update_option('hmbkp_schedule_' . $sch_id, $options);
         $out['result'] = 'SUCCESS';
     } else {
         $out['result'] = 'NOTCHANGE';
     }
     $schedule = new HM\BackUpWordPress\Scheduled_Backup($sch_id);
     if (!empty($options['reoccurrence']) && !empty($options['schedule_start_time'])) {
         // Calculate the start time depending on the recurrence
         $start_time = $options['schedule_start_time'];
         if ($start_time) {
             $schedule->set_schedule_start_time($start_time);
         }
     }
     if (!empty($options['reoccurrence'])) {
         $schedule->set_reoccurrence($options['reoccurrence']);
     }
     $out['next_occurrence'] = $schedule->get_next_occurrence(false);
     return $out;
 }
示例#2
0
/**
 * Setup the default backup schedules
 */
function hmbkp_setup_default_schedules()
{
    $schedules = HM\BackUpWordPress\Schedules::get_instance();
    if ($schedules->get_schedules()) {
        return;
    }
    /**
     * Schedule a database backup daily and store backups
     * for the last 2 weeks
     */
    $database_daily = new HM\BackUpWordPress\Scheduled_Backup((string) time());
    $database_daily->set_type('database');
    $database_daily->set_schedule_start_time(hmbkp_determine_start_time('daily', array('hours' => '23', 'minutes' => '0')));
    $database_daily->set_reoccurrence('daily');
    $database_daily->set_max_backups(7);
    $database_daily->save();
    /**
     * Schedule a complete backup to run weekly and store backups for
     * the last 3 months
     */
    $complete_weekly = new HM\BackUpWordPress\Scheduled_Backup((string) (time() + 1));
    $complete_weekly->set_type('complete');
    $complete_weekly->set_schedule_start_time(hmbkp_determine_start_time('weekly', array('day_of_week' => 'sunday', 'hours' => '3', 'minutes' => '0')));
    $complete_weekly->set_reoccurrence('weekly');
    $complete_weekly->set_max_backups(3);
    $complete_weekly->save();
    $schedules->refresh_schedules();
    add_action('admin_notices', function () {
        echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __('BackUpWordPress has set up your default schedules.', 'backupwordpress') . '</strong> ' . __('By default BackUpWordPress performs a daily backup of your database and a weekly backup of your database &amp; files. You can modify these schedules.', 'backupwordpress') . '</p></div>';
    });
}