BackUpWordPress - Version 2.0.5

Version Description

Download this release

Release Info

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

Code changes from version 2.0.4 to 2.0.5

admin/actions.php CHANGED
@@ -164,13 +164,13 @@ add_action( 'wp_ajax_hmbkp_calculate', 'hmbkp_ajax_calculate_backup_size' );
164
  */
165
  function hmbkp_ajax_cron_test() {
166
 
167
- $response = wp_remote_get( site_url( 'wp-cron.php' ) );
168
 
169
  if ( is_wp_error( $response ) )
170
  echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . $response->get_error_message() . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
171
 
172
- else if ( $response['response']['code'] != 200 )
173
- echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . $response['response']['code'] . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
174
 
175
  else
176
  echo 1;
164
  */
165
  function hmbkp_ajax_cron_test() {
166
 
167
+ $response = wp_remote_head( site_url( 'wp-cron.php' ) );
168
 
169
  if ( is_wp_error( $response ) )
170
  echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . $response->get_error_message() . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
171
 
172
+ elseif ( wp_remote_retrieve_response_code( $response ) != 200 )
173
+ echo '<div id="hmbkp-warning" class="updated fade"><p><strong>' . __( 'BackUpWordPress has detected a problem.', 'hmbkp' ) . '</strong> ' . sprintf( __( '%1$s is returning a %2$s response which could mean cron jobs aren\'t getting fired properly. BackUpWordPress relies on wp-cron to run scheduled back ups. See the %3$s for more details.', 'hmbkp' ), '<code>wp-cron.php</code>', '<code>' . wp_remote_retrieve_response_code( $response ) . ' ' . get_status_header_desc( wp_remote_retrieve_response_code( $response ) ) . '</code>', '<a href="http://wordpress.org/extend/plugins/backupwordpress/faq/">FAQ</a>' ) . '</p></div>';
174
 
175
  else
176
  echo 1;
admin/constants.php CHANGED
@@ -25,6 +25,9 @@
25
  <dt<?php if ( defined( 'HMBKP_ROOT' ) ) { ?> class="hmbkp_active"<?php } ?>><code>HMBKP_ROOT</code></dt>
26
  <dd><p><?php printf( __( 'The root directory that is backed up. Defaults to %s.', 'hmbkp' ), '<code>' . HM_Backup::get_home_path() . '</code>' ); ?><p class="example"><?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_ROOT', ABSPATH . 'wp/' );</code></p></dd>
27
 
 
 
 
28
  </dl>
29
 
30
  </div>
25
  <dt<?php if ( defined( 'HMBKP_ROOT' ) ) { ?> class="hmbkp_active"<?php } ?>><code>HMBKP_ROOT</code></dt>
26
  <dd><p><?php printf( __( 'The root directory that is backed up. Defaults to %s.', 'hmbkp' ), '<code>' . HM_Backup::get_home_path() . '</code>' ); ?><p class="example"><?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_ROOT', ABSPATH . 'wp/' );</code></p></dd>
27
 
28
+ <dt<?php if ( defined( 'HMBKP_SCHEDULE_TIME' ) ) { ?> class="hmbkp_active"<?php } ?>><code>HMBKP_SCHEDULE_TIME</code></dt>
29
+ <dd><p><?php printf( __( 'The time that your schedules should run. Defaults to %s.', 'hmbkp' ), '<code>23:00</code>' ); ?><p class="example"><?php _e( 'e.g.', 'hmbkp' ); ?> <code>define( 'HMBKP_SCHEDULE_TIME', '07:30' );</code></p></dd>
30
+
31
  </dl>
32
 
33
  </div>
admin/schedule.php CHANGED
@@ -7,30 +7,30 @@ $filesize = $schedule->is_filesize_cached() || isset( $recalculate_filesize ) ?
7
  $type = strtolower( hmbkp_human_get_type( $schedule->get_type() ) );
8
 
9
  // Backup Time
10
- $day = date_i18n( 'l', $schedule->get_next_occurrence() );
11
 
12
- $next_backup = 'title="' . sprintf( __( 'The next backup will be on %1$s at %2$s', 'hmbkp' ), date_i18n( get_option( 'date_format' ), $schedule->get_next_occurrence() ), date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) ) . '"';
13
 
14
  // Backup Re-occurrence
15
  switch ( $schedule->get_reoccurrence() ) :
16
 
17
  case 'hourly' :
18
 
19
- $reoccurrence = date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) === '00' ? sprintf( __( 'hourly on the hour', 'hmbkp' ) ) : sprintf( __( 'hourly at %s minutes past the hour', 'hmbkp' ), '<span ' . $next_backup . '>' . str_replace( '0', '', date_i18n( 'i', $schedule->get_next_occurrence() ) ) ) . '</span>';
20
 
