BackUpWordPress - Version 1.6.3

Version Description

Download this release

Release Info

Developer willmot
Plugin Icon 128x128 BackUpWordPress
Version 1.6.3
Comparing to
See all releases

Code changes from version 1.6.2 to 1.6.3

admin.actions.php CHANGED
@@ -163,7 +163,7 @@ function hmbkp_request_download_backup() {
163
 
164
  hmbkp_path();
165
 
166
- wp_redirect( add_query_arg( 'key', md5( SECURE_AUTH_KEY ), str_replace( ABSPATH, site_url( '/' ), base64_decode( $_GET['hmbkp_download'] ) ) ), 303 );
167
 
168
  exit;
169
 
163
 
164
  hmbkp_path();
165
 
166
+ wp_redirect( add_query_arg( 'key', md5( HMBKP_SECURE_KEY ), str_replace( hmbkp_conform_dir( ABSPATH ), site_url(), base64_decode( $_GET['hmbkp_download'] ) ) ), 303 );
167
 
168
  exit;
169
 
functions/backup.functions.php CHANGED
@@ -16,9 +16,6 @@ function hmbkp_do_backup() {
16
 
17
  HM_Backup::get_instance()->backup();
18
 
19
- // Email Backup
20
- hmbkp_email_backup();
21
-
22
  hmbkp_set_status( __( 'Removing old backups', 'hmbkp' ) );
23
 
24
  // Delete any old backup files
@@ -125,12 +122,7 @@ function hmbkp_delete_backup( $file ) {
125
  */
126
  function hmbkp_email_backup() {
127
 
128
- if ( ! hmbkp_get_email_address() )
129
- return false;
130
-
131
- $file = HM_Backup::get_instance()->archive_filepath();
132
-
133
- if ( ! file_exists( $file ) )
134
  return;
135
 
136
  // Raise the memory and time limit
@@ -168,6 +160,7 @@ function hmbkp_email_backup() {
168
  return true;
169
 
170
  }
 
171
 
172
  /**
173
  * Set the status of the running backup
16
 
17
  HM_Backup::get_instance()->backup();
18
 
 
 
 
19
  hmbkp_set_status( __( 'Removing old backups', 'hmbkp' ) );
20
 
21
  // Delete any old backup files
122
  */
123
  function hmbkp_email_backup() {
124
 
125
+ if ( ! hmbkp_get_email_address() || ! file_exists( HM_Backup::get_instance()->archive_filepath() ) )
 
 
 
 
 
126
  return;
127
 
128
  // Raise the memory and time limit
160
  return true;
161
 
162
  }
163
+ add_action( 'hmbkp_backup_complete', 'hmbkp_email_backup', 11 );
164
 
165
  /**
166
  * Set the status of the running backup
functions/core.functions.php CHANGED
@@ -332,7 +332,7 @@ function hmbkp_path() {
332
  $contents[] = '# ' . __( 'This .htaccess file ensures that other people cannot download your backup files.', 'hmbkp' );
333
  $contents[] = '';
334
  $contents[] = 'RewriteEngine On';
335
- $contents[] = 'RewriteCond %{QUERY_STRING} !key=' . md5( SECURE_AUTH_KEY );
336
  $contents[] = 'RewriteRule (.*) - [F]';
337
  $contents[] = '';
338
 
332
  $contents[] = '# ' . __( 'This .htaccess file ensures that other people cannot download your backup files.', 'hmbkp' );
333
  $contents[] = '';
334
  $contents[] = 'RewriteEngine On';
335
+ $contents[] = 'RewriteCond %{QUERY_STRING} !key=' . md5( HMBKP_SECURE_KEY );
336
  $contents[] = 'RewriteRule (.*) - [F]';
337
  $contents[] = '';
338
 
functions/interface.functions.php CHANGED
@@ -156,7 +156,7 @@ function hmbkp_admin_notices() {
156
  if ( hmbkp_backup_errors_message() ) :
157
 
158
  function hmbkp_backup_errors_notice() {
159
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress detected that your last backup failed.', 'hmbkp' ) . '</strong><a href="' . add_query_arg( 'action', 'hmbkp_dismiss_error' ) . '" style="float: right;" class="button">Dismiss</a></p>' . hmbkp_backup_errors_message() . '</div>';
160
  }
161
  add_action( 'admin_notices', 'hmbkp_backup_errors_notice' );
162
 
@@ -166,7 +166,7 @@ function hmbkp_admin_notices() {
166
  if ( hmbkp_backup_warnings_message() ) :
167
 
168
  function hmbkp_backup_warnings_notice() {
169
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress detected an issue with your last backup.', 'hmbkp' ) . '</strong><a href="' . add_query_arg( 'action', 'hmbkp_dismiss_error' ) . '" style="float: right;" class="button">Dismiss</a></p>' . hmbkp_backup_warnings_message() . '</div>';
170
  }
171
  add_action( 'admin_notices', 'hmbkp_backup_warnings_notice' );
172
 
156
  if ( hmbkp_backup_errors_message() ) :
157
 
158
  function hmbkp_backup_errors_notice() {
159
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress detected issues with your last backup.', 'hmbkp' ) . '</strong><a href="' . add_query_arg( 'action', 'hmbkp_dismiss_error' ) . '" style="float: right;" class="button">Dismiss</a></p>' . hmbkp_backup_errors_message() . '</div>';
160
  }
161
  add_action( 'admin_notices', 'hmbkp_backup_errors_notice' );
162
 
166
  if ( hmbkp_backup_warnings_message() ) :
167
 
168
  function hmbkp_backup_warnings_notice() {
169
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress detected issues with your last backup.', 'hmbkp' ) . '</strong><a href="' . add_query_arg( 'action', 'hmbkp_dismiss_error' ) . '" style="float: right;" class="button">Dismiss</a></p>' . hmbkp_backup_warnings_message() . '</div>';
170
  }
171
  add_action( 'admin_notices', 'hmbkp_backup_warnings_notice' );
172
 
hm-backup/hm-backup.php CHANGED
@@ -301,9 +301,9 @@ class HM_Backup {
301
  $cmd .= ' ' . escapeshellarg( DB_NAME );
302
 
303
  // Send stdout to null
304
- $cmd .= ' 2> /dev/null';
305
 
306
- shell_exec( $cmd );
307
 
308
  }
309
 
@@ -374,11 +374,11 @@ class HM_Backup {
374
  $this->zip();
375
 
376
  // If not or if the shell zip failed then use ZipArchive
377
- if ( ( empty( $this->archive_verified ) || $this->errors() ) && class_exists( 'ZipArchive' ) && empty( $this->skip_zip_archive ) )
378
  $this->zip_archive();
379
 
380
  // If ZipArchive is unavailable or one of the above failed
381
- if ( ( empty( $this->archive_verified ) || $this->errors() ) )
382
  $this->pcl_zip();
383
 
384
  // Delete the database dump file
@@ -401,16 +401,16 @@ class HM_Backup {
401
 
402
  // Zip up $this->root with excludes
403
  if ( ! $this->database_only && $this->exclude_string( 'zip' ) )
404
- $this->error( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->root() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -rq ' . escapeshellarg( $this->archive_filepath() ) . ' ./' . ' -x ' . $this->exclude_string( 'zip' ) . ' 2>&1' ) );
405
-
406
  // Zip up $this->root without excludes
407
  elseif ( ! $this->database_only )
408
- $this->error( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->root() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -rq ' . escapeshellarg( $this->archive_filepath() ) . ' ./' . ' 2>&1' ) );
409
-
410
  // Add the database dump to the archive
411
  if ( ! $this->files_only )
412
- $this->error( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->path() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -uq ' . escapeshellarg( $this->archive_filepath() ) . ' ' . escapeshellarg( $this->database_dump_filename() ) . ' 2>&1' ) );
413
-
414
  $this->check_archive();
415
 
416
  }
@@ -456,10 +456,10 @@ class HM_Backup {
456
  $zip->addFile( $this->database_dump_filepath(), $this->database_dump_filename() );
457
 
458
  if ( $zip->status )
459
- $this->error( 'ziparchive', $zip->status );
460
 
461
  if ( $zip->statusSys )
462
- $this->error( 'ziparchive', $zip->statusSys );
463
 
464
  $zip->close();
465
 
@@ -491,12 +491,12 @@ class HM_Backup {
491
  // Zip up everything
492
  if ( ! $this->database_only )
493
  if ( ! $archive->add( $this->root(), PCLZIP_OPT_REMOVE_PATH, $this->root(), PCLZIP_CB_PRE_ADD, 'hmbkp_pclzip_callback' ) )
494
- $this->error( 'pclzip', $archive->errorInfo( true ) );
495
 
496
  // Add the database
497
  if ( ! $this->files_only )
498
  if ( ! $archive->add( $this->database_dump_filepath(), PCLZIP_OPT_REMOVE_PATH, $this->path() ) )
499
- $this->error( 'pclzip', $archive->errorInfo( true ) );
500
 
501
  unset( $GLOBALS['_hmbkp_exclude_string'] );
502
 
@@ -520,7 +520,7 @@ class HM_Backup {
520
  $this->error( $this->archive_method(), __( 'The backup file was not created', 'hmbkp' ) );
521
 
522
  // Verify using the zip command if possible
523
- if ( ! $this->errors() && $this->zip_command_path ) {
524
 
525
  $verify = shell_exec( escapeshellarg( $this->zip_command_path ) . ' -T ' . escapeshellarg( $this->archive_filepath() ) . ' 2> /dev/null' );
526
 
@@ -528,9 +528,9 @@ class HM_Backup {
528
  $this->error( $this->archive_method(), $verify );
529
 
530
  }
531
-
532
  /* Comment out for now as causes memory issues on large sites */
533
-
534
  //if ( ! $this->errors() ) {
535
  //
536
  // // If it's a file backup, get an array of all the files that should have been backed up
@@ -556,10 +556,10 @@ class HM_Backup {
556
  //}
557
 
558
  // If there are errors delete the backup file.
559
- if ( $this->errors() && file_exists( $this->archive_filepath() ) )
560
  unlink( $this->archive_filepath() );
561
 
562
- if ( $this->errors() )
563
  return false;
564
 
565
  return $this->archive_verified = true;
@@ -670,7 +670,7 @@ class HM_Backup {
670
 
671
  // Load PclZip
672
  if ( ! defined( 'PCLZIP_TEMPORARY_DIR' ) )
673
- define( 'PCLZIP_TEMPORARY_DIR', $this->path() );
674
 
675
  require_once( ABSPATH . 'wp-admin/includes/class-pclzip.php' );
676
 
@@ -689,7 +689,6 @@ class HM_Backup {
689
 
690
  // List of possible mysqldump locations
691
  $mysqldump_locations = array(
692
- 'mysqldump',
693
  '/usr/local/bin/mysqldump',
694
  '/usr/local/mysql/bin/mysqldump',
695
  '/usr/mysql/bin/mysqldump',
@@ -697,19 +696,22 @@ class HM_Backup {
697
  '/opt/local/lib/mysql6/bin/mysqldump',
698
  '/opt/local/lib/mysql5/bin/mysqldump',
699
  '/opt/local/lib/mysql4/bin/mysqldump',
700
- '\xampp\mysql\bin\mysqldump',
701
- '\Program Files\xampp\mysql\bin\mysqldump',
702
- '\Program Files\MySQL\MySQL Server 6.0\bin\mysqldump',
703
- '\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump',
704
- '\Program Files\MySQL\MySQL Server 5.4\bin\mysqldump',
705
- '\Program Files\MySQL\MySQL Server 5.1\bin\mysqldump',
706
- '\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump',
707
- '\Program Files\MySQL\MySQL Server 4.1\bin\mysqldump'
708
  );
709
 
 
 
 
710
  // Find the one which works
711
  foreach ( $mysqldump_locations as $location )
712
- if ( ! shell_exec( 'hash ' . $location . ' 2>&1' ) )
713
  return $location;
714
 
715
  return '';
@@ -730,10 +732,12 @@ class HM_Backup {
730
 
731
  // List of possible zip locations
732
  $zip_locations = array(
733
- 'zip',
734
  '/usr/bin/zip'
735
  );
736
 
 
 
 
737
  // Find the one which works
738
  foreach ( $zip_locations as $location )
739
  if ( ! shell_exec( 'hash ' . $location . ' 2>&1' ) )
@@ -1124,7 +1128,10 @@ class HM_Backup {
1124
  * @access public
1125
  * @return null
1126
  */
1127
- public function errors() {
 
 
 
1128
 
1129
  return $this->errors;
1130
 
@@ -1144,10 +1151,6 @@ class HM_Backup {
1144
  if ( empty( $context ) || empty( $error ) )
1145
  return;
1146
 
1147
- if ( $context == 'zip' && strpos( $error, 'zip warning' ) !== false )
1148
- return $this->warning( $context, $error );
1149
-
1150
-
1151
  $this->errors[$context][$_key = md5( implode( ':' , (array) $error ) )] = $error;
1152
 
1153
  }
@@ -1158,7 +1161,10 @@ class HM_Backup {
1158
  * @access public
1159
  * @return null
1160
  */
1161
- public function warnings() {
 
 
 
1162
 
1163
  return $this->warnings;
1164
 
301
  $cmd .= ' ' . escapeshellarg( DB_NAME );
302
 
303
  // Send stdout to null
304
+ $cmd .= ' 2>&1';
305
 
306
+ $this->warning( 'mysqldump', shell_exec( $cmd ) );
307
 
308
  }
309
 
374
  $this->zip();
375
 
376
  // If not or if the shell zip failed then use ZipArchive
377
+ if ( empty( $this->archive_verified ) && class_exists( 'ZipArchive' ) && empty( $this->skip_zip_archive ) )
378
  $this->zip_archive();
379
 
380
  // If ZipArchive is unavailable or one of the above failed
381
+ if ( empty( $this->archive_verified ) )
382
  $this->pcl_zip();
383
 
384
  // Delete the database dump file
401
 
402
  // Zip up $this->root with excludes
403
  if ( ! $this->database_only && $this->exclude_string( 'zip' ) )
404
+ $this->warning( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->root() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -rq ' . escapeshellarg( $this->archive_filepath() ) . ' ./' . ' -x ' . $this->exclude_string( 'zip' ) . ' 2>&1' ) );
405
+
406
  // Zip up $this->root without excludes
407
  elseif ( ! $this->database_only )
408
+ $this->warning( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->root() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -rq ' . escapeshellarg( $this->archive_filepath() ) . ' ./' . ' 2>&1' ) );
409
+
410
  // Add the database dump to the archive
411
  if ( ! $this->files_only )
412
+ $this->warning( 'zip', shell_exec( 'cd ' . escapeshellarg( $this->path() ) . ' && ' . escapeshellarg( $this->zip_command_path ) . ' -uq ' . escapeshellarg( $this->archive_filepath() ) . ' ' . escapeshellarg( $this->database_dump_filename() ) . ' 2>&1' ) );
413
+
414
  $this->check_archive();
415
 
416
  }
456
  $zip->addFile( $this->database_dump_filepath(), $this->database_dump_filename() );
457
 
458
  if ( $zip->status )
459
+ $this->warning( 'ziparchive', $zip->status );
460
 
461
  if ( $zip->statusSys )
462
+ $this->warning( 'ziparchive', $zip->statusSys );
463
 
464
  $zip->close();
465
 
491
  // Zip up everything
492
  if ( ! $this->database_only )
493
  if ( ! $archive->add( $this->root(), PCLZIP_OPT_REMOVE_PATH, $this->root(), PCLZIP_CB_PRE_ADD, 'hmbkp_pclzip_callback' ) )
494
+ $this->warning( 'pclzip', $archive->errorInfo( true ) );
495
 
496
  // Add the database
497
  if ( ! $this->files_only )
498
  if ( ! $archive->add( $this->database_dump_filepath(), PCLZIP_OPT_REMOVE_PATH, $this->path() ) )
499
+ $this->warning( 'pclzip', $archive->errorInfo( true ) );
500
 
501
  unset( $GLOBALS['_hmbkp_exclude_string'] );
502
 
520
  $this->error( $this->archive_method(), __( 'The backup file was not created', 'hmbkp' ) );
521
 
522
  // Verify using the zip command if possible
523
+ if ( ! $this->errors( 'zip' ) && $this->zip_command_path ) {
524
 
525
  $verify = shell_exec( escapeshellarg( $this->zip_command_path ) . ' -T ' . escapeshellarg( $this->archive_filepath() ) . ' 2> /dev/null' );
526
 
528
  $this->error( $this->archive_method(), $verify );
529
 
530
  }
531
+
532
  /* Comment out for now as causes memory issues on large sites */
533
+
534
  //if ( ! $this->errors() ) {
535
  //
536
  // // If it's a file backup, get an array of all the files that should have been backed up
556
  //}
557
 
558
  // If there are errors delete the backup file.
559
+ if ( $this->errors( $this->archive_method() ) && file_exists( $this->archive_filepath() ) )
560
  unlink( $this->archive_filepath() );
561
 
562
+ if ( $this->errors( $this->archive_method() ) )
563
  return false;
564
 
565
  return $this->archive_verified = true;
670
 
671
  // Load PclZip
672
  if ( ! defined( 'PCLZIP_TEMPORARY_DIR' ) )
673
+ define( 'PCLZIP_TEMPORARY_DIR', trailingslashit( $this->path() ) );
674
 
675
  require_once( ABSPATH . 'wp-admin/includes/class-pclzip.php' );
676
 
689
 
690
  // List of possible mysqldump locations
691
  $mysqldump_locations = array(
 
692
  '/usr/local/bin/mysqldump',
693
  '/usr/local/mysql/bin/mysqldump',
694
  '/usr/mysql/bin/mysqldump',
696
  '/opt/local/lib/mysql6/bin/mysqldump',
697
  '/opt/local/lib/mysql5/bin/mysqldump',
698
  '/opt/local/lib/mysql4/bin/mysqldump',
699
+ '/xampp/mysql/bin/mysqldump',
700
+ '/Program Files/xampp/mysql/bin/mysqldump',
701
+ '/Program Files/MySQL/MySQL Server 6.0/bin/mysqldump',
702
+ '/Program Files/MySQL/MySQL Server 5.5/bin/mysqldump',
703
+ '/Program Files/MySQL/MySQL Server 5.4/bin/mysqldump',
704
+ '/Program Files/MySQL/MySQL Server 5.1/bin/mysqldump',
705
+ '/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump',
706
+ '/Program Files/MySQL/MySQL Server 4.1/bin/mysqldump'
707
  );
708
 
709
+ if ( is_null( shell_exec( 'hash mysqldump 2>&1' ) ) )
710
+ return 'mysqldump';
711
+
712
  // Find the one which works
713
  foreach ( $mysqldump_locations as $location )
714
+ if ( file_exists( $this->conform_dir( $location ) ) )
715
  return $location;
716
 
717
  return '';
732
 
733
  // List of possible zip locations
734
  $zip_locations = array(
 
735
  '/usr/bin/zip'
736
  );
737
 
738
+ if ( is_null( shell_exec( 'hash zip 2>&1' ) ) )
739
+ return 'zip';
740
+
741
  // Find the one which works
742
  foreach ( $zip_locations as $location )
743
  if ( ! shell_exec( 'hash ' . $location . ' 2>&1' ) )
1128
  * @access public
1129
  * @return null
1130
  */
1131
+ public function errors( $context = null ) {
1132
+
1133
+ if ( ! empty( $context ) )
1134
+ return isset( $this->errors[$context] ) ? $this->errors[$context] : array();
1135
 
1136
  return $this->errors;
1137
 
1151
  if ( empty( $context ) || empty( $error ) )
1152
  return;
1153
 
 
 
 
 
1154
  $this->errors[$context][$_key = md5( implode( ':' , (array) $error ) )] = $error;
1155
 
1156
  }
1161
  * @access public
1162
  * @return null
1163
  */
1164
+ public function warnings( $context = null ) {
1165
+
1166
+ if ( ! empty( $context ) )
1167
+ return isset( $this->warnings[$context] ) ? $this->warnings[$context] : array();
1168
 
1169
  return $this->warnings;
1170
 
plugin.php CHANGED
@@ -5,7 +5,7 @@ Plugin Name: BackUpWordPress
5
  Plugin URI: http://hmn.md/backupwordpress/
6
  Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools &rarr; Backups</strong>.
7
  Author: Human Made Limited
8
- Version: 1.6.2
9
  Author URI: http://hmn.md/
10
  */
11
 
@@ -30,6 +30,7 @@ define( 'HMBKP_PLUGIN_SLUG', 'backupwordpress' );
30
  define( 'HMBKP_PLUGIN_PATH', WP_PLUGIN_DIR . '/' . HMBKP_PLUGIN_SLUG );
31
  define( 'HMBKP_PLUGIN_URL', WP_PLUGIN_URL . '/' . HMBKP_PLUGIN_SLUG );
32
  define( 'HMBKP_REQUIRED_WP_VERSION', '3.1' );
 
33
 
34
  if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) )
35
  define( 'WP_MAX_MEMORY_LIMIT', '256M' );
@@ -106,10 +107,6 @@ function hmbkp_setup_hm_backup() {
106
 
107
  $hm_backup->excludes = hmbkp_valid_custom_excludes();
108
 
109
- // If the backup path is inside ABSPATH then exclude it by default
110
- if ( strpos( hmbkp_path(), hmbkp_conform_dir( ABSPATH ) ) === 0 )
111
- $hm_backup->excludes[] = trailingslashit( str_replace( untrailingslashit( ABSPATH ), '', hmbkp_path() ) );
112
-
113
  }
114
  add_action( 'init', 'hmbkp_setup_hm_backup' );
115
 
@@ -129,6 +126,9 @@ require_once( HMBKP_PLUGIN_PATH . '/functions/backup.functions.php' );
129
  // Load the wp cli command
130
  if ( defined( 'WP_CLI' ) && WP_CLI )
131
  include( HMBKP_PLUGIN_PATH . '/functions/wp-cli.php' );
 
 
 
132
 
133
  // Plugin activation and deactivation
134
  add_action( 'activate_' . HMBKP_PLUGIN_SLUG . '/plugin.php', 'hmbkp_activate' );
5
  Plugin URI: http://hmn.md/backupwordpress/
6
  Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools &rarr; Backups</strong>.
7
  Author: Human Made Limited
8
+ Version: 1.6.3
9
  Author URI: http://hmn.md/
10
  */
11
 
30
  define( 'HMBKP_PLUGIN_PATH', WP_PLUGIN_DIR . '/' . HMBKP_PLUGIN_SLUG );
31
  define( 'HMBKP_PLUGIN_URL', WP_PLUGIN_URL . '/' . HMBKP_PLUGIN_SLUG );
32
  define( 'HMBKP_REQUIRED_WP_VERSION', '3.1' );
33
+ define( 'HMBKP_SECURE_KEY', md5( ABSPATH . time() ) );
34
 
35
  if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) )
36
  define( 'WP_MAX_MEMORY_LIMIT', '256M' );
107
 
108
  $hm_backup->excludes = hmbkp_valid_custom_excludes();
109
 
 
 
 
 
110
  }
111
  add_action( 'init', 'hmbkp_setup_hm_backup' );
112
 
126
  // Load the wp cli command
127
  if ( defined( 'WP_CLI' ) && WP_CLI )
128
  include( HMBKP_PLUGIN_PATH . '/functions/wp-cli.php' );
129
+
130
+ if ( ! defined( 'PCLZIP_TEMPORARY_DIR' ) )
131
+ define( 'PCLZIP_TEMPORARY_DIR', trailingslashit( hmbkp_path() ) );
132
 
133
  // Plugin activation and deactivation
134
  add_action( 'activate_' . HMBKP_PLUGIN_SLUG . '/plugin.php', 'hmbkp_activate' );
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: humanmade, joehoyle, mattheu, tcrsavage, willmot
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.1
5
  Tested up to: 3.3
6
- Stable tag: 1.6.2
7
 
8
  Simple automated back ups of your WordPress powered website.
9
 
@@ -93,6 +93,18 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
93
 
94
  == Changelog ==
95
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  #### 1.6.2
97
 
98
  * Track PHP errors as backup warnings not errors.
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.1
5
  Tested up to: 3.3
6
+ Stable tag: 1.6.3
7
 
8
  Simple automated back ups of your WordPress powered website.
9
 
93
 
94
  == Changelog ==
95
 
96
+ #### 1.6.3
97
+
98
+ * Don't fail archive verification for errors in previous archive methods.
99
+ * Improved detection of zip and mysqldump command.
100
+ * Fix issues when `ABSPATH` is `/`.
101
+ * Remove relience on `SECURE_AUTH_KEY` as it's often not defined.
102
+ * Use `warning()` not `error()` for issues reported by `zip`, `ZipArchive` or PclZip`.
103
+ * Fix download zip on Windows when `ABSPATH` contains a trailing forward slash.
104
+ * Send backup email after backup completes so that fatal errors in email code don't stop the backup from completing.
105
+ * Add missing / to `PCLZIP_TEMPORARY_DIR` define.
106
+ * Catch and display errors during `mysqldump`.
107
+
108
  #### 1.6.2
109
 
110
  * Track PHP errors as backup warnings not errors.