Migration, Backup, Staging – WPvivid - Version 0.9.26

Version Description

  • Optimized the plugin's UI.
  • Added a new tab for downloading WPvivid Backup for MainWP.
Download this release

Release Info

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

Code changes from version 0.9.25 to 0.9.26

admin/class-wpvivid-admin.php CHANGED
@@ -74,6 +74,7 @@ class WPvivid_Admin {
74
  $screen_ids[]='wpvivid-backup_page_wpvivid-website';
75
  $screen_ids[]='wpvivid-backup_page_wpvivid-log';
76
  $screen_ids[]='wpvivid-backup_page_wpvivid-key';
 
77
  return $screen_ids;
78
  }
79
 
@@ -148,6 +149,15 @@ class WPvivid_Admin {
148
  $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-key';
149
  $menu['index']=8;
150
  $toolbar_menus[$menu['parent']]['child'][$menu['id']]=$menu;
 
 
 
 
 
 
 
 
 
151
  return $toolbar_menus;
152
  }
153
 
@@ -225,6 +235,15 @@ class WPvivid_Admin {
225
  $submenu['index']=8;
226
  $submenus[$submenu['menu_slug']]=$submenu;
227
 
 
 
 
 
 
 
 
 
 
228
  return $submenus;
229
  }
230
 
@@ -402,6 +421,9 @@ class WPvivid_Admin {
402
  else if(isset($_REQUEST['tab-key'])){
403
  self::wpvivid_set_page_request('key');
404
  }
 
 
 
405
  else
406
  {
407
  global $request_page;
@@ -521,6 +543,11 @@ class WPvivid_Admin {
521
  $this->display_plugin_setup_page();
522
  }
523
 
 
 
 
 
 
524
  public function wpvivid_set_page_request($page){
525
  global $request_page;
526
  switch($page)
@@ -549,6 +576,9 @@ class WPvivid_Admin {
549
  case "key":
550
  $request_page='wpvivid_tab_key';
551
  break;
 
 
 
552
  default:
553
  $request_page='wpvivid_tab_general';
554
  break;
@@ -690,6 +720,7 @@ class WPvivid_Admin {
690
  $page_array['website_info'] = array('index' => '6', 'tab_func' => array($this, 'wpvivid_add_tab_website_info'), 'page_func' => array($this, 'wpvivid_add_page_website_info'));
691
  $page_array['log'] = array('index' => '7', 'tab_func' => array($this, 'wpvivid_add_tab_log'), 'page_func' => array($this, 'wpvivid_add_page_log'));
692
  $page_array['read_log'] = array('index' => '9', 'tab_func' => array($this, 'wpvivid_add_tab_read_log'), 'page_func' => array($this, 'wpvivid_add_page_read_log'));
 
693
  return $page_array;
694
  }
695
 
@@ -740,6 +771,12 @@ class WPvivid_Admin {
740
  <?php
741
  }
742
 
 
 
 
 
 
 
743
  public function wpvivid_add_page_backup(){
744
  $html_progress = '';
745
  $html_backup = '';
@@ -1150,4 +1187,19 @@ class WPvivid_Admin {
1150
  </div>
1151
  <?php
1152
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1153
  }
74
  $screen_ids[]='wpvivid-backup_page_wpvivid-website';
75
  $screen_ids[]='wpvivid-backup_page_wpvivid-log';
76
  $screen_ids[]='wpvivid-backup_page_wpvivid-key';
77
+ $screen_ids[]='wpvivid-backup_page_wpvivid-mainwp';
78
  return $screen_ids;
79
  }
80
 
149
  $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-key';
150
  $menu['index']=8;
151
  $toolbar_menus[$menu['parent']]['child'][$menu['id']]=$menu;
152
+
153
+ $menu['id']='wpvivid_admin_menu_mwp';
154
+ $menu['parent']='wpvivid_admin_menu';
155
+ $menu['title']='MainWP';
156
+ $menu['tab']= 'admin.php?page=WPvivid&tab-mainwp';
157
+ $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-mainwp';
158
+ $menu['index']=30;
159
+ $toolbar_menus[$menu['parent']]['child'][$menu['id']]=$menu;
160
+
161
  return $toolbar_menus;
162
  }
163
 
235
  $submenu['index']=8;
236
  $submenus[$submenu['menu_slug']]=$submenu;
237
 
238
+ $submenu['parent_slug']=$this->plugin_name;
239
+ $submenu['page_title']= __('WPvivid Backup');
240
+ $submenu['menu_title']=__('MainWP', 'wpvivid');
241
+ $submenu['capability']='administrator';
242
+ $submenu['menu_slug']='wpvivid-mainwp';
243
+ $submenu['function']=array($this, 'display_plugin_mainwp_page');
244
+ $submenu['index']=30;
245
+ $submenus[$submenu['menu_slug']]=$submenu;
246
+
247
  return $submenus;
248
  }
249
 
421
  else if(isset($_REQUEST['tab-key'])){
422
  self::wpvivid_set_page_request('key');
423
  }
424
+ else if(isset($_REQUEST['tab-mainwp'])){
425
+ self::wpvivid_set_page_request('mainwp');
426
+ }
427
  else
428
  {
429
  global $request_page;
543
  $this->display_plugin_setup_page();
544
  }
545
 
546
+ public function display_plugin_mainwp_page(){
547
+ self::wpvivid_set_page_request('mainwp');
548
+ $this->display_plugin_setup_page();
549
+ }
550
+
551
  public function wpvivid_set_page_request($page){
552
  global $request_page;
553
  switch($page)
576
  case "key":
577
  $request_page='wpvivid_tab_key';
578
  break;
579
+ case "mainwp":
580
+ $request_page='wpvivid_tab_mainwp';
581
+ break;
582
  default:
583
  $request_page='wpvivid_tab_general';
584
  break;
720
  $page_array['website_info'] = array('index' => '6', 'tab_func' => array($this, 'wpvivid_add_tab_website_info'), 'page_func' => array($this, 'wpvivid_add_page_website_info'));
721
  $page_array['log'] = array('index' => '7', 'tab_func' => array($this, 'wpvivid_add_tab_log'), 'page_func' => array($this, 'wpvivid_add_page_log'));
722
  $page_array['read_log'] = array('index' => '9', 'tab_func' => array($this, 'wpvivid_add_tab_read_log'), 'page_func' => array($this, 'wpvivid_add_page_read_log'));
723
+ $page_array['mwp'] = array('index' => '30', 'tab_func' => array($this, 'wpvivid_add_tab_mwp'), 'page_func' => array($this, 'wpvivid_add_page_mwp'));
724
  return $page_array;
725
  }
726
 
771
  <?php
772
  }
773
 
774
+ public function wpvivid_add_tab_mwp(){
775
+ ?>
776
+ <a href="#" id="wpvivid_tab_mainwp" class="nav-tab wrap-nav-tab" onclick="switchTabs(event, 'mwp-page')"><?php _e('MainWP', 'wpvivid'); ?></a>
777
+ <?php
778
+ }
779
+
780
  public function wpvivid_add_page_backup(){
781
  $html_progress = '';
782
  $html_backup = '';
1187
  </div>
1188
  <?php
1189
  }
1190
+
1191
+ public function wpvivid_add_page_mwp(){
1192
+ ?>
1193
+ <div id="mwp-page" class="wrap-tab-content wpvivid_tab_mainwp" name="tab-mwp" style="display:none;">
1194
+ <div style="padding: 10px; background-color: #fff;">
1195
+ <div style="margin-bottom: 10px;">
1196
+ WPvivid Backup Plugin can be managed from MainWP dashboard now. <a target="_blank" href="https://wordpress.org/plugins/wpvivid-backup-mainwp/" style="text-decoration: none;">Download WPvivid Backup for MainWP extension from wordpress.org.</a>
1197
+ </div>
1198
+ <div>
1199
+ <strong>Note: </strong>This extension currently only works with the community version of WPvivid Backup Plugin.
1200
+ </div>
1201
+ </div>
1202
+ </div>
1203
+ <?php
1204
+ }
1205
  }
