Migration, Backup, Staging – WPvivid - Version 0.9.60

Version Description

  • Fixed: Failed to back up files of 0 KB in PHP 8 environment.
  • Changed: The information of backup folder name will not be included when you export the plugin settings.
  • Fixed some bugs in the plugin code.
  • Optimized the plugin code.
Download this release

Release Info

Developer wpvivid
Plugin Icon 128x128 Migration, Backup, Staging – WPvivid
Version 0.9.60
Comparing to
See all releases

Code changes from version 0.9.59 to 0.9.60

admin/class-wpvivid-admin.php CHANGED
@@ -592,7 +592,7 @@ class WPvivid_Admin {
592
 
593
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
594
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
595
- echo '<div class="notice notice-error notice-wp-cron is-dismissible"><p>'.__('In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false.', 'wpvivid-backuprestore').'</p></div>';
596
  }
597
  }
598
 
592
 
593
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
594
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
595
+ echo '<div class="notice notice-error notice-wp-cron is-dismissible"><p>'.__('In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false. If you are using an external cron system, simply click \'X\' to dismiss this message.', 'wpvivid-backuprestore').'</p></div>';
596
  }
597
  }
598
 
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -2506,7 +2506,7 @@ function wpvivid_backuppage_add_schedule_module(){
2506
  $schedule=WPvivid_Schedule::get_schedule();
2507
  if($schedule['enable']){
2508
  $schedule_status='Enabled';
2509
- $next_backup_time=date("l, F d, Y H:i", $schedule['next_start']);
2510
  }
2511
  else{
2512
  $schedule_status='Disabled';
@@ -2520,7 +2520,7 @@ function wpvivid_backuppage_add_schedule_module(){
2520
  <div class="schedule-block">
2521
  <p id="wpvivid_schedule_status"><strong><?php _e('Schedule Status: ', 'wpvivid-backuprestore'); ?></strong><?php _e($schedule_status); ?></p>
2522
  <div id="wpvivid_schedule_info">
2523
- <p><strong><?php _e('Server Time: ', 'wpvivid-backuprestore'); ?></strong><?php _e(date("l, F d, Y H:i",time())); ?></p>
2524
  <p><span id="wpvivid_last_backup_msg"><?php _e($last_message); ?></span></p>
2525
  <p id="wpvivid_next_backup"><strong><?php _e('Next Backup: ', 'wpvivid-backuprestore'); ?></strong><?php _e($next_backup_time); ?></p>
2526
  </div>
2506
  $schedule=WPvivid_Schedule::get_schedule();
2507
  if($schedule['enable']){
2508
  $schedule_status='Enabled';
2509
+ $next_backup_time=date("l, F-d-Y H:i", $schedule['next_start']);
2510
  }
2511
  else{
2512
  $schedule_status='Disabled';
2520
  <div class="schedule-block">
2521
  <p id="wpvivid_schedule_status"><strong><?php _e('Schedule Status: ', 'wpvivid-backuprestore'); ?></strong><?php _e($schedule_status); ?></p>
2522
  <div id="wpvivid_schedule_info">
2523
+ <p><strong><?php _e('Server Time: ', 'wpvivid-backuprestore'); ?></strong><?php _e(date("l, F-d-Y H:i",time())); ?></p>
2524
  <p><span id="wpvivid_last_backup_msg"><?php _e($last_message); ?></span></p>
2525
  <p id="wpvivid_next_backup"><strong><?php _e('Next Backup: ', 'wpvivid-backuprestore'); ?></strong><?php _e($next_backup_time); ?></p>
2526
  </div>
includes/class-wpvivid-importer.php CHANGED
@@ -154,7 +154,7 @@ class WPvivid_Export_List extends WP_List_Table
154
  '.$item['file_name'].'
155
  </div>
156
  <div style="padding-bottom: 5px;">
157
- <div class="backuptime">Data Modified: ' . __(date('M d, Y H:i', $item['time']), 'wpvivid-backuprestore') . '</div>
158
  </div>
159
  </td>';
160
  }
154
  '.$item['file_name'].'
155
  </div>
156
  <div style="padding-bottom: 5px;">
157
+ <div class="backuptime">Data Modified: ' . __(date('M-d-Y H:i', $item['time']), 'wpvivid-backuprestore') . '</div>
158
  </div>
159
  </td>';
160
  }
includes/class-wpvivid-setting.php CHANGED
@@ -497,6 +497,15 @@ class WPvivid_Setting
497
  $json['data']['wpvivid_email_setting']=self::get_option('wpvivid_email_setting');
498
  $json['data']['wpvivid_saved_api_token']=self::get_option('wpvivid_saved_api_token');
499
  $json = apply_filters('wpvivid_export_setting_addon', $json);
 
 
 
 
 
 
 
 
 
500
  }
501
 
502
  if($history)
497
  $json['data']['wpvivid_email_setting']=self::get_option('wpvivid_email_setting');
498
  $json['data']['wpvivid_saved_api_token']=self::get_option('wpvivid_saved_api_token');
499
  $json = apply_filters('wpvivid_export_setting_addon', $json);
500
+ if(isset($json['data']['wpvivid_local_setting']['path'])){
501
+ unset($json['data']['wpvivid_local_setting']['path']);
502
+ }
503
+ if(isset($json['data']['wpvivid_common_setting']['log_save_location'])){
504
+ unset($json['data']['wpvivid_common_setting']['log_save_location']);
505
+ }
506
+ if(isset($json['data']['wpvivid_common_setting']['backup_prefix'])){
507
+ unset($json['data']['wpvivid_common_setting']['backup_prefix']);
508
+ }
509
  }