21
  break;
22
 
23
  case 'daily' :
24
 
25
- $reoccurrence = sprintf( __( 'daily at %s', 'hmbkp' ), '<span ' . $next_backup . '>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) . '</span>' );
26
 
27
  break;
28
 
29
 
30
  case 'twicedaily' :
31
 
32
- $times[] = date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() );
33
- $times[] = date_i18n( get_option( 'time_format' ), strtotime( '+ 12 hours', $schedule->get_next_occurrence() ) );
34
 
35
  sort( $times );
36
 
@@ -40,20 +40,20 @@ switch ( $schedule->get_reoccurrence() ) :
40
 
41
  case 'weekly' :
42
 
43
- $reoccurrence = sprintf( __( 'weekly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) . '</span>' );
44
 
45
  break;
46
 
47
  case 'fortnightly' :
48
 
49
- $reoccurrence = sprintf( __( 'fortnightly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) . '</span>' );
50
 
51
  break;
52
 
53
 
54
  case 'monthly' :
55
 
56
- $reoccurrence = sprintf( __( 'on the %1$s of each month at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . date_i18n( 'jS', $schedule->get_next_occurrence() ) . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence() ) . '</span>' );
57
 
58
  break;
59
 
@@ -97,4 +97,4 @@ foreach ( HMBKP_Services::get_services( $schedule ) as $file => $service )
97
 
98
  <?php hmbkp_schedule_actions( $schedule ); ?>
99
 
100
- </div>
7
  $type = strtolower( hmbkp_human_get_type( $schedule->get_type() ) );
8
 
9
  // Backup Time
10
+ $day = date_i18n( 'l', $schedule->get_next_occurrence( false ) );
11
 
12
+ $next_backup = 'title="' . sprintf( __( 'The next backup will be on %1$s at %2$s', 'hmbkp' ), date_i18n( get_option( 'date_format' ), $schedule->get_next_occurrence( false ) ), date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) ) . '"';
13
 
14
  // Backup Re-occurrence
15
  switch ( $schedule->get_reoccurrence() ) :
16
 
17
  case 'hourly' :
18
 
19
+ $reoccurrence = date_i18n( 'i', $schedule->get_next_occurrence( false ) ) === '00' ? sprintf( __( 'hourly on the hour', 'hmbkp' ) ) : sprintf( __( 'hourly at %s minutes past the hour', 'hmbkp' ), '<span ' . $next_backup . '>' . str_replace( '0', '', date_i18n( 'i', $schedule->get_next_occurrence( false ) ) ) ) . '</span>';
20
 
21
  break;
22
 
23
  case 'daily' :
24
 
25
+ $reoccurrence = sprintf( __( 'daily at %s', 'hmbkp' ), '<span ' . $next_backup . '>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) . '</span>' );
26
 
27
  break;
28
 
29
 
30
  case 'twicedaily' :
31
 
32
+ $times[] = date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) );
33
+ $times[] = date_i18n( get_option( 'time_format' ), strtotime( '+ 12 hours', $schedule->get_next_occurrence( false ) ) );
34
 
35
  sort( $times );
36
 
40
 
41
  case 'weekly' :
42
 
43
+ $reoccurrence = sprintf( __( 'weekly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) . '</span>' );
44
 
45
  break;
46
 
47
  case 'fortnightly' :
48
 
49
+ $reoccurrence = sprintf( __( 'fortnightly on %1$s at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . $day . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) . '</span>' );
50
 
51
  break;
52
 
53
 
54
  case 'monthly' :
55
 
56
+ $reoccurrence = sprintf( __( 'on the %1$s of each month at %2$s', 'hmbkp' ), '<span ' . $next_backup . '>' . date_i18n( 'jS', $schedule->get_next_occurrence( false ) ) . '</span>', '<span>' . date_i18n( get_option( 'time_format' ), $schedule->get_next_occurrence( false ) ) . '</span>' );
57
 
58
  break;
59
 
97
 
98
  <?php hmbkp_schedule_actions( $schedule ); ?>
99
 
100
+ </div>
classes/schedule.php CHANGED
@@ -48,51 +48,6 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
48
  */
49
  private $schedule_start_time = 0;
50
 
51
- /**
52
- * Take a file size and return a human readable
53
- * version
54
- *
55
- * @access public
56
- * @static
57
- * @param int $size
58
- * @param string $unit. (default: null)
59
- * @param string $format. (default: '%01.2f %s')
60
- * @param bool $si. (default: true)
61
- * @return int
62
- */
63
- public static function human_filesize( $size, $unit = null, $format = '%01.2f %s', $si = true ) {
64
-
65
- // Units
66
- if ( $si === true ) :
67
- $sizes = array( 'B', 'kB', 'MB', 'GB', 'TB', 'PB' );
68
- $mod = 1000;
69
-
70
- else :
71
- $sizes = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
72
- $mod = 1024;
73
-
74
- endif;
75
-
76
- $ii = count( $sizes ) - 1;
77
-
78
- // Max unit
79
- $unit = array_search( (string) $unit, $sizes );
80
-
81
- if ( is_null( $unit ) || $unit === false )
82
- $unit = $ii;
83
-
84
- // Loop
85
- $i = 0;
86
-
87
- while ( $unit != $i && $size >= 1024 && $i < $ii ) {
88
- $size /= $mod;
89
- $i++;
90
- }
91
-
92
- return sprintf( $format, $size, $sizes[$i] );
93
-
94
- }
95
-
96
  /**
97
  * Setup the schedule object
98
  *
@@ -141,6 +96,10 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
141
  // Set the archive filename to site name + schedule slug + date
142
  $this->set_archive_filename( implode( '-', array( get_bloginfo( 'name' ), $this->get_id(), $this->get_type(), date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' );
143
 
 
 
 
 
144
  }
145
 
146
  /**
@@ -365,7 +324,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
365
 
366
  }
367
 
368
- return self::human_filesize( $filesize, null, '%01u %s' );
369
 
370
  }
371
 
@@ -403,15 +362,18 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
403
 
404
  if ( ! $this->schedule_start_time ) {
405
 
406
- if ( strtotime( '11pm' ) < strtotime( 'now' ) )
407
- $date = strtotime( 'tomorrow 11pm' );
408
- else
409
- $date = strtotime( '11pm' );
 
 
 
 
410
 
411
- $date -= ( get_option( 'gmt_offset' ) * 3600 );
412
-
413
  $this->set_schedule_start_time( $date );
414
  }
 
415
  return $this->schedule_start_time;
416
 
417
  }
@@ -420,7 +382,7 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
420
  * Set the schedule start time.
421
  *
422
  * @access public
423
- * @param int $timestamp
424
  * @return void
425
  */
426
  public function set_schedule_start_time( $timestamp ) {
@@ -494,18 +456,33 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
494
  *
495
  * @access public
496
  */
497
- public function get_next_occurrence() {
 
 
 
 
 
498
 
499
- return wp_next_scheduled( 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
 
 
 
500
 
501
  }
502
 
 
 
 
 
 
 
 
503
  private function get_schedule_running_path() {
504
  return $this->get_path() . '/.schedule-' . $this->get_id() . '-running';
505
  }
506
 
507
  /**
508
- * Schedule the cron
509
  *
510
  * @access public
511
  */
@@ -515,8 +492,16 @@ class HMBKP_Scheduled_Backup extends HM_Backup {
515
  $this->unschedule();
516
 
517
  wp_schedule_event( $this->get_schedule_start_time(), $this->get_reoccurrence(), 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
 
518
  }
519
 
 
 
 
 
 
 
 
520
  public function unschedule() {
521
  wp_clear_scheduled_hook( 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
522
  }
48
  */
49
  private $schedule_start_time = 0;
50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  /**
52
  * Setup the schedule object
53
  *
96
  // Set the archive filename to site name + schedule slug + date
97
  $this->set_archive_filename( implode( '-', array( get_bloginfo( 'name' ), $this->get_id(), $this->get_type(), date( 'Y-m-d-H-i-s', current_time( 'timestamp' ) ) ) ) . '.zip' );
98
 
99
+ // Setup the schedule if it isn't set or TODO if it's changed
100
+ if ( ( ! $this->get_next_occurrence() && in_array( $this->get_reoccurrence(), array_keys( wp_get_schedules() ) ) ) || ( date( get_option( 'time_format' ), strtotime( HMBKP_SCHEDULE_TIME ) - ( get_option( 'gmt_offset' ) * 3600 ) ) !== date( get_option( 'time_format' ), $this->get_next_occurrence() ) ) )
101
+ $this->schedule();
102
+
103
  }
104
 
105
  /**
324
 
325
  }
326
 
327
+ return size_format( $filesize );
328
 
329
  }
330
 
362
 
363
  if ( ! $this->schedule_start_time ) {
364
 
365
+ $date = strtotime( HMBKP_SCHEDULE_TIME );
366
+
367
+ // Convert to UTC
368
+ $date -= get_option( 'gmt_offset' ) * 3600;
369
+
370
+ // if the scheduled time already passed today then start at the next interval instead
371
+ if ( $date <= strtotime( 'now' ) )
372
+ $date += $this->get_interval();
373
 
 
 
374
  $this->set_schedule_start_time( $date );
375
  }
376
+
377
  return $this->schedule_start_time;
378
 
379
  }
382
  * Set the schedule start time.
383
  *
384
  * @access public
385
+ * @param int $timestamp in UTC
386
  * @return void
387
  */
388
  public function set_schedule_start_time( $timestamp ) {
456
  *
457
  * @access public
458
  */
459
+ public function get_next_occurrence( $gmt = true ) {
460
+
461
+ $time = wp_next_scheduled( 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
462
+
463
+ if ( ! $time )
464
+ $time = 0;
465
 
466
+ if ( ! $gmt )
467
+ $time += get_option( 'gmt_offset' ) * 3600;
468
+
469
+ return $time;
470
 
471
  }
472
 
473
+
474
+ /**
475
+ * Get the path to the backup running file that stores the running backup status
476
+ *
477
+ * @access private
478
+ * @return string
479
+ */
480
  private function get_schedule_running_path() {
481
  return $this->get_path() . '/.schedule-' . $this->get_id() . '-running';
482
  }
483
 
484
  /**
485
+ * Schedule the backup cron
486
  *
487
  * @access public
488
  */
492
  $this->unschedule();
493
 
494
  wp_schedule_event( $this->get_schedule_start_time(), $this->get_reoccurrence(), 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
495
+
496
  }
497
 
498
+
499
+ /**
500
+ * Unschedule the backup cron.
501
+ *
502
+ * @access public
503
+ * @return void
504
+ */
505
  public function unschedule() {
506
  wp_clear_scheduled_hook( 'hmbkp_schedule_hook', array( 'id' => $this->get_id() ) );
507
  }
functions/core.php CHANGED
@@ -33,9 +33,11 @@ function hmbkp_deactivate() {
33
  delete_transient( 'hmbkp_running' );
34
  delete_transient( 'hmbkp_estimated_filesize' );
35
 
36
- // Clear cron
37
- wp_clear_scheduled_hook( 'hmbkp_schedule_backup_hook' );
38
- wp_clear_scheduled_hook( 'hmbkp_schedule_single_backup_hook' );
 
 
39
 
40
  hmbkp_cleanup();
41
 
@@ -87,7 +89,7 @@ function hmbkp_update() {
87
  }
88
 
89
  // Version 1 to 2
90
- if ( version_compare ( '2.0' , get_option( 'hmbkp_plugin_version' ) ) ) {
91
 
92
  /**
93
  * Setup a backwards compatible schedule
@@ -139,7 +141,7 @@ function hmbkp_update() {
139
  $legacy_schedule->save();
140
 
141
  // Remove the legacy options
142
- foreach ( array( 'hmbkp_email', 'hmbkp_database_only', 'hmbkp_files_only', 'hmbkp_max_backups', 'hmbkp_email_address', 'hmbkp_email', 'hmbkp_schedule_frequency', 'hmbkp_disable_automatic_backup' ) as $option_name )
143
  delete_option( $option_name );
144
 
145
 
33
  delete_transient( 'hmbkp_running' );
34
  delete_transient( 'hmbkp_estimated_filesize' );
35
 
36
+ // Clear hmbkp crons
37
+ foreach( get_option( 'cron' ) as $cron )
38
+ foreach( $cron as $key => $value )
39
+ if ( strpos( $key, 'hmbkp' ) !== false )
40
+ wp_clear_scheduled_hook( $key );
41
 
42
  hmbkp_cleanup();
43
 
89
  }
90
 
91
  // Version 1 to 2
92
+ if ( version_compare( '2.0' , get_option( 'hmbkp_plugin_version' ), '>' ) ) {
93
 
94
  /**
95
  * Setup a backwards compatible schedule
141
  $legacy_schedule->save();
142
 
143
  // Remove the legacy options
144
+ foreach ( array( 'hmbkp_database_only', 'hmbkp_files_only', 'hmbkp_max_backups', 'hmbkp_email_address', 'hmbkp_email', 'hmbkp_schedule_frequency', 'hmbkp_disable_automatic_backup' ) as $option_name )
145
  delete_option( $option_name );
146
 
147
 
functions/interface.php CHANGED
@@ -8,7 +8,7 @@
8
  function hmbkp_get_backup_row( $file, HMBKP_Scheduled_Backup $schedule ) {
9
 
10
  $encoded_file = urlencode( base64_encode( $file ) );
11
- $offset = current_time( 'timestamp' ) - time(); ?>
12
 
13
  <tr class="hmbkp_manage_backups_row<?php if ( file_exists( hmbkp_path() . '/.backup_complete' ) ) : ?> completed<?php unlink( hmbkp_path() . '/.backup_complete' ); endif; ?>">
14
 
@@ -17,7 +17,7 @@ function hmbkp_get_backup_row( $file, HMBKP_Scheduled_Backup $schedule ) {
17
  </th>
18
 
19
  <td class="code">
20
- <?php echo esc_attr( HMBKP_Scheduled_Backup::human_filesize( @filesize( $file ) ) ); ?>
21
  </td>
22
 
23
  <td><?php echo esc_attr( hmbkp_human_get_type( $file, $schedule ) ); ?></td>
8
  function hmbkp_get_backup_row( $file, HMBKP_Scheduled_Backup $schedule ) {
9
 
10
  $encoded_file = urlencode( base64_encode( $file ) );
11
+ $offset = get_option( 'gmt_offset' ) * 3600; ?>
12
 
13
  <tr class="hmbkp_manage_backups_row<?php if ( file_exists( hmbkp_path() . '/.backup_complete' ) ) : ?> completed<?php unlink( hmbkp_path() . '/.backup_complete' ); endif; ?>">
14
 
17
  </th>
18
 
19
  <td class="code">
20
+ <?php echo esc_attr( size_format( @filesize( $file ) ) ); ?>
21
  </td>
22
 
23
  <td><?php echo esc_attr( hmbkp_human_get_type( $file, $schedule ) ); ?></td>
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: 2.0.4
9
  Author URI: http://hmn.md/
10
  */
11
 
@@ -45,6 +45,9 @@ if ( ! defined( 'HMBKP_REQUIRED_WP_VERSION' ) )
45
  if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) )
46
  define( 'WP_MAX_MEMORY_LIMIT', '256M' );
47
 
 
 
 
48
  // Don't activate on anything less than PHP 5.2.4
49
  if ( version_compare( phpversion(), '5.2.4', '<' ) ) {
50
 
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: 2.0.5
9
  Author URI: http://hmn.md/
10
  */
11
 
45
  if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) )
46
  define( 'WP_MAX_MEMORY_LIMIT', '256M' );
47
 
48
+ if ( ! defined( 'HMBKP_SCHEDULE_TIME' ) )
49
+ define( 'HMBKP_SCHEDULE_TIME', '11pm' );
50
+
51
  // Don't activate on anything less than PHP 5.2.4
52
  if ( version_compare( phpversion(), '5.2.4', '<' ) ) {
53
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: humanmade, joehoyle, mattheu, tcrsavage, willmot, cuvelier
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.3.3
5
  Tested up to: 3.5
6
- Stable tag: 2.0.4
7
 
8
  Simple automated back ups of your WordPress powered website.
9
 
@@ -103,6 +103,17 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
103
 
104
  == Changelog ==
105
 
 
 
 
 
 
 
 
 
 
 
 
106
  #### 2.0.4
107
 
108
  * Revert the change to the way the plugin url and path were calculated as it caused regressions on some systems.
3
  Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
4
  Requires at least: 3.3.3
5
  Tested up to: 3.5
6
+ Stable tag: 2.0.5
7
 
8
  Simple automated back ups of your WordPress powered website.
9
 
103
 
104
  == Changelog ==
105
 
106
+ #### 2.0.5
107
+
108
+ * Re-setup the cron schedules if they get deleted somehow.
109
+ * Delete all BackUpWordPress cron entries when the plugin is deactivated.
110
+ * Introduce the `HMBKP_SCHEDULE_TIME` constant to allow control over the time schedules run.
111
+ * Make sure the schedule times and times of previous backups are shown in local time.
112
+ * Fix a bug that could cause the legacy backup schedule to be created on every update, not just when going from 1.x to 2.x.
113
+ * Improve the usefulness of the `wp-cron.php` response code check.
114
+ * Use the built in `site_format` function for human readable filesizes instead of defining our own function.
115
+
116
+
117
  #### 2.0.4
118
 
119
  * Revert the change to the way the plugin url and path were calculated as it caused regressions on some systems.