admin/css/wpvivid-admin.css CHANGED
@@ -55,11 +55,10 @@
55
  .remote-storage-amazons3-encryption input, span{display:line-block; margin-top:10px; margin-bottom:10px;margin-right:10px;}
56
  .backup-list-head{}
57
  .storage-account-form {padding-top: 1px; padding-bottom: 1px;}
58
-
59
  .quicktransfer{width:100%; float:left; box-sizing:border-box;margin-right:10px; padding:10px;}
60
  .quicktransfer label{display:inline-block;margin-bottom:10px;}
61
  .quicktransfer-btn{display:block !important; margin:0 auto !important;width:220px;height:50px !important; line-height:48px !important; font-size:20px !important;}
62
-
63
  @media screen and (max-width:1650px) {
64
  .qucikbackup-schedule{
65
  float:none;
55
  .remote-storage-amazons3-encryption input, span{display:line-block; margin-top:10px; margin-bottom:10px;margin-right:10px;}
56
  .backup-list-head{}
57
  .storage-account-form {padding-top: 1px; padding-bottom: 1px;}
 
58
  .quicktransfer{width:100%; float:left; box-sizing:border-box;margin-right:10px; padding:10px;}
59
  .quicktransfer label{display:inline-block;margin-bottom:10px;}
60
  .quicktransfer-btn{display:block !important; margin:0 auto !important;width:220px;height:50px !important; line-height:48px !important; font-size:20px !important;}
61
+ .wpvivid-feature-pro{font-size:12px;border:1px solid #f1f1f1;padding:3px 5px;margin: 10px 10px 10px 0;border-radius:5px;}
62
  @media screen and (max-width:1650px) {
63
  .qucikbackup-schedule{
64
  float:none;
admin/partials/wpvivid-admin-display.php CHANGED
@@ -45,7 +45,7 @@ function wpvivid_schedule_module($html){
45
  function wpvivid_join_pro_testing($html){
46
  $html = '';
47
  $html = '<div class="postbox">
48
- <h2><a href="https://wpvivid.com/pro-version-beta-testing?utm_source=client_beta_testing&utm_medium=inner_link&utm_campaign=access">WPvivid Backup Pro Beta Testing</a></h2>
49
  </div>';
50
  return $html;
51
  }
45
  function wpvivid_join_pro_testing($html){
46
  $html = '';
47
  $html = '<div class="postbox">
48
+ <h2><a href="https://wpvivid.com/pro-version-beta-testing?utm_source=client_beta_testing&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">WPvivid Backup Pro Beta Testing</a></h2>
49
  </div>';
50
  return $html;
51
  }
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -15,8 +15,13 @@ function wpvivid_add_backup_type($html, $type_name)
15
  <span>'.__( 'Only Database', 'wpvivid' ).'</span>
16
  </label><br>
17
  <label>
18
- <input type="radio" disabled />
19
- <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access">'.__('Custom Backup', 'wpvivid').'</a>
 
 
 
 
 
20
  </label><br>';
21
  return $html;
22
  }
@@ -92,7 +97,7 @@ function wpvivid_download_backup_descript($html){
92
  }
93
 
94
  function wpvivid_restore_website_descript($html){
95
- $html = '<p><a href="#" id="wpvivid_how_to_restore_backup_describe" onclick="wpvivid_click_how_to_restore_backup();">'.__('How to restore your website from a backup(scheduled, manual, uploaded and received backup)', 'wpvivid').'</a></p>';
96
  $html .= '<div id="wpvivid_how_to_restore_backup"></div>';
97
  return $html;
98
  }
@@ -1453,8 +1458,8 @@ function wpvivid_backuppage_add_progress_module(){
1453
 
1454
  function wpvivid_cancel_backup(){
1455
  var ajax_data= {
1456
- 'action': 'wpvivid_backup_cancel',
1457
- 'task_id': running_backup_taskid
1458
  };
1459
  jQuery('#wpvivid_backup_cancel_btn').css({'pointer-events': 'none', 'opacity': '0.4'});
1460
  wpvivid_post_request(ajax_data, function(data){
@@ -1492,7 +1497,7 @@ function wpvivid_backup_module_add_descript(){
1492
  <div class="quickstart-storage-setting">
1493
  <span class="list-top-chip backup" name="ismerge" value="1"><?php _e('Local Storage Directory: '); ?></span>
1494
  <span class="list-top-chip" id="wpvivid_local_storage_path"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1495
- <span class="list-top-chip" id=""><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);"><?php _e(' rename directory', 'wpvivid'); ?></a></span>
1496
  </div>
1497
  <?php
1498
  }
15
  <span>'.__( 'Only Database', 'wpvivid' ).'</span>
16
  </label><br>
17
  <label>
18
+ <div style="float: left;">
19
+ <input type="radio" disabled />
20
+ <span style="color: #ddd;">'.__('Custom').'</span>
21
+ </div>
22
+ <span class="wpvivid-feature-pro">
23
+ <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: learn more</a>
24
+ </span>
25
  </label><br>';
26
  return $html;
27
  }
97
  }
98
 
99
  function wpvivid_restore_website_descript($html){
100
+ $html = '<p><a href="#" id="wpvivid_how_to_restore_backup_describe" onclick="wpvivid_click_how_to_restore_backup();" style="text-decoration: none;">'.__('How to restore your website from a backup(scheduled, manual, uploaded and received backup)', 'wpvivid').'</a></p>';
101
  $html .= '<div id="wpvivid_how_to_restore_backup"></div>';
102
  return $html;
103
  }
1458
 
1459
  function wpvivid_cancel_backup(){
1460
  var ajax_data= {
1461
+ 'action': 'wpvivid_backup_cancel'
1462
+ //'task_id': running_backup_taskid
1463
  };
1464
  jQuery('#wpvivid_backup_cancel_btn').css({'pointer-events': 'none', 'opacity': '0.4'});
1465
  wpvivid_post_request(ajax_data, function(data){
1497
  <div class="quickstart-storage-setting">
1498
  <span class="list-top-chip backup" name="ismerge" value="1"><?php _e('Local Storage Directory: '); ?></span>
1499
  <span class="list-top-chip" id="wpvivid_local_storage_path"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1500
+ <span class="list-top-chip" id=""><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);" style="text-decoration: none;"><?php _e(' rename directory', 'wpvivid'); ?></a></span>
1501
  </div>
1502
  <?php
1503
  }
admin/partials/wpvivid-schedule-page-display.php CHANGED
@@ -12,8 +12,20 @@ function wpvivid_schedule_settings()
12
  <div class="postbox schedule-tab-block">
13
  <label for="wpvivid_schedule_enable">
14
  <input option="schedule" name="enable" type="checkbox" id="wpvivid_schedule_enable" />
15
- <span><?php _e( 'Enable backup schedule', 'wpvivid' ); ?></span><a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access">Advanced Schedule</a>
16
- </label>
 
 
 
 
 
 
 
 
 
 
 
 
17
  <div>
18
  <?php
19
  $notice='';
@@ -66,9 +78,12 @@ function wpvivid_schedule_settings()
66
  </div>
67
  </div>
68
  <div class="postbox schedule-tab-block">
69
- <div>
70
- <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access">+ Add another schedule</a>
71
  </div>
 
 
 
72
  </div>
73
  </div>
74
  </td>
@@ -106,9 +121,16 @@ function wpvivid_schedule_backup_type($html)
106
  $html.='</label><br>';
107
 
108
  $html.='<label>';
 
109
  $html.='<input type="radio" disabled />';
110
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access">Custom Backup</a>';
111
-
 
 
 
 
 
 
112
  return $html;
113
  }
114
 
12
  <div class="postbox schedule-tab-block">
13
  <label for="wpvivid_schedule_enable">
14
  <input option="schedule" name="enable" type="checkbox" id="wpvivid_schedule_enable" />
15
+ <span><?php _e( 'Enable backup schedule', 'wpvivid' ); ?></span>
16
+ </label><br>
17
+ <label>
18
+ <div style="float: left;">
19
+ <input type="checkbox" disabled />
20
+ <span style="color: #ddd;">Advanced Schedule</span>
21
+ </div>
22
+ <div style="float: left; height: 32px; line-height: 32px;">
23
+ <span class="wpvivid-feature-pro">
24
+ <a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access">Pro feature: learn more</a>
25
+ </span>
26
+ </div>
27
+ </label><br>
28
+ <div style="clear: both;"></div>
29
  <div>
30
  <?php
31
  $notice='';
78
  </div>
79
  </div>
80
  <div class="postbox schedule-tab-block">
81
+ <div style="float:left; color: #ddd; margin-right: 10px;">
82
+ + Add another schedule
83
  </div>
84
+ <span class="wpvivid-feature-pro">
85
+ <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access">Pro feature: learn more</a>
86
+ </span>
87
  </div>
88
  </div>
89
  </td>
121
  $html.='</label><br>';
122
 
123
  $html.='<label>';
124
+ $html.='<div style="float: left;">';
125
  $html.='<input type="radio" disabled />';
126
+ $html.='<span style="color: #ddd;">'.__('Custom').'</span>';
127
+ $html.='</div>';
128
+ $html.='<div style="float: left; height: 32px; line-height: 32px;">';
129
+ $html.='<span class="wpvivid-feature-pro">';
130
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: learn more</a>';
131
+ $html.='</span>';
132
+ $html.='</div>';
133
+ $html.='</label><br>';
134
  return $html;
135
  }
136
 
admin/partials/wpvivid-settings-page-display.php CHANGED
@@ -71,7 +71,7 @@ function wpvivid_general_settings()
71
  }
72
  }
73
  ?>
74
- </select><strong style="margin-right: 10px;"><?php _e('backups retained', 'wpvivid'); ?></strong><a href="https://wpvivid.com/pro-version-beta-testing?utm_source=client_backups_retained&utm_medium=inner_link&utm_campaign=access">(I need to retain more backups)</a>
75
  </div>
76
  <div>
77
  <label for="wpvivid_estimate_backup">
@@ -191,7 +191,7 @@ function wpvivid_email_report()
191
  }
192
  ?>
193
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
194
- <div><p><?php _e('In order to use this function, please install a ', 'wpvivid'); ?><strong><a target="_blank" href="https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html"><?php _e('WordPress SMTP plugin', 'wpvivid'); ?></a></strong><?php _e(' of your preference and configure your SMTP server first. This is because WordPress uses the PHP Mail function to send its emails by default, which is not supported by many hosts and can cause issues if it is not set properly.', 'wpvivid'); ?></p>
195
  </div>
196
  <div>
197
  <label for="wpvivid_general_email_enable">
@@ -223,7 +223,7 @@ function wpvivid_email_report()
223
  </label><br>
224
  </fieldset>
225
  <div style="margin-bottom: 10px;">
226
- <a href="https://wpvivid.com/wpvivid-backup-pro-email-report?utm_source=client_email_report&utm_medium=inner_link&utm_campaign=access">+ Add another email address to get report</a>
227
  </div>
228
  </div>
229
  </div>
71
  }
72
  }
