function processRestoringBackup($url, $zipmode) { wpa_cleanup(true); if (!is_string($url) || '' == $url) { wpa_backup_error('restore', sprintf(__('The provided URL "<code>%s</code>" is either not valid or empty'), $url), true); } global $wp_filesystem; $GLOBALS['wpclone']['logfile'] = 'wpclone_restore_' . current_time('dS_M_Y_h-iA', false) . '_' . wp_generate_password(10, false) . '.log'; wpa_wpc_log_start('restore'); if ($zipmode) { define('PCLZIP_TEMPORARY_DIR', WPCLONE_DIR_BACKUP); } $temp_dir = wpa_wpc_temp_dir(); $site_url = site_url(); $permalink_url = admin_url('options-permalink.php'); $zipfile = wpa_fetch_file($url); $report = wpa_wpc_process_db($zipfile, $zipmode); $unzipped_folder = wpCloneSafePathMode(trailingslashit($temp_dir) . 'wpclone_backup'); wpa_unzip($zipfile, $temp_dir, $zipmode); wpa_wpc_log('copying files..'); wpa_copy($unzipped_folder . '/wp-content', WPCLONE_WP_CONTENT); wpa_wpc_log('deleting temp directory..'); $wp_filesystem->delete($temp_dir, true); /* remove the zip file only if it was downloaded from an external location. */ $wptmp = explode('.', $zipfile); if (in_array('tmp', $wptmp)) { wpa_wpc_log('deleting downloaded zip file..'); $wp_filesystem->delete($zipfile); } wpa_wpc_log('restore finished'); echo '<div class="width-60"><h1>Restore Successful!</h1>'; printf('Visit your restored site [ <a href="%s" target=blank>here</a> ]<br><br>', $site_url); printf('<strong>You may need to re-save your permalink structure <a href="%s" target=blank>Here</a></strong>', $permalink_url); printf('</br><a href="%s">log</a>', convertPathIntoUrl(WPCLONE_DIR_BACKUP . $GLOBALS['wpclone']['logfile'])); unset($GLOBALS['wpclone']); echo wpa_wpc_search_n_replace_report($report); }
function wpa_wpc_ajax_search_n_replace() { check_ajax_referer('wpclone-ajax-submit', 'nonce'); global $wpdb; $search = isset($_POST['search']) ? $_POST['search'] : ''; $replace = isset($_POST['replace']) ? $_POST['replace'] : ''; if (empty($search) || empty($replace)) { echo '<p class="error">Search and Replace values cannot be empty.</p>'; wp_die(); } wpa_bump_limits(); $report = wpa_safe_replace_wrapper($search, $replace, $wpdb->prefix); echo wpa_wpc_search_n_replace_report($report); wp_die(); }