public function run_with_initialized_file_system() { $fs = new FW_Backup_Helper_File_System(); $db = new FW_Backup_Helper_Database(); $auto_install_dir = $this->backup()->get_auto_install_dir(); $upload_dir = wp_upload_dir(); $upload_dir = $upload_dir['basedir']; try { // Do Full Backup before Auto Install if (apply_filters('fw_ext_backup_do_backup_on_demo_content_install', true)) { $this->backup()->action()->do_backup_background_cron('cron_full'); } // Replace uploads directory $t = $fs->replace($fs->map($upload_dir), $fs->map("{$auto_install_dir}/uploads")); // Move backup directory from trashed dir into new upload dir if ($t) { $fs->move_existing("{$t}/backup", $fs->map("{$upload_dir}/backup")); // Remove trashed dir because we made Full Backup of the site $fs->rmdir($t); } if (file_exists("{$auto_install_dir}/database.txt")) { $file_with_sql = "{$auto_install_dir}/database.txt"; } else { $file_with_sql = "{$auto_install_dir}/database.sql"; } $db->import($file_with_sql, true, true, true); do_action('fw_ext_backup_after_import_demo_content'); return array('success' => true); } catch (FW_Backup_Exception $exception) { return array('success' => false, 'data' => array('message' => $exception->getMessage())); } }
public function run() { $fs = new FW_Backup_Helper_File_System(); $db = new FW_Backup_Helper_Database(); $auto_install_dir = $this->backup()->get_auto_install_dir(); $upload_dir = wp_upload_dir(); $upload_dir = $upload_dir['basedir']; // This forces *Restore* page to be opened event if // request_filesystem_credentials is not required. In the // latter case JavaScript will submit the page automatically // which opens up a *Restore in Progress* popup. if ($_SERVER['REQUEST_METHOD'] != 'POST') { throw new FW_Backup_Exception_Method_Not_Allowed(); } $restore = new FW_Backup_Process_Restore(); $restore->request_filesystem_credentials(); try { $fs->check_permissions(); // Do Full Backup before Auto Install $this->backup()->action()->do_backup_background_cron('cron_full'); // Replace uploads directory $t = $fs->replace($fs->map($upload_dir), $fs->map("{$auto_install_dir}/uploads")); // Move backup directory from trashed dir into new upload dir if ($t) { $fs->move_existing("{$t}/backup", $fs->map("{$upload_dir}/backup")); // Remove trashed dir because we made Full Backup of the site $fs->rmdir($t); } if (file_exists("{$auto_install_dir}/database.txt")) { $file_with_sql = "{$auto_install_dir}/database.txt"; } else { $file_with_sql = "{$auto_install_dir}/database.sql"; } $db->import($file_with_sql, true, true, true); } catch (FW_Backup_Exception $exception) { FW_Flash_Messages::add('auto-install', $exception->getMessage(), 'error'); // otherwise flash messages wont show wp_redirect($this->backup()->action()->url_backup_auto_install_page()); exit; } // get rid of update notifications wp_redirect(admin_url('update-core.php?force-check=1&auto-install-redirect=' . esc_url(admin_url()))); exit; }