73
  ?>
74
+ </select><strong style="margin-right: 10px;"><?php _e('backups retained', 'wpvivid'); ?></strong><a href="https://wpvivid.com/pro-version-beta-testing?utm_source=client_backups_retained&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: Retain more backups</a>
75
  </div>
76
  <div>
77
  <label for="wpvivid_estimate_backup">
191
  }
192
  ?>
193
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
194
+ <div><p><?php _e('In order to use this function, please install a ', 'wpvivid'); ?><strong><a target="_blank" href="https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html" style="text-decoration: none;"><?php _e('WordPress SMTP plugin', 'wpvivid'); ?></a></strong><?php _e(' of your preference and configure your SMTP server first. This is because WordPress uses the PHP Mail function to send its emails by default, which is not supported by many hosts and can cause issues if it is not set properly.', 'wpvivid'); ?></p>
195
  </div>
196
  <div>
197
  <label for="wpvivid_general_email_enable">
223
  </label><br>
224
  </fieldset>
225
  <div style="margin-bottom: 10px;">
226
+ <a href="https://wpvivid.com/wpvivid-backup-pro-email-report?utm_source=client_email_report&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: Add another email address to get report</a>
227
  </div>
228
  </div>
229
  </div>
includes/class-wpvivid-function-realize.php CHANGED
@@ -7,11 +7,26 @@ class WPvivid_Function_Realize
7
 
8
  }
9
 
10
- public function _backup_cancel($task_id)
11
  {
12
  global $wpvivid_plugin;
13
  try {
14
- if (WPvivid_taskmanager::get_task($task_id) !== false) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  $file_name = WPvivid_taskmanager::get_task_options($task_id, 'file_prefix');
16
  $backup_options = WPvivid_taskmanager::get_task_options($task_id, 'backup_options');
17
  $file = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $backup_options['dir'] . DIRECTORY_SEPARATOR . $file_name . '_cancel';
@@ -22,7 +37,7 @@ class WPvivid_Function_Realize
22
 
23
  if ($timestamp === false) {
24
  $wpvivid_plugin->add_monitor_event($task_id, 10);
25
- }
26
  $ret['result'] = 'success';
27
  $ret['msg'] = __('The backup will be canceled after backing up the current chunk ends.', 'wpvivid');
28
  }
7
 
8
  }
