public function maybe_self_deactivate() { if (!BackUpWordPress_Setup::meets_requirements()) { add_action('admin_init', array('BackUpWordPress_Setup', 'self_deactivate')); add_action('admin_notices', array('BackUpWordPress_Setup', 'display_admin_notices')); } }
/** * Handles anything that needs to be * done when the plugin is updated */ function hmbkp_update() { // Update from backUpWordPress 0.4.5 if (get_option('bkpwp_max_backups')) { // Carry over the custom path if ($legacy_path = get_option('bkpwppath')) { update_option('hmbkp_path', $legacy_path); } // Options to remove $legacy_options = array('bkpwp_archive_types', 'bkpwp_automail_from', 'bkpwp_domain', 'bkpwp_domain_path', 'bkpwp_easy_mode', 'bkpwp_excludelists', 'bkpwp_install_user', 'bkpwp_listmax_backups', 'bkpwp_max_backups', 'bkpwp_presets', 'bkpwp_reccurrences', 'bkpwp_schedules', 'bkpwp_calculation', 'bkpwppath', 'bkpwp_status_config', 'bkpwp_status'); foreach ($legacy_options as $option) { delete_option($option); } global $wp_roles; $wp_roles->remove_cap('administrator', 'manage_backups'); $wp_roles->remove_cap('administrator', 'download_backups'); wp_clear_scheduled_hook('bkpwp_schedule_bkpwp_hook'); } // Version 1 to 2 if (get_option('hmbkp_plugin_version') && version_compare('2.0', get_option('hmbkp_plugin_version'), '>')) { /** * Setup a backwards compatible schedule */ $legacy_schedule = new HMBKP_Scheduled_Backup('backup'); // Backup type if (defined('HMBKP_FILES_ONLY') && HMBKP_FILES_ONLY || get_option('hmbkp_files_only')) { $legacy_schedule->set_type('file'); } elseif (defined('HMBKP_DATABASE_ONLY') && HMBKP_DATABASE_ONLY || get_option('hmbkp_database_only')) { $legacy_schedule->set_type('database'); } else { $legacy_schedule->set_type('complete'); } // Daily schedule time if (defined('HMBKP_DAILY_SCHEDULE_TIME') && HMBKP_DAILY_SCHEDULE_TIME) { $legacy_schedule->set_schedule_start_time(strtotime(HMBKP_DAILY_SCHEDULE_TIME)); } // Backup schedule $legacy_schedule->set_reoccurrence(get_option('hmbkp_schedule_frequency', 'hmbkp_daily')); // Automatic backups disabled? if (defined('HMBKP_DISABLE_AUTOMATIC_BACKUP') && HMBKP_DISABLE_AUTOMATIC_BACKUP || get_option('hmbkp_disable_automatic_backup')) { $legacy_schedule->set_reoccurrence('manually'); } // Max backups if (defined('HMBKP_MAX_BACKUPS') && is_numeric(HMBKP_MAX_BACKUPS)) { $legacy_schedule->set_max_backups((int) HMBKP_MAX_BACKUPS); } else { $legacy_schedule->set_max_backups((int) get_option('hmbkp_max_backups', 10)); } // Excludes if (get_option('hmbkp_excludes')) { $legacy_schedule->set_excludes(get_option('hmbkp_excludes')); } // Backup email if (defined('HMBKP_EMAIL') && is_email(HMBKP_EMAIL)) { $legacy_schedule->set_service_options('HMBKP_Email_Service', array('email' => HMBKP_EMAIL)); } elseif (is_email(get_option('hmbkp_email_address'))) { $legacy_schedule->set_service_options('HMBKP_Email_Service', array('email' => get_option('hmbkp_email_address'))); } // Set the archive filename to what it used to be $legacy_schedule->set_archive_filename(implode('-', array(get_bloginfo('name'), 'backup', date('Y-m-d-H-i-s', current_time('timestamp')))) . '.zip'); $legacy_schedule->save(); // Remove the legacy options foreach (array('hmbkp_database_only', 'hmbkp_files_only', 'hmbkp_max_backups', 'hmbkp_email_address', 'hmbkp_email', 'hmbkp_schedule_frequency', 'hmbkp_disable_automatic_backup') as $option_name) { delete_option($option_name); } } // Update from 2.2.4 if (get_option('hmbkp_plugin_version') && version_compare('2.2.5', get_option('hmbkp_plugin_version'), '>')) { $schedules = HMBKP_Schedules::get_instance(); // Loop through all schedules and re-set the reccurrence to include hmbkp_ foreach ($schedules->get_schedules() as $schedule) { $reoccurrence = $schedule->get_reoccurrence(); if ($reoccurrence !== 'manually' && strpos($reoccurrence, 'hmbkp_') === false) { $schedule->set_reoccurrence('hmbkp_' . $schedule->get_reoccurrence()); } $schedule->save(); } } // Update from 2.x to 3.0 if (get_option('hmbkp_plugin_version') && version_compare('2.0', get_option('hmbkp_plugin_version'), '>')) { // Remove the plugin data cache delete_transient('hmbkp_plugin_data'); } // Update to 3.1 if (get_option('hmbkp_plugin_version') && version_compare('3.0', get_option('hmbkp_plugin_version'), '>')) { // Remove the plugin data cache delete_option('hmbkp_path'); delete_option('hmbkp_default_path'); } // Every update if (get_option('hmbkp_plugin_version') && version_compare(BackUpWordPress_Plugin::PLUGIN_VERSION, get_option('hmbkp_plugin_version'), '>')) { BackUpWordPress_Setup::deactivate(); HMBKP_Path::get_instance()->protect_path('reset'); } // Update the stored version if (get_option('hmbkp_plugin_version') !== BackUpWordPress_Plugin::PLUGIN_VERSION) { update_option('hmbkp_plugin_version', BackUpWordPress_Plugin::PLUGIN_VERSION); } }