protected function __construct() { if (false !== get_transient('_my-wp-backup-activated')) { delete_transient('_my-wp-backup-activated'); wp_redirect(Admin::get_page_url('')); } self::$info = get_file_data(__FILE__, array('name' => 'Plugin Name', 'pluginUri' => 'Plugin URI', 'supportUri' => 'Support URI', 'version' => 'Version', 'description' => 'Description', 'author' => 'Author', 'authorUri' => 'Author URI', 'textDomain' => 'Text Domain', 'domainPath' => 'Domain Path', 'slug' => 'Slug', 'license' => 'License', 'licenseUri' => 'License URI')); Admin::get_instance(); $options = get_site_option('my-wp-backup-options', Admin::$options); self::$info['baseDir'] = plugin_dir_path(__FILE__); self::$info['baseDirUrl'] = plugin_dir_url(__FILE__); self::$info['backup_dir'] = trailingslashit(ABSPATH) . trailingslashit(ltrim($options['backup_dir'], '/')); self::$info['root_dir'] = trailingslashit(ABSPATH); if (defined('WP_CLI') && WP_CLI) { \WP_CLI::add_command('job', new Cli\Job()); \WP_CLI::add_command('backup', new Cli\Backup()); } add_action('wp_backup_run_job', array(Job::get_instance(), 'cron_run')); add_action('wp_backup_restore_backup', array(Backup::get_instance(), 'cron_run')); $version = get_site_option(self::KEY_VERSION); if (!$version || self::$info['version'] !== $version) { if ($this->update_options()) { update_site_option(self::KEY_VERSION, self::$info['version']); } } }
/** * Run a job. * @synopsis <id> [--verbose] * * @param $args * @param $assoc * * @return bool */ public function run($args, $assoc) { list($id) = $args; declare (ticks=1); if (function_exists('pcntl_signal')) { pcntl_signal(SIGINT, function () { echo 'woops' . "\n"; delete_transient('my-wp-backup-running'); exit; }); } $job = \MyWPBackup\Admin\Job::get_instance(); $job->cron_run(array($id, uniqid(), isset($assoc['verbose']))); return true; }
public function init() { wp_cache_add_non_persistent_groups('my-wp-backup'); add_action('admin_post_MyWPBackup_settings', array($this, 'post_settings')); add_action('admin_post_MyWPBackup_import', array($this, 'post_import')); add_action(is_multisite() ? 'network_admin_notices' : 'admin_notices', array($this, 'admin_notice')); global $current_user; $user_id = $current_user->ID; if (is_multisite() && is_network_admin() || !is_multisite() && current_user_can('manage_options')) { if ('1' === filter_input(INPUT_GET, 'mwpb_notice_close', FILTER_SANITIZE_NUMBER_INT)) { add_user_meta($user_id, 'mwpb-notice-1', 'true', true); } } Job::get_instance(); Backup::get_instance(); }
public function get_archives() { $id = $this['job']['id']; $uniqid = $this['uniqid']; return array_map(function ($filename) use($id, $uniqid) { return Admin\Job::get_instance()->get_basedir($id, $uniqid) . $filename; }, $this['archives']); }