9
 
10
+ public function _backup_cancel($task_id = '')
11
  {
12
  global $wpvivid_plugin;
13
  try {
14
+ $tasks = WPvivid_taskmanager::get_tasks();
15
+ foreach ($tasks as $task){
16
+ $task_id = $task['id'];
17
+ $file_name = WPvivid_taskmanager::get_task_options($task_id, 'file_prefix');
18
+ $backup_options = WPvivid_taskmanager::get_task_options($task_id, 'backup_options');
19
+ $file = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $backup_options['dir'] . DIRECTORY_SEPARATOR . $file_name . '_cancel';
20
+ touch($file);
21
+
22
+ $timestamp = wp_next_scheduled(WPVIVID_TASK_MONITOR_EVENT, array($task_id));
23
+
24
+ if ($timestamp === false) {
25
+ $wpvivid_plugin->add_monitor_event($task_id, 10);
26
+ }
27
+ }
28
+
29
+ /*if (WPvivid_taskmanager::get_task($task_id) !== false) {
30
  $file_name = WPvivid_taskmanager::get_task_options($task_id, 'file_prefix');
31
  $backup_options = WPvivid_taskmanager::get_task_options($task_id, 'backup_options');
32
  $file = WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $backup_options['dir'] . DIRECTORY_SEPARATOR . $file_name . '_cancel';
37
 
38
  if ($timestamp === false) {
39
  $wpvivid_plugin->add_monitor_event($task_id, 10);
40
+ }*/
41
  $ret['result'] = 'success';
42
  $ret['msg'] = __('The backup will be canceled after backing up the current chunk ends.', 'wpvivid');
43
  }
includes/class-wpvivid-migrate.php CHANGED
@@ -831,7 +831,7 @@ class WPvivid_Migrate
831
  $html='<div id="wpvivid_transfer_key">';
832
  $options=WPvivid_Setting::get_option('wpvivid_saved_api_token');
833
  if(empty($options)){
834
- $html .= '<div style="padding: 0 0 10px 0;"><strong>'.__('Please paste the key below.', 'wpvivid').'</strong><a href="#" style="margin-left: 5px;" onclick="wpvivid_click_how_to_get_key();">How to get a site key?</a></div>
835
  <div id="wpvivid_how_to_get_key"></div>
836
  <div><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
837
  <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
@@ -1070,7 +1070,7 @@ class WPvivid_Migrate
1070
 
1071
  public function wpvivid_migrate_part_note($html){
1072
  $html .= ' <p>Note: </p>
1073
- <p>1. In order to successfully complete the migration, you\'d better deactivate <a href="https://wpvivid.com/best-redirect-plugins.html" target="_blank">301 redirect plugin</a>, <a href="https://wpvivid.com/8-best-wordpress-firewall-plugins.html" target="_blank">firewall and security plugin</a>, and <a href="https://wpvivid.com/best-free-wordpress-caching-plugins.html" target="_blank">caching plugin</a> (if they exist) before transferring website.</p>
1074
  <p>2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment.</p>';
1075
  return $html;
1076
  }
@@ -1101,9 +1101,14 @@ class WPvivid_Migrate
1101
  <span>'.__( 'Only Database', 'wpvivid' ).'</span>
1102
  </label><br>
1103
  <label>
1104
- <input type="radio" disabled />
1105
- <a href="https://wpvivid.com/custom-migration-overview?utm_source=client_migration_custom_backup&utm_medium=inner_link&utm_campaign=access">Choose what to migrate</a>
1106
- </label>';
 
 
 
 
 
1107
  return $html;
1108
  }
1109
 
831
  $html='<div id="wpvivid_transfer_key">';
832
  $options=WPvivid_Setting::get_option('wpvivid_saved_api_token');
833
  if(empty($options)){
834
+ $html .= '<div style="padding: 0 0 10px 0;"><strong>'.__('Please paste the key below.', 'wpvivid').'</strong><a href="#" style="margin-left: 5px; text-decoration: none;" onclick="wpvivid_click_how_to_get_key();">How to get a site key?</a></div>
835
  <div id="wpvivid_how_to_get_key"></div>
836
  <div><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
837
  <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
1070
 
1071
  public function wpvivid_migrate_part_note($html){
1072
  $html .= ' <p>Note: </p>
1073
+ <p>1. In order to successfully complete the migration, you\'d better deactivate <a href="https://wpvivid.com/best-redirect-plugins.html" target="_blank" style="text-decoration: none;">301 redirect plugin</a>, <a href="https://wpvivid.com/8-best-wordpress-firewall-plugins.html" target="_blank" style="text-decoration: none;">firewall and security plugin</a>, and <a href="https://wpvivid.com/best-free-wordpress-caching-plugins.html" target="_blank" style="text-decoration: none;">caching plugin</a> (if they exist) before transferring website.</p>
1074
  <p>2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment.</p>';
1075
  return $html;
1076
  }
1101
  <span>'.__( 'Only Database', 'wpvivid' ).'</span>
1102
  </label><br>
1103
  <label>
1104
+ <div style="float: left;">
1105
+ <input type="radio" disabled />
1106
+ <span style="color: #ddd;">'.__('Choose what to migrate').'</span>
1107
+ </div>
1108
+ <span class="wpvivid-feature-pro">
1109
+ <a href="https://wpvivid.com/custom-migration-overview?utm_source=client_migration_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">Pro feature: learn more</a>
1110
+ </span>
1111
+ </label><br>';
1112
  return $html;
1113
  }
1114
 
includes/class-wpvivid-public-interface.php CHANGED
@@ -7,6 +7,36 @@ class WPvivid_Public_Interface
7
 
8
  }
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  public function prepare_backup($backup_options){
11
  global $wpvivid_plugin;
12
  if(isset($backup_options)&&!empty($backup_options)){
@@ -264,14 +294,15 @@ class WPvivid_Public_Interface
264
  return $ret;
265
  }
266
 
267
- public function backup_cancel($task_id){
268
  global $wpvivid_plugin;
269
- if (!isset($task_id)||empty($task_id)||!is_string($task_id)){
270
  $ret['error']='Backup id not found';
271
  return $ret;
272
  }
273
  $task_id=sanitize_key($task_id);
274
- $ret=$wpvivid_plugin->function_realize->_backup_cancel($task_id);
 
275
  return $ret;
276
  }
277
 
7
 
8
  }
9
 
