Version Description
- Feature: Add exclusion of non-WP Backitup backups to increase performance
- Fix: correct date issue for php 5.2 users
- Fix: correct issue with backup log listing in backup view
- Fix: correct issue with delete file when no log exists
Download this release
Release Info
Developer | cssimmon |
Plugin | Backup and Restore WordPress – WPBackItUp Backup Plugin |
Version | 1.7.5 |
Comparing to | |
See all releases |
Code changes from version 1.7.4 to 1.7.5
- lib/includes/backup.php +37 -19
- lib/includes/class-backup.php +2 -0
- lib/includes/class-filesystem.php +33 -8
- lib/includes/class-utility.php +21 -0
- lib/includes/class-wpbackitup-admin.php +19 -18
- readme.txt +9 -2
- views/backup.php +1 -2
- wp-backitup.php +2 -2
lib/includes/backup.php
CHANGED
@@ -84,14 +84,14 @@ $wp_backup = new WPBackItUp_Backup($logger,$backup_name);
|
|
84 |
//*****************//
|
85 |
$logger->log('***BEGIN BACKUP***');
|
86 |
$logger->logConstants();
|
87 |
-
$backup_start_time =
|
88 |
|
89 |
$WPBackitup->increment_backup_count();
|
90 |
|
91 |
//Dont do anything with this now, just post date time
|
92 |
$jsonResponse = new stdClass();
|
93 |
$jsonResponse->message = 'processing';
|
94 |
-
$jsonResponse->server_time=$backup_start_time;
|
95 |
write_response_file($jsonResponse);
|
96 |
|
97 |
//Cleanup & Validate the backup folded is ready
|
@@ -100,14 +100,6 @@ sleep(3);//For UI only
|
|
100 |
|
101 |
//TESTS GO HERE
|
102 |
|
103 |
-
//$response['message'] ='success';
|
104 |
-
//$response['filedate'] = $localDateTime;
|
105 |
-
//$response['file'] = $wp_backup->backup_filename;
|
106 |
-
//$response['zip_link'] = WPBACKITUP__BACKUP_URL . '/' . $wp_backup->backup_filename;
|
107 |
-
//$response['license'] = $this->license_active();
|
108 |
-
//$response['retained'] = $wp_backup->backup_retained_number;
|
109 |
-
//echo json_encode($response);
|
110 |
-
//die();
|
111 |
//TEST END HERE
|
112 |
|
113 |
$logger->log('**CLEANUP**');
|
@@ -143,6 +135,7 @@ $logger->log('**WP CONTENT**');
|
|
143 |
set_status('backupfiles',$active,true);
|
144 |
sleep(3);//For UI only
|
145 |
backup_wpcontent();
|
|
|
146 |
set_status('backupfiles',$complete,false);
|
147 |
$logger->log('**END WP CONTENT**');
|
148 |
|
@@ -208,7 +201,7 @@ function cleanup($path){
|
|
208 |
$fileSystem->purge_FilesByDate($wp_backup->backup_retained_number,$wp_backup->backup_folder_root);
|
209 |
|
210 |
//Purge logs older than 5 days
|
211 |
-
$fileSystem->purge_files(WPBACKITUP__BACKUP_PATH .'/','log'
|
212 |
|
213 |
}
|
214 |
|
@@ -216,7 +209,7 @@ function backup_wpcontent(){
|
|
216 |
global $logger,$wp_backup;
|
217 |
|
218 |
$fromFolder = WPBACKITUP__CONTENT_PATH . '/';
|
219 |
-
$ignore = array( WPBACKITUP__BACKUP_FOLDER,$wp_backup->backup_name,$wp_backup->restore_folder_root,'
|
220 |
|
221 |
$logger->log('Recursive Copy FROM:'.$fromFolder);
|
222 |
$logger->log('Recursive Copy TO:'.$wp_backup->backup_project_path);
|
@@ -233,6 +226,23 @@ function backup_wpcontent(){
|
|
233 |
$logger->log('Recursive Copy completed');
|
234 |
}
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
//Create siteinfo in project dir
|
237 |
function create_SiteInfoFile($path){
|
238 |
global $wpdb,$logger;
|
@@ -312,11 +322,19 @@ function send_backup_notification_email($err, $status)
|
|
312 |
global $WPBackitup, $logger, $backup_start_time,$status_array;
|
313 |
$utility = new WPBackItUp_Utility($logger);
|
314 |
|
315 |
-
|
316 |
-
$backup_end_time =
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
|
319 |
-
$logger->log('Script Processing Time:' .$
|
320 |
|
321 |
$status_description = array(
|
322 |
'preparing'=>'Preparing for backup...Done',
|
@@ -347,9 +365,9 @@ function send_backup_notification_email($err, $status)
|
|
347 |
$message = '<b>Your backup did not complete successfully.</b><br/><br/>';
|
348 |
}
|
349 |
|
350 |
-
$message .= 'Backup started: ' .
|
351 |
-
$message .= 'Backup ended: ' .
|
352 |
-
$message .= 'Processing Time: ' .
|
353 |
|
354 |
$message .= '<br/>';
|
355 |
|
84 |
//*****************//
|
85 |
$logger->log('***BEGIN BACKUP***');
|
86 |
$logger->logConstants();
|
87 |
+
$backup_start_time = new datetime('now');
|
88 |
|
89 |
$WPBackitup->increment_backup_count();
|
90 |
|
91 |
//Dont do anything with this now, just post date time
|
92 |
$jsonResponse = new stdClass();
|
93 |
$jsonResponse->message = 'processing';
|
94 |
+
$jsonResponse->server_time=$backup_start_time->format('U');
|
95 |
write_response_file($jsonResponse);
|
96 |
|
97 |
//Cleanup & Validate the backup folded is ready
|
100 |
|
101 |
//TESTS GO HERE
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
//TEST END HERE
|
104 |
|
105 |
$logger->log('**CLEANUP**');
|
135 |
set_status('backupfiles',$active,true);
|
136 |
sleep(3);//For UI only
|
137 |
backup_wpcontent();
|
138 |
+
//validate_wpcontent(); - add this for next release?
|
139 |
set_status('backupfiles',$complete,false);
|
140 |
$logger->log('**END WP CONTENT**');
|
141 |
|
201 |
$fileSystem->purge_FilesByDate($wp_backup->backup_retained_number,$wp_backup->backup_folder_root);
|
202 |
|
203 |
//Purge logs older than 5 days
|
204 |
+
$fileSystem->purge_files(WPBACKITUP__BACKUP_PATH .'/','log',$wp_backup->backup_retained_days);
|
205 |
|
206 |
}
|
207 |
|
209 |
global $logger,$wp_backup;
|
210 |
|
211 |
$fromFolder = WPBACKITUP__CONTENT_PATH . '/';
|
212 |
+
$ignore = array( WPBACKITUP__BACKUP_FOLDER,$wp_backup->backup_name,$wp_backup->restore_folder_root,'upgrade','cache' );
|
213 |
|
214 |
$logger->log('Recursive Copy FROM:'.$fromFolder);
|
215 |
$logger->log('Recursive Copy TO:'.$wp_backup->backup_project_path);
|
226 |
$logger->log('Recursive Copy completed');
|
227 |
}
|
228 |
|
229 |
+
function validate_wpcontent(){
|
230 |
+
global $logger,$wp_backup;
|
231 |
+
$source_dir_path = WPBACKITUP__CONTENT_PATH . '/';
|
232 |
+
$target_dir_path = $wp_backup->backup_project_path;
|
233 |
+
|
234 |
+
$logger->log('Validate content folder TO:' .$source_dir_path);
|
235 |
+
$logger->log('Validate content folder FROM:' .$target_dir_path);
|
236 |
+
|
237 |
+
$ignore = array(WPBACKITUP__PLUGIN_FOLDER,'debug.log','backupsiteinfo.txt','db-backup.sql');
|
238 |
+
$filesystem = new WPBackItUp_FileSystem($logger);
|
239 |
+
if(!$filesystem->recursive_validate($source_dir_path. '/', $target_dir_path . '/',$ignore)) {
|
240 |
+
$logger->log('Error: Content folder is not the same as backup.');
|
241 |
+
}
|
242 |
+
|
243 |
+
$logger->log('Content folder validation complete.');
|
244 |
+
}
|
245 |
+
|
246 |
//Create siteinfo in project dir
|
247 |
function create_SiteInfoFile($path){
|
248 |
global $wpdb,$logger;
|
322 |
global $WPBackitup, $logger, $backup_start_time,$status_array;
|
323 |
$utility = new WPBackItUp_Utility($logger);
|
324 |
|
325 |
+
//$start_date = new DateTime(date( 'Y-m-d H:i:s',$backup_start_time));
|
326 |
+
$backup_end_time = new DateTime('now');
|
327 |
+
|
328 |
+
$util = new WPBackItUp_Utility($logger);
|
329 |
+
$seconds = $util->date_diff_seconds($backup_start_time,$backup_end_time);
|
330 |
+
|
331 |
+
$processing_minutes = round($seconds / 60);
|
332 |
+
$processing_seconds = $seconds % 60;
|
333 |
+
|
334 |
+
//PHP 5.3
|
335 |
+
//$interval = $start_date->diff(new DateTime(date( 'Y-m-d H:i:s',$backup_end_time)));
|
336 |
|
337 |
+
$logger->log('Script Processing Time:' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds');
|
338 |
|
339 |
$status_description = array(
|
340 |
'preparing'=>'Preparing for backup...Done',
|
365 |
$message = '<b>Your backup did not complete successfully.</b><br/><br/>';
|
366 |
}
|
367 |
|
368 |
+
$message .= 'Backup started: ' . $backup_start_time->format( 'Y-m-d H:i:s') . '<br/>';
|
369 |
+
$message .= 'Backup ended: ' . $backup_end_time->format( 'Y-m-d H:i:s') . '<br/>';
|
370 |
+
$message .= 'Processing Time: ' .$processing_minutes .' Minutes ' .$processing_seconds .' Seconds <br/>';
|
371 |
|
372 |
$message .= '<br/>';
|
373 |
|
lib/includes/class-backup.php
CHANGED
@@ -18,6 +18,7 @@ class WPBackItUp_Backup {
|
|
18 |
public $backup_folder_root;
|
19 |
public $restore_folder_root;
|
20 |
public $backup_retained_number;
|
|
|
21 |
|
22 |
function __construct($logger,$backup_name) {
|
23 |
global $WPBackitup;
|
@@ -37,6 +38,7 @@ class WPBackItUp_Backup {
|
|
37 |
$this->restore_folder_root=$restore_folder_root;
|
38 |
|
39 |
$this->backup_retained_number = $WPBackitup->backup_retained_number();
|
|
|
40 |
|
41 |
} catch(Exception $e) {
|
42 |
//Dont do anything
|
18 |
public $backup_folder_root;
|
19 |
public $restore_folder_root;
|
20 |
public $backup_retained_number;
|
21 |
+
public $backup_retained_days;
|
22 |
|
23 |
function __construct($logger,$backup_name) {
|
24 |
global $WPBackitup;
|
38 |
$this->restore_folder_root=$restore_folder_root;
|
39 |
|
40 |
$this->backup_retained_number = $WPBackitup->backup_retained_number();
|
41 |
+
$this->backup_retained_days = 5; //Prob need to move this to main propery
|
42 |
|
43 |
} catch(Exception $e) {
|
44 |
//Dont do anything
|
lib/includes/class-filesystem.php
CHANGED
@@ -79,10 +79,12 @@ class WPBackItUp_FileSystem {
|
|
79 |
$this->logger->log($ignore);
|
80 |
|
81 |
if( is_dir($dir) ) { //If the directory exists
|
82 |
-
|
|
|
|
|
83 |
if ($dh = opendir($dir) ) {
|
84 |
while(($file = readdir($dh)) !== false) { //While there are files in the directory
|
85 |
-
if (
|
86 |
if (!is_dir( $dir.$file ) ) {
|
87 |
try {
|
88 |
$fsrc = fopen($dir .$file,'r');
|
@@ -179,7 +181,6 @@ class WPBackItUp_FileSystem {
|
|
179 |
}
|
180 |
|
181 |
private function ignore($file, $ignoreList){
|
182 |
-
$ignore = false;
|
183 |
|
184 |
//Exclude these files and folders from the delete
|
185 |
if (in_array(basename($file), $ignoreList) ||
|
@@ -188,14 +189,32 @@ class WPBackItUp_FileSystem {
|
|
188 |
($file == ".." ) ||
|
189 |
($file == "._" ) ||
|
190 |
($file == "cgi-bin" )) {
|
191 |
-
$ignore = true;
|
192 |
|
193 |
$this->logger->log('(FileSystem.ignore) IGNORE:'.$file);
|
|
|
194 |
}
|
195 |
|
196 |
-
return
|
197 |
}
|
198 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
|
201 |
// function delete_children_recursive($path, $ignore = array('cgi-bin','._'))
|
@@ -261,7 +280,7 @@ class WPBackItUp_FileSystem {
|
|
261 |
}
|
262 |
}
|
263 |
}
|
264 |
-
$this->logger->log('(FileSytem.purge_FilesByDate) Completed.
|
265 |
}
|
266 |
|
267 |
public function purge_files($path, $file_extension, $days)
|
@@ -284,9 +303,15 @@ class WPBackItUp_FileSystem {
|
|
284 |
{
|
285 |
$current_date = new DateTime('now');
|
286 |
$file_mod_date = new DateTime(date('Y-m-d',filemtime($file)));
|
287 |
-
$date_diff = $current_date->diff($file_mod_date);
|
288 |
|
289 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
290 |
if (file_exists($file)) unlink($file);
|
291 |
$this->logger->log('Delete:' . $file);
|
292 |
}
|
79 |
$this->logger->log($ignore);
|
80 |
|
81 |
if( is_dir($dir) ) { //If the directory exists
|
82 |
+
//Exclude all the OTHER backup folders under wp-content
|
83 |
+
//Will create the folders but NOT the contents
|
84 |
+
if (!$this->ignore($dir,$ignore) && !$this->is_backup_folder($dir) ){
|
85 |
if ($dh = opendir($dir) ) {
|
86 |
while(($file = readdir($dh)) !== false) { //While there are files in the directory
|
87 |
+
if (!$this->ignore($file,$ignore)) { //Check the file is not in the ignore array
|
88 |
if (!is_dir( $dir.$file ) ) {
|
89 |
try {
|
90 |
$fsrc = fopen($dir .$file,'r');
|
181 |
}
|
182 |
|
183 |
private function ignore($file, $ignoreList){
|
|
|
184 |
|
185 |
//Exclude these files and folders from the delete
|
186 |
if (in_array(basename($file), $ignoreList) ||
|
189 |
($file == ".." ) ||
|
190 |
($file == "._" ) ||
|
191 |
($file == "cgi-bin" )) {
|
|
|
192 |
|
193 |
$this->logger->log('(FileSystem.ignore) IGNORE:'.$file);
|
194 |
+
return true;
|
195 |
}
|
196 |
|
197 |
+
return false;
|
198 |
}
|
199 |
|
200 |
+
//Check for backup folders
|
201 |
+
private function is_backup_folder($dir){
|
202 |
+
if (
|
203 |
+
strpos(strtolower($dir),'/wp-content/backup')!== false ||
|
204 |
+
strpos(strtolower($dir),'/wp-content/updraft')!== false ||
|
205 |
+
strpos(strtolower($dir),'/wp-content/wp-clone')!== false ||
|
206 |
+
strpos(strtolower($dir),'/wp-content/uploads/backwpup')!== false ||
|
207 |
+
strpos(strtolower($dir),'/wp-content/uploads/backupwordpress')!== false
|
208 |
+
){
|
209 |
+
|
210 |
+
$this->logger->log('(FileSystem.is_backup_folder) SKIP Backup Folder: ' .$dir);
|
211 |
+
return true;
|
212 |
+
|
213 |
+
}else{
|
214 |
+
return false;
|
215 |
+
}
|
216 |
+
|
217 |
+
}
|
218 |
|
219 |
|
220 |
// function delete_children_recursive($path, $ignore = array('cgi-bin','._'))
|
280 |
}
|
281 |
}
|
282 |
}
|
283 |
+
$this->logger->log('(FileSytem.purge_FilesByDate) Completed.');
|
284 |
}
|
285 |
|
286 |
public function purge_files($path, $file_extension, $days)
|
303 |
{
|
304 |
$current_date = new DateTime('now');
|
305 |
$file_mod_date = new DateTime(date('Y-m-d',filemtime($file)));
|
|
|
306 |
|
307 |
+
//PHP 5.3 only
|
308 |
+
//$date_diff = $current_date->diff($file_mod_date);
|
309 |
+
//$date_diff_days = $date_diff->days;
|
310 |
+
|
311 |
+
$util = new WPBackItUp_Utility( $this->logger);
|
312 |
+
$date_diff_days=$util->date_diff_days($file_mod_date,$current_date);
|
313 |
+
|
314 |
+
if($date_diff_days>=$days){
|
315 |
if (file_exists($file)) unlink($file);
|
316 |
$this->logger->log('Delete:' . $file);
|
317 |
}
|
lib/includes/class-utility.php
CHANGED
@@ -46,5 +46,26 @@ class WPBackItUp_Utility {
|
|
46 |
|
47 |
}
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
46 |
|
47 |
}
|
48 |
|
49 |
+
//Function for PHP version 5.2
|
50 |
+
//Diff Approximation only
|
51 |
+
function date_diff_days($date1,$date2 ){
|
52 |
+
|
53 |
+
$date_diff_seconds = $this->date_diff_seconds($date1,$date2 );
|
54 |
+
$days = round($date_diff_seconds/86400);
|
55 |
+
return $days;
|
56 |
+
}
|
57 |
+
|
58 |
+
//Function for PHP version 5.2
|
59 |
+
//Diff Approximation only
|
60 |
+
function date_diff_seconds($date1,$date2 ){
|
61 |
+
// the necessary way using PHP 5.2
|
62 |
+
$date1_string = $date1->format('U');
|
63 |
+
$date2_string = $date2->format('U');
|
64 |
+
|
65 |
+
// get a difference represented as an int, number of seconds
|
66 |
+
$date_diff_seconds = abs($date1_string - $date2_string);
|
67 |
+
|
68 |
+
return $date_diff_seconds;
|
69 |
+
}
|
70 |
}
|
71 |
|
lib/includes/class-wpbackitup-admin.php
CHANGED
@@ -147,8 +147,9 @@ class WPBackitup_Admin {
|
|
147 |
//Add Settings Menu Nav
|
148 |
add_submenu_page( $this->namespace, 'Settings', 'Settings', 'administrator', $this->namespace.'-settings', array( &$this, 'admin_settings_page' ) );
|
149 |
|
150 |
-
|
151 |
-
|
|
|
152 |
// remove duplicate submenu page. wp limitations //
|
153 |
// http://wordpress.stackexchange.com/questions/16401/remove-duplicate-main-submenu-in-admin
|
154 |
remove_submenu_page($this->namespace,$this->namespace);
|
@@ -234,14 +235,14 @@ class WPBackitup_Admin {
|
|
234 |
* The admin section backup page rendering method
|
235 |
*
|
236 |
*/
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
|
246 |
/**
|
247 |
* Route the user based off of environment conditions
|
@@ -318,16 +319,15 @@ class WPBackitup_Admin {
|
|
318 |
$backup_file_path = WPBACKITUP__BACKUP_PATH .'/' . $backup_file_name;
|
319 |
$log_file_path = str_replace('.zip','.log',$backup_file_path);
|
320 |
|
321 |
-
if (
|
322 |
-
|
323 |
-
//Delete the log
|
324 |
-
unlink($log_file_path);
|
325 |
}
|
326 |
-
|
327 |
-
|
|
|
328 |
}
|
329 |
|
330 |
-
exit(
|
331 |
}
|
332 |
|
333 |
function admin_viewlog(){
|
@@ -659,7 +659,8 @@ class WPBackitup_Admin {
|
|
659 |
//echo($license_last_check_date->format('Y-m-d H:i:s') .'</br>');
|
660 |
|
661 |
$now = new DateTime('now');//Get NOW
|
662 |
-
$yesterday = $now->
|
|
|
663 |
//echo($yesterday->format('Y-m-d H:i:s') .'</br>');
|
664 |
|
665 |
//Validate License
|
147 |
//Add Settings Menu Nav
|
148 |
add_submenu_page( $this->namespace, 'Settings', 'Settings', 'administrator', $this->namespace.'-settings', array( &$this, 'admin_settings_page' ) );
|
149 |
|
150 |
+
if (WPBACKITUP__DEBUG===true){
|
151 |
+
add_submenu_page( $this->namespace, 'Test', 'Test', 'administrator', $this->namespace.'-test', array( &$this, 'admin_test_page' ) );
|
152 |
+
}
|
153 |
// remove duplicate submenu page. wp limitations //
|
154 |
// http://wordpress.stackexchange.com/questions/16401/remove-duplicate-main-submenu-in-admin
|
155 |
remove_submenu_page($this->namespace,$this->namespace);
|
235 |
* The admin section backup page rendering method
|
236 |
*
|
237 |
*/
|
238 |
+
public function admin_test_page()
|
239 |
+
{
|
240 |
+
if( !current_user_can( 'manage_options' ) ) {
|
241 |
+
wp_die( 'You do not have sufficient permissions to access this page' );
|
242 |
+
}
|
243 |
+
|
244 |
+
include WPBACKITUP__PLUGIN_PATH . "/views/test.php";
|
245 |
+
}
|
246 |
|
247 |
/**
|
248 |
* Route the user based off of environment conditions
|
319 |
$backup_file_path = WPBACKITUP__BACKUP_PATH .'/' . $backup_file_name;
|
320 |
$log_file_path = str_replace('.zip','.log',$backup_file_path);
|
321 |
|
322 |
+
if (file_exists($backup_file_path)){
|
323 |
+
unlink($backup_file_path);
|
|
|
|
|
324 |
}
|
325 |
+
|
326 |
+
if (file_exists($log_file_path)) {
|
327 |
+
unlink($log_file_path);
|
328 |
}
|
329 |
|
330 |
+
exit('deleted');
|
331 |
}
|
332 |
|
333 |
function admin_viewlog(){
|
659 |
//echo($license_last_check_date->format('Y-m-d H:i:s') .'</br>');
|
660 |
|
661 |
$now = new DateTime('now');//Get NOW
|
662 |
+
$yesterday = $now->modify('-1 day');//subtract a day
|
663 |
+
//$yesterday = $now->sub(new DateInterval('P1D'));//subtract a day PHP 3.0 only
|
664 |
//echo($yesterday->format('Y-m-d H:i:s') .'</br>');
|
665 |
|
666 |
//Validate License
|
readme.txt
CHANGED
@@ -1,10 +1,11 @@
|
|
1 |
=== WP Backitup ===
|
2 |
Contributors: cssimmon,jcpeden
|
3 |
Donate link: http://www.wpbackitup.com
|
4 |
-
Tags: backup, back up, backups, backup wordpress, backup database, backup plugin, backup and restore, database, database backup, database restore, db, db backup, db restore, download database, full backup, mysql backup, restore, restore database,restore wordpress, restore wordpress backup,restoring wordpress, website backup, wordpress backup, wordpress restore
|
|
|
5 |
Requires at least: 3.8.0
|
6 |
Tested up to: 3.9.1
|
7 |
-
Stable tag: 1.7.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -91,6 +92,12 @@ Yes.
|
|
91 |
3. When the backup has been created, click the download link to access a zipped backup of your site.
|
92 |
|
93 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
= 1.7.4 =
|
95 |
* Fix to backup folder create & checks
|
96 |
* Security Enhancements
|
1 |
=== WP Backitup ===
|
2 |
Contributors: cssimmon,jcpeden
|
3 |
Donate link: http://www.wpbackitup.com
|
4 |
+
Tags: backup, back up, backups, backup wordpress, backup database, backup plugin, backup and restore, database, database backup, database restore, db, db backup, db restore, download database, full backup, mysql backup, restore, restore database,restore wordpress, restore wordpress backup,restoring wordpress, website backup, wordpress backup, wordpress restore, plugin,
|
5 |
+
backup buddy,
|
6 |
Requires at least: 3.8.0
|
7 |
Tested up to: 3.9.1
|
8 |
+
Stable tag: 1.7.4
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
92 |
3. When the backup has been created, click the download link to access a zipped backup of your site.
|
93 |
|
94 |
== Changelog ==
|
95 |
+
= 1.7.5 =
|
96 |
+
* Feature: Add exclusion of non-WP Backitup backups to increase performance
|
97 |
+
* Fix: correct date issue for php 5.2 users
|
98 |
+
* Fix: correct issue with backup log listing in backup view
|
99 |
+
* Fix: correct issue with delete file when no log exists
|
100 |
+
|
101 |
= 1.7.4 =
|
102 |
* Fix to backup folder create & checks
|
103 |
* Security Enhancements
|
views/backup.php
CHANGED
@@ -110,8 +110,7 @@ if (!$backup_folder_exists) {
|
|
110 |
$log_filename = basename($log_file);
|
111 |
|
112 |
$logExists=false;
|
113 |
-
if (in_array($log_file,$log_filelist)) $logExists=true;
|
114 |
-
|
115 |
|
116 |
$class = $i % 2 == 0 ? 'class="alternate"' : '';
|
117 |
?>
|
110 |
$log_filename = basename($log_file);
|
111 |
|
112 |
$logExists=false;
|
113 |
+
if (is_array($log_filelist) && in_array($log_file,$log_filelist)) $logExists=true;
|
|
|
114 |
|
115 |
$class = $i % 2 == 0 ? 'class="alternate"' : '';
|
116 |
?>
|
wp-backitup.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
Plugin Name: WP Backitup
|
13 |
Plugin URI: http://www.wpbackitup.com
|
14 |
Description: Backup your content, settings, themes, plugins and media in just a few simple clicks.
|
15 |
-
Version: 1.7.
|
16 |
Author: Chris Simmons
|
17 |
Author URI: http://www.wpbackitup.com
|
18 |
License: GPL3
|
@@ -34,7 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
34 |
*/
|
35 |
|
36 |
define( 'WPBACKITUP__NAMESPACE', 'wp-backitup' );
|
37 |
-
define( 'WPBACKITUP__VERSION', '1.7.
|
38 |
define( 'WPBACKITUP__DEBUG', false );
|
39 |
define( 'WPBACKITUP__MINIMUM_WP_VERSION', '3.0' );
|
40 |
define( 'WPBACKITUP__ITEM_NAME', 'WP Backitup' );
|
12 |
Plugin Name: WP Backitup
|
13 |
Plugin URI: http://www.wpbackitup.com
|
14 |
Description: Backup your content, settings, themes, plugins and media in just a few simple clicks.
|
15 |
+
Version: 1.7.5
|
16 |
Author: Chris Simmons
|
17 |
Author URI: http://www.wpbackitup.com
|
18 |
License: GPL3
|
34 |
*/
|
35 |
|
36 |
define( 'WPBACKITUP__NAMESPACE', 'wp-backitup' );
|
37 |
+
define( 'WPBACKITUP__VERSION', '1.7.5');
|
38 |
define( 'WPBACKITUP__DEBUG', false );
|
39 |
define( 'WPBACKITUP__MINIMUM_WP_VERSION', '3.0' );
|
40 |
define( 'WPBACKITUP__ITEM_NAME', 'WP Backitup' );
|