510
 
511
  if($history)
includes/class-wpvivid.php CHANGED
@@ -3973,6 +3973,7 @@ class WPvivid {
3973
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
3974
  }
3975
  else{
 
3976
  if($message['status']['str'] == 'completed'){
3977
  $backup_status='Succeeded';
3978
  $last_message=$backup_status.', '.$message['status']['start_time'].' <a onclick="wpvivid_read_log(\''.'wpvivid_read_last_backup_log'.'\', \''.$message['log_file_name'].'\');" style="cursor:pointer;"> Log</a>';
@@ -5057,6 +5058,7 @@ class WPvivid {
5057
  die();
5058
  }
5059
  if (json_last_error() === JSON_ERROR_NONE && is_array($json) && array_key_exists('plugin', $json) && $json['plugin'] == 'WPvivid') {
 
5060
  WPvivid_Setting::import_json_to_setting($json);
5061
  //WPvivid_Schedule::reset_schedule();
5062
  do_action('wpvivid_reset_schedule');
@@ -5222,7 +5224,7 @@ class WPvivid {
5222
  else{
5223
  $offset=get_option('gmt_offset');
5224
  $localtime = strtotime($value['time']) + $offset * 60 * 60;
5225
- $value['time'] = date('Y-m-d H:i:s',$localtime);
5226
  }
5227
  if (empty($value['des'])) {
5228
  $value['des'] = 'N/A';
@@ -5670,7 +5672,7 @@ class WPvivid {
5670
  <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid-backuprestore') . '" value="' . esc_attr($key, 'wpvivid-backuprestore') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5671
  <td class="tablelistcolumn">
5672
  <div style="float:left;padding:0 10px 10px 0;">
5673
- <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M d, Y H:i', $backup_time), 'wpvivid-backuprestore') . '</div>
5674
  <div class="common-table">
5675
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5676
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
@@ -5693,7 +5695,7 @@ class WPvivid {
5693
  </td>
5694
  <td class="tablelistcolumn" style="min-width:100px;">
5695
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5696
- ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid-backuprestore') . '\',\'' . __(date('M d, Y H:i', $backup_time), 'wpvivid-backuprestore') . '\',\'' . __($value['type'], 'wpvivid-backuprestore') . '\');" style="float:left;padding:10px 10px 10px 0;">
5697
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid-backuprestore') . '</span>
5698
  </div>
5699
  </div>
@@ -6195,7 +6197,7 @@ class WPvivid {
6195
  {
6196
  if(version_compare(phpversion(),'8.0.0','>='))
6197
  {
6198
- return 'WPvivid_PclZip_Class';
6199
  }
6200
  return $class;
6201
  }
3973
  $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
3974
  }
3975
  else{
3976
+ $message['status']['start_time'] = date("l, F-d-Y H:i", strtotime($message['status']['start_time']));
3977
  if($message['status']['str'] == 'completed'){
3978
  $backup_status='Succeeded';
3979
  $last_message=$backup_status.', '.$message['status']['start_time'].' <a onclick="wpvivid_read_log(\''.'wpvivid_read_last_backup_log'.'\', \''.$message['log_file_name'].'\');" style="cursor:pointer;"> Log</a>';
5058
  die();
5059
  }
5060
  if (json_last_error() === JSON_ERROR_NONE && is_array($json) && array_key_exists('plugin', $json) && $json['plugin'] == 'WPvivid') {
5061
+ $json = apply_filters('wpvivid_trim_import_info', $json);
5062
  WPvivid_Setting::import_json_to_setting($json);
5063
  //WPvivid_Schedule::reset_schedule();
5064
  do_action('wpvivid_reset_schedule');
5224
  else{
5225
  $offset=get_option('gmt_offset');
5226
  $localtime = strtotime($value['time']) + $offset * 60 * 60;
5227
+ $value['time'] = date('F-d-Y H:i:s',$localtime);
5228
  }
5229
  if (empty($value['des'])) {
5230
  $value['des'] = 'N/A';
5672
  <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid-backuprestore') . '" value="' . esc_attr($key, 'wpvivid-backuprestore') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5673
  <td class="tablelistcolumn">
5674
  <div style="float:left;padding:0 10px 10px 0;">
5675
+ <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M-d-Y H:i', $backup_time), 'wpvivid-backuprestore') . '</div>
5676
  <div class="common-table">
5677
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5678
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
5695
  </td>
5696
  <td class="tablelistcolumn" style="min-width:100px;">
5697
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5698
+ ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid-backuprestore') . '\',\'' . __(date('M-d-Y H:i', $backup_time), 'wpvivid-backuprestore') . '\',\'' . __($value['type'], 'wpvivid-backuprestore') . '\');" style="float:left;padding:10px 10px 10px 0;">
5699
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid-backuprestore') . '</span>
5700
  </div>
5701
  </div>
6197
  {
6198
  if(version_compare(phpversion(),'8.0.0','>='))
6199
  {
6200
+ return 'WPvivid_PclZip_Class_Ex';
6201
  }
6202
  return $class;
6203
  }
includes/staging/class-wpvivid-staging-log-page.php CHANGED
@@ -111,7 +111,7 @@ class WPvivid_Staging_Log_List_Free extends WP_List_Table
111
  {
112
  $offset=get_option('gmt_offset');
113
  $localtime = strtotime($log['time']) + $offset * 60 * 60;
114
- echo '<td><label for="tablecell">'.date('Y-m-d H:i:s',$localtime).'</label></td>';
115
  }
116
 
117
  protected function column_wpvivid_log_type($log)
@@ -474,7 +474,7 @@ class WPvivid_Staging_Log_Page_Free
474
  else{
475
  $offset=get_option('gmt_offset');
476
  $localtime = strtotime($value['time']) + $offset * 60 * 60;
477
- $value['time'] = date('Y-m-d H:i:s',$localtime);
478
  }
479
  if (empty($value['des'])) {
480
  $value['des'] = 'N/A';
111
  {
112
  $offset=get_option('gmt_offset');
113
  $localtime = strtotime($log['time']) + $offset * 60 * 60;
114
+ echo '<td><label for="tablecell">'.date('F-d-Y H:i:s',$localtime).'</label></td>';
115
  }
116
 
117
  protected function column_wpvivid_log_type($log)
474
  else{
475
  $offset=get_option('gmt_offset');
476
  $localtime = strtotime($value['time']) + $offset * 60 * 60;
477
+ $value['time'] = date('F-d-Y H:i:s',$localtime);
478
  }
479
  if (empty($value['des'])) {
480
  $value['des'] = 'N/A';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: move, clone, migrate, staging, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
  Tested up to: 5.8
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.59
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
@@ -192,6 +192,11 @@ Thank you for translating WPvivid Backup Plugin to your languages!
192
  * [Nima](https://profiles.wordpress.org/nima78600/) (Persian)
193
 
194
  == Changelog ==
 
 
 
 
 
195
  = 0.9.59 =
196
  - Fixed the PHP Guzzle library support compatibility issue which could cause backup failure in some cases.
197
  - Fixed some bugs in the plugin code.
4
  Requires at least: 4.5
5
  Tested up to: 5.8
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.60
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
192
  * [Nima](https://profiles.wordpress.org/nima78600/) (Persian)
193
 
194
  == Changelog ==
195
+ = 0.9.60 =
196
+ - Fixed: Failed to back up files of 0 KB in PHP 8 environment.
197
+ - Changed: The information of backup folder name will not be included when you export the plugin settings.
198
+ - Fixed some bugs in the plugin code.
199
+ - Optimized the plugin code.
200
  = 0.9.59 =
201
  - Fixed the PHP Guzzle library support compatibility issue which could cause backup failure in some cases.
202
  - Fixed some bugs in the plugin code.
wpvivid-backuprestore.php CHANGED
@@ -7,7 +7,7 @@
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
- * Version: 0.9.59
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
@@ -21,7 +21,7 @@ if ( ! defined( 'WPINC' ) ) {
21
  die;
22
  }
23
 
24
- define( 'WPVIVID_PLUGIN_VERSION', '0.9.59' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
7
  * @wordpress-plugin
8
  * Plugin Name: WPvivid Backup Plugin
9
  * Description: Clone or copy WP sites then move or migrate them to new host (new domain), schedule backups, transfer backups to leading remote storage. All in one.
10
+ * Version: 0.9.60
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
21
  die;
22
  }
23
 
24
+ define( 'WPVIVID_PLUGIN_VERSION', '0.9.60' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');