10
+ public function mainwp_data($data){
11
+ $action = sanitize_text_field($data['mwp_action']);
12
+ switch ($action)
13
+ {
14
+ case 'create_schedule_addon':
15
+ $ret = apply_filters('wpvivid_create_schedule_addon_mainwp', $data['schedule']);
16
+ break;
17
+ case 'get_schedules_addon':
18
+ $ret = apply_filters('wpvivid_get_schedules_addon_mainwp', array());
19
+ break;
20
+ case 'delete_schedules_addon':
21
+ $ret = apply_filters('wpvivid_delete_schedule_addon_mainwp', $data['schedule_id']);
22
+ break;
23
+ case 'save_schedule_status_addon':
24
+ $ret = apply_filters('wpvivid_save_schedule_status_addon_mainwp', $data['schedule_data']);
25
+ break;
26
+ case 'update_schedule_addon':
27
+ $ret = apply_filters('wpvivid_update_schedule_addon_mainwp', $data['schedule']);
28
+ break;
29
+ case 'set_schedule_addon':
30
+ $ret = apply_filters('wpvivid_sync_schedule_addon_mainwp', $data['schedule']);
31
+ break;
32
+ default:
33
+ $ret['result'] = 'failed';
34
+ $ret['error'] = 'Unknown action';
35
+ break;
36
+ }
37
+ return $ret;
38
+ }
39
+
40
  public function prepare_backup($backup_options){
41
  global $wpvivid_plugin;
42
  if(isset($backup_options)&&!empty($backup_options)){
294
  return $ret;
295
  }
296
 
297
+ public function backup_cancel($task_id = ''){
298
  global $wpvivid_plugin;
299
+ /*if (!isset($task_id)||empty($task_id)||!is_string($task_id)){
300
  $ret['error']='Backup id not found';
301
  return $ret;
302
  }
303
  $task_id=sanitize_key($task_id);
304
+ $ret=$wpvivid_plugin->function_realize->_backup_cancel($task_id);*/
305
+ $ret=$wpvivid_plugin->function_realize->_backup_cancel();
306
  return $ret;
307
  }
308
 
includes/class-wpvivid-schedule.php CHANGED
@@ -93,9 +93,17 @@ class WPvivid_Schedule
93
  $html.='<p>Warning: Unable to set '.$display.' backup schedule</p>';
94
  }
95
  }
96
- $html.='<label><input type="radio" disabled />';
97
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access">Custom cycles</a>';
98
- $html.='</label>';
 
 
 
 
 
 
 
 
99
  return $html;
100
  }
101
 
93
  $html.='<p>Warning: Unable to set '.$display.' backup schedule</p>';
94
  }
95
  }
96
+ $html.='<label>';
97
+ $html.='<div style="float: left;">';
98
+ $html.='<input type="radio" disabled />';
99
+ $html.='<span style="color: #ddd;">'.__('Custom').'</span>';
100
+ $html.='</div>';
101
+ $html.='<div style="float: left; height: 32px; line-height: 32px;">';
102
+ $html.='<span class="wpvivid-feature-pro">';
103
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none; margin-top: 10px;">Pro feature: learn more</a>';
104
+ $html.='</span>';
105
+ $html.='</div>';
106
+ $html.='</label><br>';
107
  return $html;
108
  }
109
 
includes/class-wpvivid-setting.php CHANGED
@@ -596,6 +596,8 @@ class WPvivid_Setting
596
  $data['setting']['cron_backup_count']=self::get_option('cron_backup_count');
597
 
598
  $data['schedule']=self::get_option('wpvivid_schedule_setting');
 
 
599
  $data['remote']['upload']=self::get_option('wpvivid_upload_setting');
600
  $data['remote']['history']=self::get_option('wpvivid_user_history');
601
 
596
  $data['setting']['cron_backup_count']=self::get_option('cron_backup_count');
597
 
598
  $data['schedule']=self::get_option('wpvivid_schedule_setting');
599
+ $data['schedule_addon']=apply_filters('wpvivid_archieve_schedule_add_settings', array());
600
+
601
  $data['remote']['upload']=self::get_option('wpvivid_upload_setting');
602
  $data['remote']['history']=self::get_option('wpvivid_user_history');
603
 
includes/class-wpvivid.php CHANGED
@@ -797,11 +797,13 @@ class WPvivid {
797
  {
798
  $this->ajax_check_security();
799
  try {
800
- if (isset($_POST['task_id']) && !empty($_POST['task_id']) && is_string($_POST['task_id'])) {
801
  $task_id = sanitize_key($_POST['task_id']);
802
  $json = $this->function_realize->_backup_cancel($task_id);
803
  echo json_encode($json);
804
- }
 
 
805
  }
806
  catch (Exception $error) {
807
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
@@ -5678,6 +5680,19 @@ class WPvivid {
5678
  die();
5679
  }
5680
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5681
  public function wpvivid_check_zip_valid()
5682
  {
5683
  return true;
797
  {
798
  $this->ajax_check_security();
799
  try {
800
+ /*if (isset($_POST['task_id']) && !empty($_POST['task_id']) && is_string($_POST['task_id'])) {
801
  $task_id = sanitize_key($_POST['task_id']);
802
  $json = $this->function_realize->_backup_cancel($task_id);
803
  echo json_encode($json);
804
+ }*/
805
+ $json = $this->function_realize->_backup_cancel();
806
+ echo json_encode($json);
807
  }
808
  catch (Exception $error) {
809
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
5680
  die();
5681
  }
5682
 
5683
+ public function wpvivid_switch_domain_to_folder($domain){
5684
+ $parse = parse_url($domain);
5685
+ $path = '';
5686
+ if(isset($parse['path'])) {
5687
+ $parse['path'] = str_replace('/', '_', $parse['path']);
5688
+ $parse['path'] = str_replace('.', '_', $parse['path']);
5689
+ $path = $parse['path'];
5690
+ }
5691
+ $parse['host'] = str_replace('/', '_', $parse['host']);
5692
+ $parse['host'] = str_replace('.', '_', $parse['host']);
5693
+ return $parse['host'].$path;
5694
+ }
5695
+
5696
  public function wpvivid_check_zip_valid()
5697
  {
5698
  return true;
includes/customclass/class-wpvivid-amazons3-plus.php CHANGED
@@ -119,7 +119,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
119
  </td>
120
  <td class="column-description desc">
121
  <div class="wpvivid-storage-form-desc">
122
- <i><span>Customize the directory where you want to store backups within the Bucket.</span></i><a href="https://wpvivid.com/wpvivid-backup-pro-amason-s3-custom-folder-name?utm_source=client_amazon_s3&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
123
  </div>
124
  </td>
125
  </tr>
@@ -255,7 +255,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
255
  </td>
256
  <td class="column-description desc">
257
  <div class="wpvivid-storage-form-desc">
258
- <i><span>Customize the directory where you want to store backups within the Bucket.</span></i><a href="https://wpvivid.com/wpvivid-backup-pro-amason-s3-custom-folder-name?utm_source=client_amazon_s3&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
259
  </div>
260
  </td>
261
  </tr>
119
  </td>
120
  <td class="column-description desc">
121
  <div class="wpvivid-storage-form-desc">
122
+ <i><span>Customize the directory where you want to store backups within the Bucket.</span></i>
123
  </div>
124
  </td>
125
  </tr>
255
  </td>
256
  <td class="column-description desc">
257
  <div class="wpvivid-storage-form-desc">
258
+ <i><span>Customize the directory where you want to store backups within the Bucket.</span></i>
259
  </div>
260
  </td>
261
  </tr>
includes/customclass/class-wpvivid-dropbox.php CHANGED
@@ -437,11 +437,12 @@ class WPvivid_Dropbox extends WPvivid_Remote {
437
  <?php
438
  }
439
  public function wpvivid_add_storage_page_dropbox(){
 
440
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_DROPBOX);
441
  ?>
442
  <div id="storage_account_dropbox" class="storage-account-page" style="display:none;">
443
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
444
- <a target="_blank" href="https://wpvivid.com/privacy-policy">this privacy policy</a> for use of our Dropbox authorization app (none of your backup data is sent to us).
445
  </div>
446
  <div style="padding: 10px 10px 10px 0;">
447
  <strong>Enter Your Dropbox Information</strong>
@@ -468,7 +469,19 @@ class WPvivid_Dropbox extends WPvivid_Remote {
468
  </td>
469
  <td class="column-description desc">
470
  <div class="wpvivid-storage-form-desc">
471
- <i style="margin-right: 10px;">All backups will be uploaded to this directory.</i><a href="https://wpvivid.com/wpvivid-backup-pro-dropbox-custom-folder-name?utm_source=client_dropbox&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
 
 
 
 
 
 
 
 
 
 
 
 
472
  </div>
473
  </td>
474
  </tr>
@@ -500,29 +513,6 @@ class WPvivid_Dropbox extends WPvivid_Remote {
500
  </tr>
501
  </tbody>
502
  </table>
503
-
504
-
505
- <!--<p style="padding-left: 10px;">Please read <a target="_blank" href="https://wpvivid.com/privacy-policy">this privacy policy</a> for use of our Dropbox authorization app (none of your backup data is sent to us).</p>
506
- <h2><span><?php _e( 'Enter Your Dropbox Information','wpvivid'); ?></span></h2>
507
- <div class="storage-account-form">
508
- <input type="text" autocomplete="off" option="dropbox" name="name" placeholder="Enter an unique alias: e.g. Dropbox-001" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
509
- </div>
510
- <div style="padding-left: 10px; margin-bottom: -16px;">
511
- <p><span><?php _e( 'Dropbox Folder:','wpvivid'); ?></span><span option="dropbox" name="path"><?php
512
- $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_DROPBOX);
513
- _e($root_path.WPVIVID_DROPBOX_DEFAULT_FOLDER); ?>
514
- </span></p>
515
- <p><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></p>
516
- </div>
517
- <div class="remote-storage-set-default-block">
518
- <label>
519
- <input type="checkbox" option="dropbox" name="default" checked><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
520
- </label>
521
- </div>
522
- <div id="wpvivid_storage_account_notice"></div>
523
- <div class=""><input onclick="wpvivid_dropbox_auth()" class="button-primary storage-account-button" type="submit" value="<?php _e( 'Authenticate with Dropbox', 'wpvivid' ); ?>" /></div>
524
- <div style="clear:both;"></div>
525
- <div style="padding-left: 10px;">Tips: Click the button above to get Dropbox authentication and add it to the storage list below.</div>-->
526
  </div>
527
  <script>
528
  function wpvivid_check_dropbox_storage_alias(storage_alias){
437
  <?php
438
  }
439
  public function wpvivid_add_storage_page_dropbox(){
440
+ global $wpvivid_plugin;
441
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_DROPBOX);
442
  ?>
443
  <div id="storage_account_dropbox" class="storage-account-page" style="display:none;">
444
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
445
+ <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Dropbox authorization app (none of your backup data is sent to us).
446
  </div>
447
  <div style="padding: 10px 10px 10px 0;">
448
  <strong>Enter Your Dropbox Information</strong>
469
  </td>
470
  <td class="column-description desc">
471
  <div class="wpvivid-storage-form-desc">
472
+ <i>All backups will be uploaded to this directory.</i>
473
+ </div>
474
+ </td>
475
+ </tr>
476
+ <tr>
477
+ <td class="plugin-title column-primary">
478
+ <div class="wpvivid-storage-form">
479
+ <input type="text" class="regular-text" autocomplete="off" value="" readonly="readonly" />
480
+ </div>
481
+ </td>
482
+ <td class="column-description desc">
483
+ <div class="wpvivid-storage-form-desc">
484
+ <a href="https://wpvivid.com/wpvivid-backup-pro-dropbox-custom-folder-name?utm_source=client_dropbox&utm_medium=inner_link&utm_campaign=access">Pro feature: Create a directory for storing the backups of the site</a>
485
  </div>
486
  </td>
487
  </tr>
513
  </tr>
514
  </tbody>
515
  </table>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
516
  </div>
517
  <script>
518
  function wpvivid_check_dropbox_storage_alias(storage_alias){
includes/customclass/class-wpvivid-ftpclass.php CHANGED
@@ -65,7 +65,19 @@ class WPvivid_FTPClass extends WPvivid_Remote{
65
  </td>
66
  <td class="column-description desc">
67
  <div class="wpvivid-storage-form-desc">
68
- <i style="margin-right: 10px;">Enter the FTP server.</i><a href="https://wpvivid.com/wpvivid-backup-pro-ftp-change-ftp-default-port?utm_source=client_ftp_port&utm_medium=inner_link&utm_campaign=access">Change the FTP default port number</a>
 
 
 
 
 
 
 
 
 
 
 
 
69
  </div>
70
  </td>
71
  </tr>
@@ -178,7 +190,7 @@ class WPvivid_FTPClass extends WPvivid_Remote{
178
  </td>
179
  <td class="column-description desc">
180
  <div class="wpvivid-storage-form-desc">
181
- <i style="margin-right: 10px;">Enter the FTP server.</i><a href="https://wpvivid.com/wpvivid-backup-pro-ftp-change-ftp-default-port?utm_source=client_ftp_port&utm_medium=inner_link&utm_campaign=access">Change the FTP default port number</a>
182
  </div>
183
  </td>
184
  </tr>
@@ -302,11 +314,6 @@ class WPvivid_FTPClass extends WPvivid_Remote{
302
 
303
  $this->options['server']=sanitize_text_field($this->options['server']);
304
 
305
- // if(empty($this->options['host']))
306
- // {
307
- // $ret['error']="Warning: The FTP server is required.";
308
- // return $ret;
309
- // }
310
  if(empty($this->options['server']))
311
  {
312
  $ret['error']="Warning: The FTP server is required.";
65
  </td>
66
  <td class="column-description desc">
67
  <div class="wpvivid-storage-form-desc">
68
+ <i style="margin-right: 10px;">Enter the FTP server.</i>
69
+ </div>
70
+ </td>
71
+ </tr>
72
+ <tr>
73
+ <td class="plugin-title column-primary">
74
+ <div class="wpvivid-storage-form">
75
+ <input type="text" autocomplete="off" class="regular-text" value="" readonly="readonly" />
76
+ </div>
77
+ </td>
78
+ <td class="column-description desc">
79
+ <div class="wpvivid-storage-form-desc">
80
+ <a href="https://wpvivid.com/wpvivid-backup-pro-ftp-change-ftp-default-port?utm_source=client_ftp_port&utm_medium=inner_link&utm_campaign=access">Pro feature: Change the FTP default port number</a>
81
  </div>
82
  </td>
83
  </tr>
190
  </td>
191
  <td class="column-description desc">
192
  <div class="wpvivid-storage-form-desc">
193
+ <i style="margin-right: 10px;">Enter the FTP server.</i>
194
  </div>
195
  </td>
196
  </tr>
314
 
315
  $this->options['server']=sanitize_text_field($this->options['server']);
316
 
 
 
 
 
 
317
  if(empty($this->options['server']))
318
  {
319
  $ret['error']="Warning: The FTP server is required.";
includes/customclass/class-wpvivid-google-drive.php CHANGED
@@ -296,11 +296,12 @@ class Wpvivid_Google_drive extends WPvivid_Remote
296
 
297
  public function wpvivid_add_storage_page_google_drive()
298
  {
 
299
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_GOOGLEDRIVE);
300
  ?>
301
  <div id="storage_account_google_drive" class="storage-account-page">
302
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
303
- <a target="_blank" href="https://wpvivid.com/privacy-policy">this privacy policy</a> for use of our Google Drive authorization app (none of your backup data is sent to us).
304
  </div>
305
  <div style="padding: 10px 10px 10px 0;">
306
  <strong>Enter Your Google Drive Information</strong>
@@ -327,7 +328,19 @@ class Wpvivid_Google_drive extends WPvivid_Remote
327
  </td>
328
  <td class="column-description desc">
329
  <div class="wpvivid-storage-form-desc">
330
- <i style="margin-right: 10px;">All backups will be uploaded to this directory.</i><a href="https://wpvivid.com/wpvivid-backup-pro-google-drive-custom-folder-name?utm_source=client_google_drive&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
 
 
 
 
 
 
 
 
 
 
 
 
331
  </div>
332
  </td>
333
  </tr>
296
 
297
  public function wpvivid_add_storage_page_google_drive()
298
  {
299
+ global $wpvivid_plugin;
300
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_GOOGLEDRIVE);
301
  ?>
302
  <div id="storage_account_google_drive" class="storage-account-page">
303
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
304
+ <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Google Drive authorization app (none of your backup data is sent to us).
305
  </div>
306
  <div style="padding: 10px 10px 10px 0;">
307
  <strong>Enter Your Google Drive Information</strong>
328
  </td>
329
  <td class="column-description desc">
330
  <div class="wpvivid-storage-form-desc">
331
+ <i>All backups will be uploaded to this directory.</i>
332
+ </div>
333
+ </td>
334
+ </tr>
335
+ <tr>
336
+ <td class="plugin-title column-primary">
337
+ <div class="wpvivid-storage-form">
338
+ <input type="text" class="regular-text" autocomplete="off" value="" readonly="readonly" />
339
+ </div>
340
+ </td>
341
+ <td class="column-description desc">
342
+ <div class="wpvivid-storage-form-desc">
343
+ <a href="https://wpvivid.com/wpvivid-backup-pro-google-drive-custom-folder-name?utm_source=client_google_drive&utm_medium=inner_link&utm_campaign=access">Pro feature: Create a directory for storing the backups of the site</a>
344
  </div>
345
  </td>
346
  </tr>
includes/customclass/class-wpvivid-one-drive.php CHANGED
@@ -280,11 +280,12 @@ class WPvivid_one_drive extends WPvivid_Remote
280
 
281
  public function wpvivid_add_storage_page_one_drive()
282
  {
 
283
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_ONEDRIVE);
284
  ?>
285
  <div id="storage_account_one_drive" class="storage-account-page" style="display:none;">
286
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
287
- <a target="_blank" href="https://wpvivid.com/privacy-policy">this privacy policy</a> for use of our Microsoft OneDrive authorization app (none of your backup data is sent to us).
288
  </div>
289
  <div style="padding: 10px 10px 10px 0;">
290
  <strong>Enter Your Microsoft OneDrive Information</strong>
@@ -311,7 +312,19 @@ class WPvivid_one_drive extends WPvivid_Remote
311
  </td>
312
  <td class="column-description desc">
313
  <div class="wpvivid-storage-form-desc">
314
- <i style="margin-right: 10px;">All backups will be uploaded to this directory.</i><a href="https://wpvivid.com/wpvivid-backup-pro-microsoft-onedrive-custom-folder-name?utm_source=client_onedrive&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
 
 
 
 
 
 
 
 
 
 
 
 
315
  </div>
316
  </td>
317
  </tr>
280
 
281
  public function wpvivid_add_storage_page_one_drive()
282
  {
283
+ global $wpvivid_plugin;
284
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_ONEDRIVE);
285
  ?>
286
  <div id="storage_account_one_drive" class="storage-account-page" style="display:none;">
287
  <div style="background-color:#f1f1f1; padding: 10px;">Please read
288
+ <a target="_blank" href="https://wpvivid.com/privacy-policy" style="text-decoration: none;">this privacy policy</a> for use of our Microsoft OneDrive authorization app (none of your backup data is sent to us).
289
  </div>
290
  <div style="padding: 10px 10px 10px 0;">
291
  <strong>Enter Your Microsoft OneDrive Information</strong>
312
  </td>
313
  <td class="column-description desc">
314
  <div class="wpvivid-storage-form-desc">
315
+ <i>All backups will be uploaded to this directory.</i>
316
+ </div>
317
+ </td>
318
+ </tr>
319
+ <tr>
320
+ <td class="plugin-title column-primary">
321
+ <div class="wpvivid-storage-form">
322
+ <input type="text" class="regular-text" autocomplete="off" value="" readonly="readonly" />
323
+ </div>
324
+ </td>
325
+ <td class="column-description desc">
326
+ <div class="wpvivid-storage-form-desc">
327
+ <a href="https://wpvivid.com/wpvivid-backup-pro-microsoft-onedrive-custom-folder-name?utm_source=client_onedrive&utm_medium=inner_link&utm_campaign=access">Pro feature: Create a directory for storing the backups of the site</a>
328
  </div>
329
  </td>
330
  </tr>
includes/customclass/class-wpvivid-s3compat.php CHANGED
@@ -467,7 +467,7 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
467
  </td>
468
  <td class="column-description desc">
469
  <div class="wpvivid-storage-form-desc">
470
- <i><span>Customize the directory where you want to store backups within the Space.</span></i><a href="https://wpvivid.com/wpvivid-backup-pro-digitalocean-space-custom-folder-name?utm_source=client_digitalocean&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
471
  </div>
472
  </td>
473
  </tr>
@@ -590,7 +590,7 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
590
  </td>
591
  <td class="column-description desc">
592
  <div class="wpvivid-storage-form-desc">
593
- <i><span>Customize the directory where you want to store backups within the Space.</span></i><a href="https://wpvivid.com/wpvivid-backup-pro-digitalocean-space-custom-folder-name?utm_source=client_digitalocean&utm_medium=inner_link&utm_campaign=access">Create a directory for storing the backups of the site</a>
594
  </div>
595
  </td>
596
  </tr>
467
  </td>
468
  <td class="column-description desc">
469
  <div class="wpvivid-storage-form-desc">
470
+ <i><span>Customize the directory where you want to store backups within the Space.</span></i>
471
  </div>
472
  </td>
473
  </tr>
590
  </td>
591
  <td class="column-description desc">
592
  <div class="wpvivid-storage-form-desc">
593
+ <i><span>Customize the directory where you want to store backups within the Space.</span></i>
594
  </div>
595
  </td>
596
  </tr>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: move, clone, migrate, copy, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
  Tested up to: 5.2
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.25
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
@@ -114,7 +114,7 @@ We offer free support in 3 channels:
114
  == Privacy Policy and GDPR Compliance ==
115
  WPvivid Backup plugin is created and operated with full respect and protection of users personal information, and is in full compliance with General Data Protection Regulation(GDPR). Check out the following content to know the details:
116
  = What personal data can WPvivid Backup plugin access and how is the data processed? =
117
- WPvivid Backup plugin currently only has a free version and is available to download from WordPress plugin repository. Thus, all the data related to the updates of the versions as well as the support forum for the plugin on WordPress.org is held by WordPress.org.
118
  In addition, the implementations of all migrations, backups and restores of your site happen completely on your website server, there are no data come across any of our servers in the whole process.
119
  The only personal data currently we can access are the contact data when you contact us by email, which may include your name, email address and other contact details. The data will only be used for the purposes of handling and resolving your enquiry.
120
  = How does WPvivid Backup plugin help users create a GDPR compliant backup? =
@@ -155,12 +155,15 @@ If your website is running on WordPress then yes it will.
155
 
156
  The plugin has been extensively tested on the shared and dedicated hosting plans from the leading website hosting providers like Godaddy, Siteground, and many others.
157
  = Do you have any get-started guides/docs? =
158
- Yes, we do. Here are the guides for [Migrating your site to a new host](https://wpvivid.com/get-started-transfer-site.html), [creating a manual backup](https://wpvivid.com/get-started-create-a-manual-backup.html), [restoring your site from a backup](https://wpvivid.com/get-started-restore-site.html), [the plugin settings](https://wpvivid.com/get-started-settings.html).
159
 
160
  == Contact us ==
161
  Feel free to let us know how we can help using the [support forum](https://wordpress.org/support/plugin/wpvivid-backuprestore) for the plugin on WordPress.org or our [contact form](https://wpvivid.com/contact-us). You can also reach us with a direct message on [Twitter](https://twitter.com/WPvividcom).
162
 
163
  == Changelog ==
 
 
 
164
  = 0.9.25 =
165
  - Fixed: Could not restore websites in some cases.
166
  - Fixed: The setting of PHP version that had been changed in .htaccess was lost after restoration.
4
  Requires at least: 4.5
5
  Tested up to: 5.2
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.26
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
114
  == Privacy Policy and GDPR Compliance ==
115
  WPvivid Backup plugin is created and operated with full respect and protection of users personal information, and is in full compliance with General Data Protection Regulation(GDPR). Check out the following content to know the details:
116
  = What personal data can WPvivid Backup plugin access and how is the data processed? =
117
+ The free version of WPvivid Backup plugin is only available to download from WordPress plugin repository. Thus, all the data related to the updates of the versions as well as the support forum for the plugin on WordPress.org is held by WordPress.org.
118
  In addition, the implementations of all migrations, backups and restores of your site happen completely on your website server, there are no data come across any of our servers in the whole process.
119
  The only personal data currently we can access are the contact data when you contact us by email, which may include your name, email address and other contact details. The data will only be used for the purposes of handling and resolving your enquiry.
120
  = How does WPvivid Backup plugin help users create a GDPR compliant backup? =
155
 
156
  The plugin has been extensively tested on the shared and dedicated hosting plans from the leading website hosting providers like Godaddy, Siteground, and many others.
157
  = Do you have any get-started guides/docs? =
158
+ Yes, we do. Here are the guides for [migrating your site to a new host](https://wpvivid.com/get-started-transfer-site.html), [creating a manual backup](https://wpvivid.com/get-started-create-a-manual-backup.html), [restoring your site from a backup](https://wpvivid.com/get-started-restore-site.html), and more on [our docs page](https://wpvivid.com/documents).
159
 
160
  == Contact us ==
161
  Feel free to let us know how we can help using the [support forum](https://wordpress.org/support/plugin/wpvivid-backuprestore) for the plugin on WordPress.org or our [contact form](https://wpvivid.com/contact-us). You can also reach us with a direct message on [Twitter](https://twitter.com/WPvividcom).
162
 
163
  == Changelog ==
164
+ = 0.9.26 =
165
+ - Optimized the plugin's UI.
166
+ - Added a new tab for downloading WPvivid Backup for MainWP.
167
  = 0.9.25 =
168
  - Fixed: Could not restore websites in some cases.
169
  - Fixed: The setting of PHP version that had been changed in .htaccess was lost after restoration.
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.25
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.25' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
@@ -102,11 +102,37 @@ function wpvivid_plugin_activate()
102
  {
103
  add_option('wpvivid_do_activation_redirect', true);
104
  }
105
- function wpvivid_init_plugin_redirect() {
 
106
  if (get_option('wpvivid_do_activation_redirect', false))
107
  {
108
  delete_option('wpvivid_do_activation_redirect');
109
- wp_redirect(admin_url().'admin.php?page=WPvivid');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  }
111
  }
112
  register_activation_hook(__FILE__, 'wpvivid_plugin_activate');
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.26
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.26' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');
102
  {
103
  add_option('wpvivid_do_activation_redirect', true);
104
  }
105
+ function wpvivid_init_plugin_redirect()
106
+ {
107
  if (get_option('wpvivid_do_activation_redirect', false))
108
  {
109
  delete_option('wpvivid_do_activation_redirect');
110
+
111
+ $active_plugins = get_option('active_plugins');
112
+ if(!function_exists('get_plugins'))
113
+ require_once(ABSPATH . 'wp-admin/includes/plugin.php');
114
+ $plugins=get_plugins();
115
+ $pro_wpvivid_slug='wpvivid-backup-pro/wpvivid-backup-pro.php';
116
+ $b_redirect_pro=false;
117
+ if(!empty($plugins))
118
+ {
119
+ if(isset($plugins[$pro_wpvivid_slug]))
120
+ {
121
+ if(in_array($pro_wpvivid_slug, $active_plugins))
122
+ {
123
+ $b_redirect_pro=true;
124
+ }
125
+ }
126
+ }
127
+
128
+ if($b_redirect_pro)
129
+ {
130
+ wp_redirect(admin_url().'admin.php?page=WPvivid&tab-pro');
131
+ }
132
+ else
133
+ {
134
+ wp_redirect(admin_url().'admin.php?page=WPvivid');
135
+ }
136
  }
137
  }
138
  register_activation_hook(__FILE__, 'wpvivid_plugin_activate');