Migration, Backup, Staging – WPvivid - Version 0.9.38

Version Description

  • Successfully tested with WordPress 5.4.
  • Added a new language template for translators.
Download this release

Release Info

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

Code changes from version 0.9.37 to 0.9.38

admin/class-wpvivid-admin.php CHANGED
@@ -97,7 +97,7 @@ class WPvivid_Admin {
97
 
98
  $menu['id']='wpvivid_admin_menu_backup';
99
  $menu['parent']='wpvivid_admin_menu';
100
- $menu['title']='Backup & Restore';
101
  $menu['tab']='admin.php?page=WPvivid&tab-backup';
102
  $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-backup';
103
  $menu['capability']='administrator';
@@ -136,39 +136,39 @@ class WPvivid_Admin {
136
 
137
  $html = '<div class="postbox">
138
  <h2>
139
- <div style="float: left; margin-right: 5px;"><span style="margin: 0; padding: 0">Current Version: '.$wpvivid_version.'</span></div>
140
  <div style="float: left; margin-right: 5px;"><span style="margin: 0; padding: 0">|</span></div>
141
  <div style="float: left; margin-left: 0;">
142
- <span style="margin: 0; padding: 0"><a href="https://wordpress.org/plugins/wpvivid-backuprestore/#developers" target="_blank" style="text-decoration: none;">ChangeLog</a></span>
143
  </div>
144
  <div style="clear: both;"></div>
145
  </h2>
146
  </div>
147
  <div id="wpvivid_backup_schedule_part"></div>
148
  <div class="postbox">
149
- <h2><span>Troubleshooting</span></h2>
150
  <div class="inside">
151
  <table class="widefat" cellpadding="0">
152
  <tbody>
153
  <tr class="alternate">
154
- <td class="row-title">Read <a href="https://wpvivid.com/troubleshooting-issues-wpvivid-backup-plugin" target="_blank">Troubleshooting page</a> for faster solutions.</td>
155
  </tr>
156
  <tr>
157
- <td class="row-title">Adjust <a href="https://wpvivid.com/wpvivid-backup-plugin-advanced-settings.html" target="_blank">Advanced Settings</a> for higher task success rate.</td>
158
  </tr>
159
  </tbody>
160
  </table>
161
  </div>
162
  </div>
163
  <div class="postbox">
164
- <h2><span>How-to</span></h2>
165
  <div class="inside">
166
  <table class="widefat" cellpadding="0">
167
  <tbody>
168
- <tr class="alternate"><td class="row-title"><a href="https://wpvivid.com/get-started-settings.html" target="_blank">WPvivid Backup Settings</a></td></tr>
169
- <tr><td class="row-title"><a href="https://wpvivid.com/get-started-create-a-manual-backup.html" target="_blank">Create a Manual Backup</a></td></tr>
170
- <tr class="alternate"><td class="row-title"><a href="https://wpvivid.com/get-started-restore-site.html" target="_blank">Restore Your Site from a Backup</a></td></tr>
171
- <tr><td class="row-title"><a href="https://wpvivid.com/get-started-transfer-site.html" target="_blank">Migrate WordPress</a></td></tr>
172
  </tbody>
173
  </table>
174
  </div>
@@ -184,7 +184,6 @@ class WPvivid_Admin {
184
  public function enqueue_styles()
185
  {
186
  $this->screen_ids=apply_filters('wpvivid_get_screen_ids',$this->screen_ids);
187
-
188
  if(in_array(get_current_screen()->id,$this->screen_ids))
189
  {
190
  wp_enqueue_style($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'css/wpvivid-admin.css', array(), $this->version, 'all');
@@ -206,6 +205,14 @@ class WPvivid_Admin {
206
  wp_enqueue_script($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'js/wpvivid-admin.js', array('jquery'), $this->version, false);
207
  wp_localize_script($this->plugin_name, 'wpvivid_ajax_object', array('ajax_url' => admin_url('admin-ajax.php'),'ajax_nonce'=>wp_create_nonce('wpvivid_ajax')));
208
 
 
 
 
 
 
 
 
 
209
  wp_enqueue_script('plupload-all');
210
  do_action('wpvivid_do_enqueue_scripts');
211
  }
@@ -227,18 +234,16 @@ class WPvivid_Admin {
227
  * Administration Menus: http://codex.wordpress.org/Administration_Menus
228
  *
229
  */
230
- $menu['page_title']=__('WPvivid Backup');
231
- $menu['menu_title']=__('WPvivid Backup');
232
  $menu['capability']='administrator';
233
  $menu['menu_slug']= $this->plugin_name;
234
  $menu['function']=array($this, 'display_plugin_setup_page');
235
  $menu['icon_url']='dashicons-cloud';
236
  $menu['position']=100;
237
  $menu = apply_filters('wpvivid_get_main_admin_menus', $menu);
238
-
239
  add_menu_page( $menu['page_title'],$menu['menu_title'], $menu['capability'], $menu['menu_slug'], $menu['function'], $menu['icon_url'], $menu['position']);
240
  $this->submenus = apply_filters('wpvivid_get_admin_menus', $this->submenus);
241
-
242
  usort($this->submenus, function ($a, $b) {
243
  if ($a['index'] == $b['index'])
244
  return 0;
@@ -248,7 +253,6 @@ class WPvivid_Admin {
248
  else
249
  return -1;
250
  });
251
-
252
  foreach ($this->submenus as $submenu) {
253
  add_submenu_page(
254
  $submenu['parent_slug'],
@@ -339,7 +343,7 @@ class WPvivid_Admin {
339
  if(!empty($migrate_status) && $migrate_status == 'completed')
340
  {
341
  $migrate_notice=true;
342
- _e('<div class="notice notice-warning is-dismissible"><p>Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you\'d better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist.</p></div>');
343
  WPvivid_Setting::delete_option('wpvivid_migrate_status');
344
  }
345
  $restore = new WPvivid_restore_data();
@@ -354,13 +358,13 @@ class WPvivid_Admin {
354
  if($need_review=='not')
355
  {
356
  WPvivid_Setting::update_option('wpvivid_need_review','show');
357
- $msg = 'Cheers! WPvivid Backup plugin has restored successfully your website. If you found WPvivid Backup plugin helpful, a 5-star rating would be highly appreciated, which motivates us to keep providing new features.';
358
  WPvivid_Setting::update_option('wpvivid_review_msg',$msg);
359
  }
360
  else{
361
  if(!$migrate_notice)
362
  {
363
- _e('<div class="notice notice-success is-dismissible"><p>Restore completed successfully.</p></div>');
364
  }
365
  }
366
  }
@@ -444,14 +448,14 @@ class WPvivid_Admin {
444
  {
445
  if(!empty($review_msg))
446
  {
447
- _e('<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
448
  <p>' . $review_msg . '</p>
449
  <div style="padding-bottom: 10px;">
450
- <span><input type="button" class="button-primary" option="review" name="rate-now" value="Rate Us" /></span>
451
- <span><input type="button" class="button-secondary" option="review" name="ask-later" value="Maybe Later" /></span>
452
- <span><input type="button" class="button-secondary" option="review" name="never-ask" value="Never" /></span>
453
  </div>
454
- </div>');
455
  }
456
  } else if ($review == 'do_not_ask')
457
  {
@@ -461,14 +465,14 @@ class WPvivid_Admin {
461
  {
462
  if(!empty($review_msg))
463
  {
464
- _e('<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
465
  <p>' . $review_msg . '</p>
466
  <div style="padding-bottom: 10px;">
467
- <span><input type="button" class="button-primary" option="review" name="rate-now" value="Rate Us" /></span>
468
- <span><input type="button" class="button-secondary" option="review" name="ask-later" value="Maybe Later" /></span>
469
- <span><input type="button" class="button-secondary" option="review" name="never-ask" value="Never" /></span>
470
  </div>
471
- </div>');
472
  }
473
  }
474
  }
@@ -502,13 +506,13 @@ class WPvivid_Admin {
502
  $amazons3_notice = WPvivid_Setting::get_option('wpvivid_amazons3_notice', 'not init');
503
  if($amazons3_notice === 'not init')
504
  {
505
- $notice_message = 'As Amazon S3 and DigitalOcean Space have upgraded their connection methods, please delete the previous connections and re-add your Amazon S3/DigitalOcean Space accounts to make sure the connections work.';
506
- _e('<div class="notice notice-warning" id="wpvivid_amazons3_notice">
507
  <p>' . $notice_message . '</p>
508
  <div style="padding-bottom: 10px;">
509
  <span><input type="button" class="button-secondary" value="I Understand" onclick="wpvivid_click_amazons3_notice();" /></span>
510
  </div>
511
- </div>');
512
  }
513
  }
514
  }
@@ -554,21 +558,21 @@ class WPvivid_Admin {
554
  }
555
  }
556
  if($figure == 1){
557
- _e('<div class="notice notice-error"><p>The '.$msg.' extension is not detected. Please install the extension first.</p></div>');
558
  }
559
  else{
560
- _e('<div class="notice notice-error"><p>The '.$msg.' extensions are not detected. Please install the extensions first.</p></div>');
561
  }
562
  }
563
 
564
  if (!class_exists('PclZip')) include_once(ABSPATH.'/wp-admin/includes/class-pclzip.php');
565
  if (!class_exists('PclZip')) {
566
- _e('<div class="notice notice-error"><p>Class PclZip is not detected. Please update or reinstall your WordPress.</p></div>');
567
  }
568
 
569
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
570
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
571
- _e('<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.</p></div>');
572
  }
573
  }
574
 
@@ -617,8 +621,8 @@ class WPvivid_Admin {
617
  $page_array['setting'] = array('index' => '5', 'tab_func' => array($this, 'wpvivid_add_tab_setting'), 'page_func' => array($this, 'wpvivid_add_page_setting'));
618
  $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'));
619
  $page_array['log'] = array('index' => '7', 'tab_func' => array($this, 'wpvivid_add_tab_log'), 'page_func' => array($this, 'wpvivid_add_page_log'));
620
- $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'));
621
- $page_array['premium'] = array('index' => '29', 'tab_func' => array($this, 'wpvivid_add_tab_premium'), 'page_func' => array($this, 'wpvivid_add_page_premium'));
622
  $hide_mwp_tab_page = get_option('wpvivid_hide_mwp_tab_page_v1', false);
623
  if($hide_mwp_tab_page === false) {
624
  $page_array['mwp'] = array('index' => '30', 'tab_func' => array($this, 'wpvivid_add_tab_mwp'), 'page_func' => array($this, 'wpvivid_add_page_mwp'));
@@ -863,18 +867,18 @@ class WPvivid_Admin {
863
  ?>
864
  <div id="debug-page" class="wrap-tab-content wpvivid_tab_debug" name="tab-debug" style="display:none;">
865
  <table class="widefat">
866
- <div style="padding: 0 0 20px 10px;">There are two ways available to send us the debug information. The first one is recommended.</div>
867
  <div style="padding-left: 10px;">
868
  <strong><?php _e('Method 1.'); ?></strong> <?php _e('If you have configured SMTP on your site, enter your email address and click the button below to send us the relevant information (website info and errors logs) when you are encountering errors. This will help us figure out what happened. Once the issue is resolved, we will inform you by your email address.', 'wpvivid'); ?>
869
  </div>
870
  <div style="padding:10px 10px 0">
871
- <span class="wpvivid-element-space-right">WPvivid support email:</span><input type="text" id="wpvivid_support_mail" value="support@wpvivid.com" readonly />
872
- <span class="wpvivid-element-space-right">Your email:</span><input type="text" id="wpvivid_user_mail" />
873
  </div>
874
  <div style="padding:10px 10px 0">
875
  <div style="float: left;">
876
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix"
877
- style="float: left;">I am using:
878
  </div>
879
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
880
  <select id="wpvivid_debug_type">
@@ -885,8 +889,8 @@ class WPvivid_Admin {
885
  <div style="clear: both;"></div>
886
  </div>
887
  <div id="wpvivid_debug_host" style="float: left;">
888
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix"
889
- style="float: left;">My web hosting provider is:
890
  </div>
891
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
892
  <input type="text" id="wpvivid_host_provider"/></div>
@@ -895,7 +899,7 @@ class WPvivid_Admin {
895
  <div style="clear: both;"></div>
896
  </div>
897
  <div style="padding:0 10px;">
898
- <textarea id="wpvivid_debug_comment" class="wp-editor-area" style="width:100%; height: 200px;" autocomplete="off" cols="60" placeholder="Please describe your problem here." ></textarea>
899
  </div>
900
  <div class="schedule-tab-block">
901
  <input class="button-primary" type="submit" value="<?php esc_attr_e( 'Send Debug Information to Us', 'wpvivid' ); ?>" onclick="wpvivid_click_send_debug_info();" />
@@ -1045,7 +1049,7 @@ class WPvivid_Admin {
1045
  $current_page=1;
1046
  $max_page=ceil(sizeof($loglist['log_list']['file'])/$max_log_diaplay);
1047
  if($max_page == 0) $max_page = 1;
1048
- _e($current_page.' / '.$max_page, 'wpvivid');
1049
  ?>
1050
  </span>
1051
  </div>
@@ -1055,10 +1059,10 @@ class WPvivid_Admin {
1055
  <?php
1056
  foreach ($display_log_count as $value){
1057
  if($value == $max_log_diaplay){
1058
- _e('<option selected="selected" value="' . $value . '">' . $value . '</option>', 'wpvivid');
1059
  }
1060
  else {
1061
- _e('<option value="' . $value . '">' . $value . '</option>', 'wpvivid');
1062
  }
1063
  }
1064
  ?>
@@ -1157,28 +1161,36 @@ class WPvivid_Admin {
1157
  <div id="mwp-page" class="wrap-tab-content wpvivid_tab_mainwp" name="tab-mwp" style="display:none;">
1158
  <div style="padding: 10px; background-color: #fff;">
1159
  <div style="margin-bottom: 10px;">
1160
- If you are a MainWP user, you can set up and control WPvivid Backup Free and Pro for every child site directly from your MainWP dashboard, using our WPvivid Backup for MainWP extension.
1161
  </div>
1162
  <div style="margin-bottom: 10px;">
1163
  <input type="button" class="button-primary" id="wpvivid_download_mainwp_extension" value="<?php esc_attr_e('Download WPvivid Backup for MainWP', 'wpvivid'); ?>" />
1164
  </div>
1165
  <div style="margin-bottom: 10px;">
1166
- l. Create and download backups for a specific child site
1167
  </div>
1168
  <div style="margin-bottom: 10px;">
1169
- 2. Set backup schedules for all child sites
1170
  </div>
1171
  <div style="margin-bottom: 10px;">
1172
- 3. Set WPvivid Backup Free and Pro settings for all child sites
 
 
1173
  </div>
1174
  <div style="margin-bottom: 10px;">
1175
- 4. Install, claim and update WPvivid Backup Pro for child sites in bulk
 
 
1176
  </div>
1177
  <div style="margin-bottom: 10px;">
1178
- 5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)
 
 
1179
  </div>
1180
  <div style="margin-bottom: 10px;">
1181
- We also offer a 40% off discount on WPvivid Backup Pro for MainWP users.
 
 
1182
  </div>
1183
  <div>
1184
  <input type="button" class="button-primary" id="wpvivid_ask_for_discount" value="<?php esc_attr_e('Ask For A 40% OFF Discount', 'wpvivid'); ?>" />
@@ -1201,42 +1213,41 @@ class WPvivid_Admin {
1201
  public function wpvivid_add_page_premium(){
1202
  ?>
1203
  <div id="premium-page" class="wrap-tab-content wpvivid_tab_premium" name="tab-premium" style="display: none;">
1204
- <!--<div class="postbox">-->
1205
- <table class="wp-list-table widefat plugins" id="wpvivid_backuplist_table" style="border-collapse: collapse;">
1206
  <thead>
1207
  <tr class="backup-list-head" style="border-bottom: 0;">
1208
- <th>Pro Version Features</th>
1209
- <th style="text-align:center;">Basic</th>
1210
- <th style="text-align:center;">Freelancer</th>
1211
- <th style="text-align:center;">Ultimate</th>
1212
  </tr>
1213
  </thead>
1214
- <tbody class="wpvivid-backuplist" id="wpvivid_backup_list">
1215
  <tr style="">
1216
  <td>
1217
- <p><strong>Websites</strong></p>
1218
- <p><strong>Backup: </strong>Custom Content</p>
1219
- <p style="color: #dd9933;"><strong>Backup: </strong>Incremental Backup</p>
1220
- <p><strong>Backup: </strong>Create a restore point</p>
1221
- <p><strong>Backup: </strong>Include/exclude files/folders</p>
1222
- <p><strong>Migration: </strong>Custom Content</p>
1223
- <p><strong>Migration: </strong>Migration via remote storage</p>
1224
- <p><strong>Remote Storage: </strong>Custom Directory (leading cloud storage providers)</p>
1225
- <p><strong>Remote Storage: </strong>WASABI/Pcloud (Only Pro)</p>
1226
- <p style="color: #dd9933;"><strong>Schedule: </strong>Incremental Backup Schedule</p>
1227
- <p><strong>Schedule: </strong>Custom Timezone</p>
1228
- <p><strong>Schedule: </strong>Custom content for each schedule</p>
1229
- <p><strong>Schedule: </strong>Custom start time of schedule</p>
1230
- <p><strong>Restore: </strong>Restore a website from remote storage</p>
1231
- <p><strong>Restore: </strong>Restore what you want from a backup</p>
1232
- <p><strong>Email Reports: </strong>Send email reports to multiple email addresses</p>
1233
- <p style="color: #dd9933;"><strong>Staging (add-on): </strong>Create a sub-directory staging site with one-click</p>
1234
- <p style="color: #dd9933;"><strong>Staging (add-on): </strong>Publish a staging site to a live site with one-click</p>
1235
- <p style="color: #dd9933;"><strong>Roles & Capabilities (add-on): </strong>Display the individual sections according to user roles & capabilities</p>
1236
- <p><strong>Support: </strong> Ticket 7x24 support</p>
1237
  </td>
1238
  <td style="text-align:center;">
1239
- <p>Up to 3 sites</p>
1240
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1241
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1242
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1258,7 +1269,7 @@ class WPvivid_Admin {
1258
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1259
  </td>
1260
  <td style="text-align:center;">
1261
- <p>Up to 100 sites</p>
1262
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1263
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1264
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1280,7 +1291,7 @@ class WPvivid_Admin {
1280
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1281
  </td>
1282
  <td style="text-align:center;">
1283
- <p>Unlimited</p>
1284
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1285
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1286
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1305,12 +1316,11 @@ class WPvivid_Admin {
1305
  </tbody>
1306
  <tfoot>
1307
  <tr>
1308
- <th>*No credit card needed. Trial starts with the Free Trial plan with 2 sites. You can choose a plan at the end of the trial.</th>
1309
- <th colspan="3" style="text-align:center;"><p style="margin-top: 6px;"><a href="https://wpvivid.com/pricing" class="page-title-action">START 14-DAY FREE TRIAL</a></p></th>
1310
  </tr>
1311
  </tfoot>
1312
  </table>
1313
- <!--</div>-->
1314
  </div>
1315
  <?php
1316
  }
97
 
98
  $menu['id']='wpvivid_admin_menu_backup';
99
  $menu['parent']='wpvivid_admin_menu';
100
+ $menu['title']=__('Backup & Restore', 'wpvivid');
101
  $menu['tab']='admin.php?page=WPvivid&tab-backup';
102
  $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-backup';
103
  $menu['capability']='administrator';
136
 
137
  $html = '<div class="postbox">
138
  <h2>
139
+ <div style="float: left; margin-right: 5px;"><span style="margin: 0; padding: 0">'.__('Current Version:', 'wpvivid').' '.$wpvivid_version.'</span></div>
140
  <div style="float: left; margin-right: 5px;"><span style="margin: 0; padding: 0">|</span></div>
141
  <div style="float: left; margin-left: 0;">
142
+ <span style="margin: 0; padding: 0"><a href="https://wordpress.org/plugins/wpvivid-backuprestore/#developers" target="_blank" style="text-decoration: none;">'.__('ChangeLog', 'wpvivid').'</a></span>
143
  </div>
144
  <div style="clear: both;"></div>
145
  </h2>
146
  </div>
147
  <div id="wpvivid_backup_schedule_part"></div>
148
  <div class="postbox">
149
+ <h2><span>'.__('Troubleshooting', 'wpvivid').'</span></h2>
150
  <div class="inside">
151
  <table class="widefat" cellpadding="0">
152
  <tbody>
153
  <tr class="alternate">
154
+ <td class="row-title">'.__('Read <a href="https://wpvivid.com/troubleshooting-issues-wpvivid-backup-plugin" target="_blank">Troubleshooting page</a> for faster solutions.', 'wpvivid').'</td>
155
  </tr>
156
  <tr>
157
+ <td class="row-title">'.__('Adjust <a href="https://wpvivid.com/wpvivid-backup-plugin-advanced-settings.html" target="_blank">Advanced Settings</a> for higher task success rate.', 'wpvivid').'</td>
158
  </tr>
159
  </tbody>
160
  </table>
161
  </div>
162
  </div>
163
  <div class="postbox">
164
+ <h2><span>'.__('How-to', 'wpvivid').'</span></h2>
165
  <div class="inside">
166
  <table class="widefat" cellpadding="0">
167
  <tbody>
168
+ <tr class="alternate"><td class="row-title"><a href="https://wpvivid.com/get-started-settings.html" target="_blank">'.__('WPvivid Backup Settings', 'wpvivid').'</a></td></tr>
169
+ <tr><td class="row-title"><a href="https://wpvivid.com/get-started-create-a-manual-backup.html" target="_blank">'.__('Create a Manual Backup', 'wpvivid').'</a></td></tr>
170
+ <tr class="alternate"><td class="row-title"><a href="https://wpvivid.com/get-started-restore-site.html" target="_blank">'.__('Restore Your Site from a Backup', 'wpvivid').'</a></td></tr>
171
+ <tr><td class="row-title"><a href="https://wpvivid.com/get-started-transfer-site.html" target="_blank">'.__('Migrate WordPress', 'wpvivid').'</a></td></tr>
172
  </tbody>
173
  </table>
174
  </div>
184
  public function enqueue_styles()
185
  {
186
  $this->screen_ids=apply_filters('wpvivid_get_screen_ids',$this->screen_ids);
 
187
  if(in_array(get_current_screen()->id,$this->screen_ids))
188
  {
189
  wp_enqueue_style($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'css/wpvivid-admin.css', array(), $this->version, 'all');
205
  wp_enqueue_script($this->plugin_name, WPVIVID_PLUGIN_DIR_URL . 'js/wpvivid-admin.js', array('jquery'), $this->version, false);
206
  wp_localize_script($this->plugin_name, 'wpvivid_ajax_object', array('ajax_url' => admin_url('admin-ajax.php'),'ajax_nonce'=>wp_create_nonce('wpvivid_ajax')));
207
 
208
+ wp_localize_script($this->plugin_name, 'wpvividlion', array(
209
+ 'warning' => __('Warning:', 'wpvivid'),
210
+ 'error' => __('Error:', 'wpvivid'),
211
+ 'remotealias' => __('Warning: An alias for remote storage is required.', 'wpvivid'),
212
+ 'remoteexist' => __('Warning: The alias already exists in storage list.', 'wpvivid'),
213
+ 'backup_calc_timeout' => __('Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck \'Calculate the size of files, folder and database before backing up\', save changes, then try again.', 'wpvivid'),
214
+ ));
215
+
216
  wp_enqueue_script('plupload-all');
217
  do_action('wpvivid_do_enqueue_scripts');
218
  }
234
  * Administration Menus: http://codex.wordpress.org/Administration_Menus
235
  *
236
  */
237
+ $menu['page_title']= 'WPvivid Backup';
238
+ $menu['menu_title']= 'WPvivid Backup';
239
  $menu['capability']='administrator';
240
  $menu['menu_slug']= $this->plugin_name;
241
  $menu['function']=array($this, 'display_plugin_setup_page');
242
  $menu['icon_url']='dashicons-cloud';
243
  $menu['position']=100;
244
  $menu = apply_filters('wpvivid_get_main_admin_menus', $menu);
 
245
  add_menu_page( $menu['page_title'],$menu['menu_title'], $menu['capability'], $menu['menu_slug'], $menu['function'], $menu['icon_url'], $menu['position']);
246
  $this->submenus = apply_filters('wpvivid_get_admin_menus', $this->submenus);
 
247
  usort($this->submenus, function ($a, $b) {
248
  if ($a['index'] == $b['index'])
249
  return 0;
253
  else
254
  return -1;
255
  });
 
256
  foreach ($this->submenus as $submenu) {
257
  add_submenu_page(
258
  $submenu['parent_slug'],
343
  if(!empty($migrate_status) && $migrate_status == 'completed')
344
  {
345
  $migrate_notice=true;
346
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you\'d better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist.').'</p></div>';
347
  WPvivid_Setting::delete_option('wpvivid_migrate_status');
348
  }
349
  $restore = new WPvivid_restore_data();
358
  if($need_review=='not')
359
  {
360
  WPvivid_Setting::update_option('wpvivid_need_review','show');
361
+ $msg = apply_filters('wpvivid_custom_trademarks', __('Cheers! WPvivid Backup plugin has restored successfully your website. If you found WPvivid Backup plugin helpful, a 5-star rating would be highly appreciated, which motivates us to keep providing new features.', 'wpvivid'));
362
  WPvivid_Setting::update_option('wpvivid_review_msg',$msg);
363
  }
364
  else{
365
  if(!$migrate_notice)
366
  {
367
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('Restore completed successfully.').'</p></div>';
368
  }
369
  }
370
  }
448
  {
449
  if(!empty($review_msg))
450
  {
451
+ echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
452
  <p>' . $review_msg . '</p>
453
  <div style="padding-bottom: 10px;">
454
+ <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid').'" /></span>
455
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid').'" /></span>
456
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid').'" /></span>
457
  </div>
458
+ </div>';
459
  }
460
  } else if ($review == 'do_not_ask')
461
  {
465
  {
466
  if(!empty($review_msg))
467
  {
468
+ echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
469
  <p>' . $review_msg . '</p>
470
  <div style="padding-bottom: 10px;">
471
+ <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid').'" /></span>
472
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid').'" /></span>
473
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid').'" /></span>
474
  </div>
475
+ </div>';
476
  }
477
  }
478
  }
506
  $amazons3_notice = WPvivid_Setting::get_option('wpvivid_amazons3_notice', 'not init');
507
  if($amazons3_notice === 'not init')
508
  {
509
+ $notice_message = __('As Amazon S3 and DigitalOcean Space have upgraded their connection methods, please delete the previous connections and re-add your Amazon S3/DigitalOcean Space accounts to make sure the connections work.', 'wpvivid');
510
+ echo '<div class="notice notice-warning" id="wpvivid_amazons3_notice">
511
  <p>' . $notice_message . '</p>
512
  <div style="padding-bottom: 10px;">
513
  <span><input type="button" class="button-secondary" value="I Understand" onclick="wpvivid_click_amazons3_notice();" /></span>
514
  </div>
515
+ </div>';
516
  }
517
  }
518
  }
558
  }
559
  }
560
  if($figure == 1){
561
+ echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extension is not detected. Please install the extension first.', 'wpvivid'), $msg).'</p></div>';
562
  }
563
  else{
564
+ echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extensions are not detected. Please install the extensions first.', 'wpvivid'), $msg).'</p></div>';
565
  }
566
  }
567
 
568
  if (!class_exists('PclZip')) include_once(ABSPATH.'/wp-admin/includes/class-pclzip.php');
569
  if (!class_exists('PclZip')) {
570
+ echo '<div class="notice notice-error"><p>'.__('Class PclZip is not detected. Please update or reinstall your WordPress.', 'wpvivid').'</p></div>';
571
  }
572
 
573
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
574
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
575
+ 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').'</p></div>';
576
  }
577
  }
578
 
621
  $page_array['setting'] = array('index' => '5', 'tab_func' => array($this, 'wpvivid_add_tab_setting'), 'page_func' => array($this, 'wpvivid_add_page_setting'));
622
  $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'));
623
  $page_array['log'] = array('index' => '7', 'tab_func' => array($this, 'wpvivid_add_tab_log'), 'page_func' => array($this, 'wpvivid_add_page_log'));
624
+ $page_array['read_log'] = array('index' => '29', 'tab_func' => array($this, 'wpvivid_add_tab_read_log'), 'page_func' => array($this, 'wpvivid_add_page_read_log'));
625
+ $page_array['premium'] = array('index' => '10', 'tab_func' => array($this, 'wpvivid_add_tab_premium'), 'page_func' => array($this, 'wpvivid_add_page_premium'));
626
  $hide_mwp_tab_page = get_option('wpvivid_hide_mwp_tab_page_v1', false);
627
  if($hide_mwp_tab_page === false) {
628
  $page_array['mwp'] = array('index' => '30', 'tab_func' => array($this, 'wpvivid_add_tab_mwp'), 'page_func' => array($this, 'wpvivid_add_page_mwp'));
867
  ?>
868
  <div id="debug-page" class="wrap-tab-content wpvivid_tab_debug" name="tab-debug" style="display:none;">
869
  <table class="widefat">
870
+ <div style="padding: 0 0 20px 10px;"><?php _e('There are two ways available to send us the debug information. The first one is recommended.', 'wpvivid'); ?></div>
871
  <div style="padding-left: 10px;">
872
  <strong><?php _e('Method 1.'); ?></strong> <?php _e('If you have configured SMTP on your site, enter your email address and click the button below to send us the relevant information (website info and errors logs) when you are encountering errors. This will help us figure out what happened. Once the issue is resolved, we will inform you by your email address.', 'wpvivid'); ?>
873
  </div>
874
  <div style="padding:10px 10px 0">
875
+ <span class="wpvivid-element-space-right"><?php echo __('WPvivid support email:', 'wpvivid'); ?></span><input type="text" id="wpvivid_support_mail" value="support@wpvivid.com" readonly />
876
+ <span class="wpvivid-element-space-right"><?php _e('Your email:', 'wpvivid'); ?></span><input type="text" id="wpvivid_user_mail" />
877
  </div>
878
  <div style="padding:10px 10px 0">
879
  <div style="float: left;">
880
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
881
+ <?php _e('I am using:', 'wpvivid'); ?>
882
  </div>
883
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
884
  <select id="wpvivid_debug_type">
889
  <div style="clear: both;"></div>
890
  </div>
891
  <div id="wpvivid_debug_host" style="float: left;">
892
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
893
+ <?php _e('My web hosting provider is:', 'wpvivid'); ?>
894
  </div>
895
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
896
  <input type="text" id="wpvivid_host_provider"/></div>
899
  <div style="clear: both;"></div>
900
  </div>
901
  <div style="padding:0 10px;">
902
+ <textarea id="wpvivid_debug_comment" class="wp-editor-area" style="width:100%; height: 200px;" autocomplete="off" cols="60" placeholder="<?php esc_attr_e('Please describe your problem here.', 'wpvivid'); ?>" ></textarea>
903
  </div>
904
  <div class="schedule-tab-block">
905
  <input class="button-primary" type="submit" value="<?php esc_attr_e( 'Send Debug Information to Us', 'wpvivid' ); ?>" onclick="wpvivid_click_send_debug_info();" />
1049
  $current_page=1;
1050
  $max_page=ceil(sizeof($loglist['log_list']['file'])/$max_log_diaplay);
1051
  if($max_page == 0) $max_page = 1;
1052
+ echo $current_page.' / '.$max_page;
1053
  ?>
1054
  </span>
1055
  </div>
1059
  <?php
1060
  foreach ($display_log_count as $value){
1061
  if($value == $max_log_diaplay){
1062
+ echo '<option selected="selected" value="' . $value . '">' . $value . '</option>';
1063
  }
1064
  else {
1065
+ echo '<option value="' . $value . '">' . $value . '</option>';
1066
  }
1067
  }
1068
  ?>
1161
  <div id="mwp-page" class="wrap-tab-content wpvivid_tab_mainwp" name="tab-mwp" style="display:none;">
1162
  <div style="padding: 10px; background-color: #fff;">
1163
  <div style="margin-bottom: 10px;">
1164
+ <?php echo __('If you are a MainWP user, you can set up and control WPvivid Backup Free and Pro for every child site directly from your MainWP dashboard, using our WPvivid Backup for MainWP extension.', 'wpvivid'); ?>
1165
  </div>
1166
  <div style="margin-bottom: 10px;">
1167
  <input type="button" class="button-primary" id="wpvivid_download_mainwp_extension" value="<?php esc_attr_e('Download WPvivid Backup for MainWP', 'wpvivid'); ?>" />
1168
  </div>
1169
  <div style="margin-bottom: 10px;">
1170
+ <?php _e('1. Create and download backups for a specific child site', 'wpvivid'); ?>
1171
  </div>
1172
  <div style="margin-bottom: 10px;">
1173
+ <?php _e('2. Set backup schedules for all child sites', 'wpvivid'); ?>
1174
  </div>
1175
  <div style="margin-bottom: 10px;">
1176
+ <?php
1177
+ echo __('3. Set WPvivid Backup Free and Pro settings for all child sites', 'wpvivid');
1178
+ ?>
1179
  </div>
1180
  <div style="margin-bottom: 10px;">
1181
+ <?php
1182
+ echo __('4. Install, claim and update WPvivid Backup Pro for child sites in bulk', 'wpvivid');
1183
+ ?>
1184
  </div>
1185
  <div style="margin-bottom: 10px;">
1186
+ <?php
1187
+ echo __('5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)', 'wpvivid');
1188
+ ?>
1189
  </div>
1190
  <div style="margin-bottom: 10px;">
1191
+ <?php
1192
+ echo __('We also offer a 40% off discount on WPvivid Backup Pro for MainWP users.', 'wpvivid');
1193
+ ?>
1194
  </div>
1195
  <div>
1196
  <input type="button" class="button-primary" id="wpvivid_ask_for_discount" value="<?php esc_attr_e('Ask For A 40% OFF Discount', 'wpvivid'); ?>" />
1213
  public function wpvivid_add_page_premium(){
1214
  ?>
1215
  <div id="premium-page" class="wrap-tab-content wpvivid_tab_premium" name="tab-premium" style="display: none;">
1216
+ <table class="wp-list-table widefat plugins" style="border-collapse: collapse;">
 
1217
  <thead>
1218
  <tr class="backup-list-head" style="border-bottom: 0;">
1219
+ <th><?php _e('Pro Version Features', 'wpvivid'); ?></th>
1220
+ <th style="text-align:center;"><?php _e('Basic', 'wpvivid'); ?></th>
1221
+ <th style="text-align:center;"><?php _e('Freelancer', 'wpvivid'); ?></th>
1222
+ <th style="text-align:center;"><?php _e('Ultimate', 'wpvivid'); ?></th>
1223
  </tr>
1224
  </thead>
1225
+ <tbody class="wpvivid-backuplist">
1226
  <tr style="">
1227
  <td>
1228
+ <p><strong><?php _e('Websites', 'wpvivid'); ?></strong></p>
1229
+ <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid'); ?></p>
1230
+ <p style="color: #dd9933;"><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Incremental Backup', 'wpvivid'); ?></p>
1231
+ <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Create a restore point', 'wpvivid'); ?></p>
1232
+ <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Include/exclude files/folders', 'wpvivid'); ?></p>
1233
+ <p><strong><?php _e('Migration:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid'); ?></p>
1234
+ <p><strong><?php _e('Migration:', 'wpvivid'); ?></strong>&nbsp<?php _e('Migration via remote storage', 'wpvivid'); ?></p>
1235
+ <p><strong><?php _e('Remote Storage:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Directory (leading cloud storage providers)', 'wpvivid'); ?></p>
1236
+ <p><strong><?php _e('Remote Storage:', 'wpvivid'); ?></strong>&nbsp<?php _e('WASABI/Pcloud (Only Pro)', 'wpvivid'); ?></p>
1237
+ <p style="color: #dd9933;"><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Incremental Backup Schedule', 'wpvivid'); ?></p>
1238
+ <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Timezone', 'wpvivid'); ?></p>
1239
+ <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom content for each schedule', 'wpvivid'); ?></p>
1240
+ <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom start time of schedule', 'wpvivid'); ?></p>
1241
+ <p><strong><?php _e('Restore:', 'wpvivid'); ?></strong>&nbsp<?php _e('Restore a website from remote storage', 'wpvivid'); ?></p>
1242
+ <p><strong><?php _e('Restore:', 'wpvivid'); ?></strong>&nbsp<?php _e('Restore what you want from a backup', 'wpvivid'); ?></p>
1243
+ <p><strong><?php _e('Email Reports:', 'wpvivid'); ?></strong>&nbsp<?php _e('Send email reports to multiple email addresses', 'wpvivid'); ?></p>
1244
+ <p style="color: #dd9933;"><strong><?php _e('Staging (add-on):', 'wpvivid'); ?></strong>&nbsp<?php _e('Create a sub-directory staging site with one-click', 'wpvivid'); ?></p>
1245
+ <p style="color: #dd9933;"><strong><?php _e('Staging (add-on):', 'wpvivid'); ?></strong>&nbsp<?php _e('Publish a staging site to a live site with one-click', 'wpvivid'); ?></p>
1246
+ <p style="color: #dd9933;"><strong><?php _e('Roles & Capabilities (add-on):', 'wpvivid'); ?></strong>&nbsp<?php _e('Display the individual sections according to user roles & capabilities', 'wpvivid'); ?></p>
1247
+ <p><strong><?php _e('Support:', 'wpvivid'); ?></strong>&nbsp<?php _e('Ticket 7x24 support', 'wpvivid'); ?></p>
1248
  </td>
1249
  <td style="text-align:center;">
1250
+ <p><?php _e('Up to 3 sites', 'wpvivid'); ?></p>
1251
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1252
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1253
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1269
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1270
  </td>
1271
  <td style="text-align:center;">
1272
+ <p><?php _e('Up to 100 sites', 'wpvivid'); ?></p>
1273
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1274
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1275
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1291
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1292
  </td>
1293
  <td style="text-align:center;">
1294
+ <p><?php _e('Unlimited', 'wpvivid'); ?></p>
1295
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1296
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1297
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1316
  </tbody>
1317
  <tfoot>
1318
  <tr>
1319
+ <th><?php _e('*No credit card needed. Trial starts with the Free Trial plan with 2 sites. You can choose a plan at the end of the trial.', 'wpvivid'); ?></th>
1320
+ <th colspan="3" style="text-align:center;"><p style="margin-top: 6px;"><a href="https://wpvivid.com/pricing" class="page-title-action"><?php _e('START 14-DAY FREE TRIAL', 'wpvivid'); ?></a></p></th>
1321
  </tr>
1322
  </tfoot>
1323
  </table>
 
1324
  </div>
1325
  <?php
1326
  }
admin/js/wpvivid-admin.js CHANGED
@@ -517,14 +517,14 @@ function wpvivid_add_notice(notice_action, notice_type, notice_msg){
517
  jQuery('#'+notice_id).show();
518
  var div = '';
519
  if(notice_type === "Warning"){
520
- div = "<div class='notice notice-warning is-dismissible inline'><p>Warning: " + notice_msg + "</p>" +
521
  "<button type='button' class='notice-dismiss' onclick='click_dismiss_notice(this);'>" +
522
  "<span class='screen-reader-text'>Dismiss this notice.</span>" +
523
  "</button>" +
524
  "</div>";
525
  }
526
  else if(notice_type === "Error"){
527
- div = "<div class=\"notice notice-error inline\"><p>Error: " + notice_msg + "</p></div>";
528
  }
529
  else if(notice_type === "Success"){
530
  wpvivid_clear_notice('wpvivid_backup_notice');
517
  jQuery('#'+notice_id).show();
518
  var div = '';
519
  if(notice_type === "Warning"){
520
+ div = "<div class='notice notice-warning is-dismissible inline'><p>" + wpvividlion.warning + notice_msg + "</p>" +
521
  "<button type='button' class='notice-dismiss' onclick='click_dismiss_notice(this);'>" +
522
  "<span class='screen-reader-text'>Dismiss this notice.</span>" +
523
  "</button>" +
524
  "</div>";
525
  }
526
  else if(notice_type === "Error"){
527
+ div = "<div class=\"notice notice-error inline\"><p>" + wpvividlion.error + notice_msg + "</p></div>";
528
  }
529
  else if(notice_type === "Success"){
530
  wpvivid_clear_notice('wpvivid_backup_notice');
admin/partials/wpvivid-admin-display.php CHANGED
@@ -29,13 +29,6 @@ $schedule=WPvivid_Schedule::get_schedule();
29
 
30
  do_action('show_notice');
31
 
32
- add_filter('wpvivid_tran_test', 'wpvivid_tran_test');
33
- function wpvivid_tran_test($content){
34
- $content = str_replace('wpvivid', 'Other trademarks', $content);
35
- $content = str_replace('WPvivid', 'Other trademarks', $content);
36
- return $content;
37
- }
38
-
39
  ?>
40
 
41
  <?php
@@ -53,7 +46,7 @@ foreach ($page_array as $page_name){
53
  <h1><?php
54
  $plugin_display_name = 'WPvivid Backup Plugin';
55
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
56
- echo apply_filters('wpvivid_tran_test', __('WPvivid Backup Plugin', 'wpvivid'));
57
  ?></h1>
58
  <div id="wpvivid_backup_notice">
59
  <?php
@@ -67,7 +60,7 @@ foreach ($page_array as $page_name){
67
  $default_remote_storage=$value;
68
  }
69
  if($default_remote_storage == ''){
70
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: There is no default remote storage available for the scheduled backups, please set up it first.</p></div>');
71
  }
72
  }
73
  }
29
 
30
  do_action('show_notice');
31
 
 
 
 
 
 
 
 
32
  ?>
33
 
34
  <?php
46
  <h1><?php
47
  $plugin_display_name = 'WPvivid Backup Plugin';
48
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
49
+ echo __('WPvivid Backup Plugin', 'wpvivid');
50
  ?></h1>
51
  <div id="wpvivid_backup_notice">
52
  <?php
60
  $default_remote_storage=$value;
61
  }
62
  if($default_remote_storage == ''){
63
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: There is no default remote storage available for the scheduled backups, please set up it first.', 'wpvivid').'</p></div>';
64
  }
65
  }
66
  }
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -879,14 +879,14 @@ function wpvivid_backuppage_add_page_restore(){
879
  <p><?php _e('Restore function will replace the current site\'s themes, plugins, uploads, database and/or other content directories with the existing equivalents in the selected backup.', 'wpvivid'); ?></p>
880
  <div id="wpvivid_restore_is_migrate" style="padding-bottom: 10px; display: none;">
881
  <label >
882
- <input type="radio" id="wpvivid_replace_domain" option="restore" name="restore_domain" value="1" /><?php echo 'Restore and replace the original domain (URL) with '.home_url().' (migration)'; ?>
883
  </label><br>
884
  <label >
885
  <input type="radio" id="wpvivid_keep_domain" option="restore" name="restore_domain" value="0" /><?php _e('Restore and keep the original domain (URL) unchanged', 'wpvivid'); ?>
886
  </label><br>
887
  </div>
888
  <div>
889
- <p><strong>Tips:</strong> The plugin detects automatically either site restoration or migration (replacing the domain name) based on the current domain name. If the domain name in backup file is same as the current one, it starts restoring. On the contrary, restoring backup means to replace with the current domain name. The precondition is that the backup is created by version 0.9.21 or later.</p>
890
  </div>
891
  <div id="wpvivid_restore_check"></div>
892
  <div class="restore-button-position" id="wpvivid_restore_part"><input class="button-primary" id="wpvivid_restore_btn" type="submit" name="restore" value="<?php esc_attr_e( 'Restore', 'wpvivid' ); ?>" onclick="wpvivid_start_restore();" /></div>
@@ -894,7 +894,7 @@ function wpvivid_backuppage_add_page_restore(){
894
  <div class="restore-button-position" id="wpvivid_rollback_part"><input class="button-primary" id="wpvivid_rollback_btn" type="submit" name="rollback" value="<?php esc_attr_e( 'Rollback', 'wpvivid' ); ?>" /></div>
895
  <div class="restore-button-position" id="wpvivid_download_part">
896
  <input class="button-primary" id="wpvivid_download_btn" type="submit" name="download" value="<?php esc_attr_e( 'Retrieve the backup to localhost', 'wpvivid' ); ?>" />
897
- <span>The backup is stored on the remote storage, click on the button to download it to localhost.</span>
898
  </div>
899
  <div class="spinner" id="wpvivid_init_restore_data" style="float:left;width:auto;height:auto;padding:10px 20px 20px 0;background-position:0 10px;"></div>
900
  </div>
@@ -1560,7 +1560,7 @@ function wpvivid_backup_module_add_descript(){
1560
  <span style="font-size: 10px; color: #FFA500; line-height: 10px;">(<?php _e('new feature', 'wpvivid'); ?>)</span>
1561
  </div>
1562
  <div class="quickstart-storage-setting">
1563
- <span class="list-top-chip backup" name="ismerge" value="1" style="margin: 10px 10px 10px 0;"><?php _e('Local Storage Directory:'); ?></span>
1564
  <span class="list-top-chip" id="wpvivid_local_storage_path" style="margin: 10px 10px 10px 0;"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1565
  <span class="list-top-chip" style="margin: 10px 10px 10px 0;"><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);" style="text-decoration: none;"><?php _e('rename directory', 'wpvivid'); ?></a></span>
1566
  </div>
@@ -1716,7 +1716,7 @@ function wpvivid_backup_module_add_exec(){
1716
  }
1717
  }, function (XMLHttpRequest, textStatus, errorThrown) {
1718
  //var error_message = wpvivid_output_ajaxerror('preparing the backup', textStatus, errorThrown);
1719
- var error_message='Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck \'Calculate the size of files, folder and database before backing up\', save changes, then try again.';
1720
  wpvivid_delete_ready_task(error_message);
1721
  });
1722
  }
879
  <p><?php _e('Restore function will replace the current site\'s themes, plugins, uploads, database and/or other content directories with the existing equivalents in the selected backup.', 'wpvivid'); ?></p>
880
  <div id="wpvivid_restore_is_migrate" style="padding-bottom: 10px; display: none;">
881
  <label >
882
+ <input type="radio" id="wpvivid_replace_domain" option="restore" name="restore_domain" value="1" /><?php echo sprintf(__('Restore and replace the original domain (URL) with %s (migration)', 'wpvivid'), home_url()); ?>
883
  </label><br>
884
  <label >
885
  <input type="radio" id="wpvivid_keep_domain" option="restore" name="restore_domain" value="0" /><?php _e('Restore and keep the original domain (URL) unchanged', 'wpvivid'); ?>
886
  </label><br>
887
  </div>
888
  <div>
889
+ <p><strong><?php _e('Tips:', 'wpvivid'); ?></strong>&nbsp<?php _e('The plugin detects automatically either site restoration or migration (replacing the domain name) based on the current domain name. If the domain name in backup file is same as the current one, it starts restoring. On the contrary, restoring backup means to replace with the current domain name. The precondition is that the backup is created by version 0.9.21 or later.', 'wpvivid'); ?></p>
890
  </div>
891
  <div id="wpvivid_restore_check"></div>
892
  <div class="restore-button-position" id="wpvivid_restore_part"><input class="button-primary" id="wpvivid_restore_btn" type="submit" name="restore" value="<?php esc_attr_e( 'Restore', 'wpvivid' ); ?>" onclick="wpvivid_start_restore();" /></div>
894
  <div class="restore-button-position" id="wpvivid_rollback_part"><input class="button-primary" id="wpvivid_rollback_btn" type="submit" name="rollback" value="<?php esc_attr_e( 'Rollback', 'wpvivid' ); ?>" /></div>
895
  <div class="restore-button-position" id="wpvivid_download_part">
896
  <input class="button-primary" id="wpvivid_download_btn" type="submit" name="download" value="<?php esc_attr_e( 'Retrieve the backup to localhost', 'wpvivid' ); ?>" />
897
+ <span><?php _e('The backup is stored on the remote storage, click on the button to download it to localhost.', 'wpvivid'); ?></span>
898
  </div>
899
  <div class="spinner" id="wpvivid_init_restore_data" style="float:left;width:auto;height:auto;padding:10px 20px 20px 0;background-position:0 10px;"></div>
900
  </div>
1560
  <span style="font-size: 10px; color: #FFA500; line-height: 10px;">(<?php _e('new feature', 'wpvivid'); ?>)</span>
1561
  </div>
1562
  <div class="quickstart-storage-setting">
1563
+ <span class="list-top-chip backup" name="ismerge" value="1" style="margin: 10px 10px 10px 0;"><?php _e('Local Storage Directory:', 'wpvivid'); ?></span>
1564
  <span class="list-top-chip" id="wpvivid_local_storage_path" style="margin: 10px 10px 10px 0;"><?php _e(WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1565
  <span class="list-top-chip" style="margin: 10px 10px 10px 0;"><a href="#" onclick="wpvivid_click_switch_page('wrap', 'wpvivid_tab_setting', true);" style="text-decoration: none;"><?php _e('rename directory', 'wpvivid'); ?></a></span>
1566
  </div>
1716
  }
1717
  }, function (XMLHttpRequest, textStatus, errorThrown) {
1718
  //var error_message = wpvivid_output_ajaxerror('preparing the backup', textStatus, errorThrown);
1719
+ var error_message=wpvividlion.backup_calc_timeout;//'Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck \'Calculate the size of files, folder and database before backing up\', save changes, then try again.';
1720
  wpvivid_delete_ready_task(error_message);
1721
  });
1722
  }
admin/partials/wpvivid-remote-storage-page-display.php CHANGED
@@ -58,10 +58,6 @@ function wpvivid_add_page_storage_list()
58
  wpvivid_settings_changed = false;
59
  });
60
 
61
- jQuery('input[option=edit-remote]').click(function(){
62
- wpvivid_edit_remote_storage();
63
- });
64
-
65
  jQuery('#wpvivid_set_default_remote_storage').click(function(){
66
  wpvivid_set_default_remote_storage();
67
  wpvivid_settings_changed = false;
@@ -308,6 +304,11 @@ function wpvivid_add_page_storage_edit()
308
  <div class="storage-tab-content wpvivid_tab_storage_edit" id="page-storage_edit" style="display:none;">
309
  <div><?php do_action('wpvivid_edit_remote_page'); ?></div>
310
  </div>
 
 
 
 
 
311
  <?php
312
  }
313
 
58
  wpvivid_settings_changed = false;
59
  });
60
 
 
 
 
 
61
  jQuery('#wpvivid_set_default_remote_storage').click(function(){
62
  wpvivid_set_default_remote_storage();
63
  wpvivid_settings_changed = false;
304
  <div class="storage-tab-content wpvivid_tab_storage_edit" id="page-storage_edit" style="display:none;">
305
  <div><?php do_action('wpvivid_edit_remote_page'); ?></div>
306
  </div>
307
+ <script>
308
+ jQuery('input[option=edit-remote]').click(function(){
309
+ wpvivid_edit_remote_storage();
310
+ });
311
+ </script>
312
  <?php
313
  }
314
 
admin/partials/wpvivid-settings-page-display.php CHANGED
@@ -14,7 +14,7 @@ function wpvivid_general_settings()
14
  else{
15
  $wpvivid_setting_estimate_backup='';
16
  }
17
- if(!isset($general_setting['options']['wpvivid_common_setting']['show_tab_menu'])){
18
  $wpvivid_show_tab_menu='checked';
19
  }
20
  else {
@@ -23,7 +23,7 @@ function wpvivid_general_settings()
23
  } else {
24
  $wpvivid_show_tab_menu = '';
25
  }
26
- }
27
  if(!isset($general_setting['options']['wpvivid_common_setting']['show_admin_bar'])){
28
  $show_admin_bar = 'checked';
29
  }
@@ -78,25 +78,19 @@ function wpvivid_general_settings()
78
  <?php
79
  for($i=1; $i<8;$i++){
80
  if($i === $display_backup_count){
81
- _e('<option selected="selected" value="' . $i . '">' . $i . '</option>', 'wpvivid');
82
  }
83
  else {
84
- _e('<option value="' . $i . '">' . $i . '</option>', 'wpvivid');
85
  }
86
  }
87
  ?>
88
- </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>
89
  </div>
90
  <div>
91
  <label for="wpvivid_estimate_backup">
92
- <input type="checkbox" option="setting" name="estimate_backup" id="wpvivid_estimate_backup" value="1" <?php esc_attr_e($wpvivid_setting_estimate_backup, 'wpvivid'); ?> />
93
- <span><?php _e('Calculate the size of files, folder and database before backing up ', 'wpvivid' ); ?></span>
94
- </label>
95
- </div>
96
- <div>
97
- <label>
98
- <input type="checkbox" option="setting" name="show_tab_menu" <?php esc_attr_e($wpvivid_show_tab_menu); ?> />
99
- <span><?php _e('Display the tab pages in admin navigation menu', 'wpvivid'); ?></span>
100
  </label>
101
  </div>
102
  <div>
@@ -211,7 +205,7 @@ function wpvivid_email_report()
211
  }
212
  ?>
213
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
214
- <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>
215
  </div>
216
  <div>
217
  <label for="wpvivid_general_email_enable">
@@ -243,7 +237,7 @@ function wpvivid_email_report()
243
  </label><br>
244
  </fieldset>
245
  <div style="margin-bottom: 10px;">
246
- <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>
247
  </div>
248
  </div>
249
  </div>
@@ -321,7 +315,7 @@ function wpvivid_clean_junk()
321
  <input type="checkbox" id="wpvivid_junk_temporary_file" option="junk-files" name="old_files" value="junk-temporary-files" />
322
  <span class="wpvivid-element-space-right"><?php _e( 'Temporary Files', 'wpvivid' ); ?></span>
323
  <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid'); ?></span><span id="wpvivid_restore_temp_file_path"><?php _e($junk_file['old_files_path'], 'wpvivid'); ?></span>
324
- <p><?php _e('Temporary Files are created by wpvivid when restoring a website.', 'wpvivid'); ?></p>
325
  </label>
326
  </fieldset>
327
  </div>
@@ -428,12 +422,12 @@ function wpvivid_export_import_settings()
428
  <div class="postbox schedule-tab-block" id="wpvivid_export_import">
429
  <div class="setting-tab-block" style="padding-bottom: 0;">
430
  <input class="button-primary" id="wpvivid_setting_export" type="button" name="" value="<?php esc_attr_e( 'Export', 'wpvivid' ); ?>" />
431
- <p><?php _e('Click \'Export\' button to save WPvivid settings on your local computer.', 'wpvivid'); ?> </p>
432
  </div>
433
  <div class="setting-tab-block" style="padding: 0 10px 0 0;">
434
  <input type="file" name="fileTrans" id="wpvivid_select_import_file"></br>
435
  <input class="button-primary" id="wpvivid_setting_import" type="button" name="" value="<?php esc_attr_e( 'Import', 'wpvivid' ); ?>" />
436
- <p><?php _e('Importing the json file can help you set WPvivid\'s configuration on another wordpress site quickly.', 'wpvivid'); ?></p>
437
  </div>
438
  <div style="clear:both;"></div>
439
  </div>
@@ -553,7 +547,7 @@ function wpvivid_advanced_settings()
553
  ?>
554
  <div class="postbox schedule-tab-block setting-page-content">
555
  <div>
556
- <p><strong><?php _e('Enable the option when backup failed.', 'wpvivid'); ?></strong><?php _e(' Special optimization for web hosting/shared hosting', 'wpvivid'); ?></p>
557
  <div>
558
  <label>
559
  <input type="checkbox" option="setting" name="subpackage_plugin_upload" <?php esc_attr_e($subpackage_plugin_upload); ?> />
@@ -635,19 +629,19 @@ function wpvivid_advanced_settings()
635
  <div><p><?php _e('e.g.  if you choose a chunk size of 2MB, a 8MB file will use 4 chunks. Decreasing this value will break the ISP\'s transmission limit, for example:512KB', 'wpvivid'); ?></p></div>
636
  </div>
637
  <div>
638
- <strong>Retrying </strong>
639
- <select option="setting" name="max_resume_count">
640
- <?php
641
- for($resume_count=3; $resume_count<10; $resume_count++){
642
- if($resume_count === $wpvivid_max_resume_count){
643
- _e('<option selected="selected" value="'.$resume_count.'">'.$resume_count.'</option>');
644
- }
645
- else{
646
- _e('<option value="'.$resume_count.'">'.$resume_count.'</option>');
647
- }
648
  }
649
- ?>
650
- </select><strong><?php _e(' times when encountering a time-out error', 'wpvivid'); ?></strong>
 
 
651
  </div>
652
  </div>
653
  </div>
14
  else{
15
  $wpvivid_setting_estimate_backup='';
16
  }
17
+ /*if(!isset($general_setting['options']['wpvivid_common_setting']['show_tab_menu'])){
18
  $wpvivid_show_tab_menu='checked';
19
  }
20
  else {
23
  } else {
24
  $wpvivid_show_tab_menu = '';
25
  }
26
+ }*/
27
  if(!isset($general_setting['options']['wpvivid_common_setting']['show_admin_bar'])){
28
  $show_admin_bar = 'checked';
29
  }
78
  <?php
79
  for($i=1; $i<8;$i++){
80
  if($i === $display_backup_count){
81
+ echo '<option selected="selected" value="' . $i . '">' . $i . '</option>';
82
  }
83
  else {
84
+ echo '<option value="' . $i . '">' . $i . '</option>';
85
  }
86
  }
87
  ?>
88
+ </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;"><?php _e('Pro feature: Retain more backups', 'wpvivid'); ?></a>
89
  </div>
90
  <div>
91
  <label for="wpvivid_estimate_backup">
92
+ <input type="checkbox" option="setting" name="estimate_backup" id="wpvivid_estimate_backup" value="1" <?php esc_attr_e($wpvivid_setting_estimate_backup); ?> />
93
+ <span><?php _e('Calculate the size of files, folder and database before backing up', 'wpvivid' ); ?></span>
 
 
 
 
 
 
94
  </label>
95
  </div>
96
  <div>
205
  }
206
  ?>
207
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
208
+ <div><p><?php _e('In order to use this function, please install a <strong><a target="_blank" href="https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html" style="text-decoration: none;">WordPress SMTP plugin</a></strong> 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>
209
  </div>
210
  <div>
211
  <label for="wpvivid_general_email_enable">
237
  </label><br>
238
  </fieldset>
239
  <div style="margin-bottom: 10px;">
240
+ <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;"><?php _e('Pro feature: Add another email address to get report', 'wpvivid'); ?></a>
241
  </div>
242
  </div>
243
  </div>
315
  <input type="checkbox" id="wpvivid_junk_temporary_file" option="junk-files" name="old_files" value="junk-temporary-files" />
316
  <span class="wpvivid-element-space-right"><?php _e( 'Temporary Files', 'wpvivid' ); ?></span>
317
  <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid'); ?></span><span id="wpvivid_restore_temp_file_path"><?php _e($junk_file['old_files_path'], 'wpvivid'); ?></span>
318
+ <p><?php echo __('Temporary Files are created by wpvivid when restoring a website.', 'wpvivid'); ?></p>
319
  </label>
320
  </fieldset>
321
  </div>
422
  <div class="postbox schedule-tab-block" id="wpvivid_export_import">
423
  <div class="setting-tab-block" style="padding-bottom: 0;">
424
  <input class="button-primary" id="wpvivid_setting_export" type="button" name="" value="<?php esc_attr_e( 'Export', 'wpvivid' ); ?>" />
425
+ <p><?php echo __('Click \'Export\' button to save WPvivid settings on your local computer.', 'wpvivid'); ?> </p>
426
  </div>
427
  <div class="setting-tab-block" style="padding: 0 10px 0 0;">
428
  <input type="file" name="fileTrans" id="wpvivid_select_import_file"></br>
429
  <input class="button-primary" id="wpvivid_setting_import" type="button" name="" value="<?php esc_attr_e( 'Import', 'wpvivid' ); ?>" />
430
+ <p><?php echo __('Importing the json file can help you set WPvivid\'s configuration on another wordpress site quickly.', 'wpvivid'); ?></p>
431
  </div>
432
  <div style="clear:both;"></div>
433
  </div>
547
  ?>
548
  <div class="postbox schedule-tab-block setting-page-content">
549
  <div>
550
+ <p><strong><?php _e('Enable the option when backup failed.', 'wpvivid'); ?></strong>&nbsp<?php _e('Special optimization for web hosting/shared hosting', 'wpvivid'); ?></p>
551
  <div>
552
  <label>
553
  <input type="checkbox" option="setting" name="subpackage_plugin_upload" <?php esc_attr_e($subpackage_plugin_upload); ?> />
629
  <div><p><?php _e('e.g.  if you choose a chunk size of 2MB, a 8MB file will use 4 chunks. Decreasing this value will break the ISP\'s transmission limit, for example:512KB', 'wpvivid'); ?></p></div>
630
  </div>
631
  <div>
632
+ <?php
633
+ $max_count_option = '';
634
+ for($resume_count=3; $resume_count<10; $resume_count++){
635
+ if($resume_count === $wpvivid_max_resume_count){
636
+ $max_count_option .= '<option selected="selected" value="'.$resume_count.'">'.$resume_count.'</option>';
637
+ }
638
+ else{
639
+ $max_count_option .= '<option value="'.$resume_count.'">'.$resume_count.'</option>';
 
 
640
  }
641
+ }
642
+ $max_count_select = '<select option="setting" name="max_resume_count">'.$max_count_option.'</select>';
643
+ echo sprintf(__('<strong>Retrying </strong>%s<strong> times when encountering a time-out error</strong>', 'wpvivid'), $max_count_select);
644
+ ?>
645
  </div>
646
  </div>
647
  </div>
includes/class-wpvivid-backup-uploader.php CHANGED
@@ -540,9 +540,9 @@ class Wpvivid_BackupUploader
540
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js">
541
  <div id="drag-drop-area">
542
  <div class="drag-drop-inside">
543
- <p class="drag-drop-info"><?php _e('Drop files here'); ?></p>
544
  <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?></p>
545
- <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files'); ?>" class="button" /></p>
546
  </div>
547
  </div>
548
  </div>
540
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js">
541
  <div id="drag-drop-area">
542
  <div class="drag-drop-inside">
543
+ <p class="drag-drop-info"><?php _e('Drop files here', 'wpvivid'); ?></p>
544
  <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?></p>
545
+ <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files', 'wpvivid'); ?>" class="button" /></p>
546
  </div>
547
  </div>
548
  </div>
includes/class-wpvivid-backup.php CHANGED
@@ -278,6 +278,10 @@ class WPvivid_Backup_Task
278
  $backup_data['json_info']['dump_db']=1;
279
  $backup_data['json_info']['home_url']=home_url();
280
  $backup_data['json_info']['file_type']='databases';
 
 
 
 
281
  $backup_data['prefix']=$this->get_prefix().'_backup_db';
282
  }
283
  else if($backup==WPVIVID_BACKUP_TYPE_THEMES)
@@ -1090,7 +1094,7 @@ class WPvivid_Backup_Task
1090
  }
1091
 
1092
  $list_tasks['task_info']['speed'] = $speed;
1093
- $list_tasks['task_info']['descript'] = $descript.__(' Progress: ', 'wpvivid') . $list_tasks['task_info']['backup_percent'] . __(', running time: ', 'wpvivid') . $list_tasks['data']['running_time'];
1094
 
1095
  $time_spend=time()-$list_tasks['status']['run_time'];
1096
  if($time_spend>30)
@@ -1103,7 +1107,7 @@ class WPvivid_Backup_Task
1103
  }
1104
  }
1105
  else {
1106
- $list_tasks['task_info']['descript'] = $list_tasks['data']['descript'] . __(' Progress: ', 'wpvivid') . $list_tasks['task_info']['backup_percent'] . __(', running time: ', 'wpvivid') . $list_tasks['data']['running_time'];
1107
  }
1108
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: auto; opacity: 1;';
1109
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
@@ -2249,7 +2253,7 @@ class WPvivid_Backup
2249
  {
2250
  global $wpvivid_plugin;
2251
  $wpvivid_plugin->set_time_limit($this->task->get_id());
2252
- $this->task->update_sub_task_progress($next_backup['key'],0,'Start backing up '.$next_backup['key'].'.');
2253
  $wpvivid_plugin->wpvivid_log->WriteLog('Prepare to backup '.$next_backup['key'].' files.','notice');
2254
  $this->backup_type_report .= $next_backup['key'].',';
2255
  if(isset($next_backup['files'])) {
@@ -2257,7 +2261,7 @@ class WPvivid_Backup
2257
  }
2258
  $result = $this->_backup($next_backup);
2259
  $wpvivid_plugin->wpvivid_log->WriteLog('Backing up '.$next_backup['key'].' completed.','notice');
2260
- $this->task->update_sub_task_progress($next_backup['key'],1,'Backing up '.$next_backup['key'].' finished.');
2261
  $this->task->update_backup_result($next_backup,$result);
2262
  $wpvivid_plugin->check_cancel_backup($task_id);
2263
  unset($next_backup);
278
  $backup_data['json_info']['dump_db']=1;
279
  $backup_data['json_info']['home_url']=home_url();
280
  $backup_data['json_info']['file_type']='databases';
281
+ if(is_multisite())
282
+ {
283
+ $backup_data['json_info']['is_mu']=1;
284
+ }
285
  $backup_data['prefix']=$this->get_prefix().'_backup_db';
286
  }
287
  else if($backup==WPVIVID_BACKUP_TYPE_THEMES)
1094
  }
1095
 
1096
  $list_tasks['task_info']['speed'] = $speed;
1097
+ $list_tasks['task_info']['descript'] = $descript.' '.__('Progress: ', 'wpvivid') . $list_tasks['task_info']['backup_percent'] . ', ' . __('running time: ', 'wpvivid') . $list_tasks['data']['running_time'];
1098
 
1099
  $time_spend=time()-$list_tasks['status']['run_time'];
1100
  if($time_spend>30)
1107
  }
1108
  }
1109
  else {
1110
+ $list_tasks['task_info']['descript'] = $list_tasks['data']['descript'] . ' '. __('Progress: ', 'wpvivid') . $list_tasks['task_info']['backup_percent'] . ', '. __('running time: ', 'wpvivid') . $list_tasks['data']['running_time'];
1111
  }
1112
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: auto; opacity: 1;';
1113
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
2253
  {
2254
  global $wpvivid_plugin;
2255
  $wpvivid_plugin->set_time_limit($this->task->get_id());
2256
+ $this->task->update_sub_task_progress($next_backup['key'],0, sprintf(__('Start backing up %s.', 'wpvivid'), $next_backup['key']));
2257
  $wpvivid_plugin->wpvivid_log->WriteLog('Prepare to backup '.$next_backup['key'].' files.','notice');
2258
  $this->backup_type_report .= $next_backup['key'].',';
2259
  if(isset($next_backup['files'])) {
2261
  }
2262
  $result = $this->_backup($next_backup);
2263
  $wpvivid_plugin->wpvivid_log->WriteLog('Backing up '.$next_backup['key'].' completed.','notice');
2264
+ $this->task->update_sub_task_progress($next_backup['key'],1, sprintf(__('Backing up %s finished.', 'wpvivid'), $next_backup['key']));
2265
  $this->task->update_backup_result($next_backup,$result);
2266
  $wpvivid_plugin->check_cancel_backup($task_id);
2267
  unset($next_backup);
includes/class-wpvivid-error-log.php CHANGED
@@ -21,14 +21,21 @@ class WPvivid_error_log
21
  @fclose($tempfile);
22
  }
23
  }
24
- @copy($log_file_name,$dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
25
- self::delete_oldest_error_log();
 
 
 
 
 
 
26
  }
27
 
28
  public static function create_restore_error_log($log_file_name)
29
  {
30
  $dir=dirname($log_file_name);
31
- if(!is_dir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error')){
 
32
  @mkdir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error',0777,true);
33
  @fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/index.html', 'x');
34
  $tempfile=@fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/.htaccess', 'x');
@@ -41,8 +48,13 @@ class WPvivid_error_log
41
  }
42
  $id = uniqid('wpvivid-');
43
  $file=$id.'_restore_log.txt';
 
 
 
 
 
44
  @copy($log_file_name,$dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
45
- self::delete_oldest_error_log();
46
  }
47
 
48
  public static function delete_oldest_error_log()
21
  @fclose($tempfile);
22
  }
23
  }
24
+ if(file_exists($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file))
25
+ {
26
+ @unlink($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
27
+ }
28
+
29
+ @rename($log_file_name,$dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
30
+
31
+ //self::delete_oldest_error_log();
32
  }
33
 
34
  public static function create_restore_error_log($log_file_name)
35
  {
36
  $dir=dirname($log_file_name);
37
+ if(!is_dir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'))
38
+ {
39
  @mkdir($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error',0777,true);
40
  @fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/index.html', 'x');
41
  $tempfile=@fopen($dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.'/.htaccess', 'x');
48
  }
49
  $id = uniqid('wpvivid-');
50
  $file=$id.'_restore_log.txt';
51
+ if(file_exists($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file))
52
+ {
53
+ @unlink($dir.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
54
+ }
55
+
56
  @copy($log_file_name,$dir.DIRECTORY_SEPARATOR.'wpvivid_log'.DIRECTORY_SEPARATOR.'error'.DIRECTORY_SEPARATOR.$file);
57
+ //self::delete_oldest_error_log();
58
  }
59
 
60
  public static function delete_oldest_error_log()
includes/class-wpvivid-export-import.php CHANGED
@@ -62,7 +62,7 @@ class WPvivid_Export_Import
62
 
63
  $menu['id']='wpvivid_admin_menu_export_import';
64
  $menu['parent']='wpvivid_admin_menu';
65
- $menu['title']='Export & Import';
66
  $menu['tab']= 'admin.php?page=wpvivid-export-import';
67
  $menu['href']=$admin_url . 'admin.php?page=wpvivid-export-import';
68
  $menu['capability']='administrator';
@@ -74,7 +74,7 @@ class WPvivid_Export_Import
74
  public function get_admin_menus($submenus)
75
  {
76
  $submenu['parent_slug']=WPVIVID_PLUGIN_SLUG;
77
- $submenu['page_title']= __('WPvivid Backup');
78
  $submenu['menu_title']=__('Export & Import', 'wpvivid');
79
  $submenu['capability']='administrator';
80
  $submenu['menu_slug']='wpvivid-export-import';
@@ -91,7 +91,7 @@ class WPvivid_Export_Import
91
  <h1><?php
92
  $plugin_display_name = 'WPvivid Backup Plugin';
93
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
94
- _e($plugin_display_name);
95
  ?></h1>
96
  <div id="wpvivid_export_notice"></div>
97
  <?php
@@ -116,13 +116,13 @@ class WPvivid_Export_Import
116
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
117
  </div>
118
  <div style="box-sizing: border-box;">
119
- <div class="wpvivid-text-space-bottom">Export posts or pages with images in bulk.
120
  <span class="wpvivid-feature-pro">
121
- <a href="https://wpvivid.com/export-content" target="_blank" style="text-decoration: none;">Learn more</a>
122
  </span>
123
  </div>
124
- <div class="wpvivid-text-space-bottom">This will contain all of your posts, pages, comments, terms and images (original images, featured images and thumbnails).</div>
125
- <div class="wpvivid-text-space-bottom"><strong>Note:</strong> Try to select fewer items when you are facing a shortage of server resources (typically presented as a timeout error).</div>
126
  <div style="clear: both;"></div>
127
  </div>
128
  <div style="clear: both;"></div>
@@ -130,7 +130,11 @@ class WPvivid_Export_Import
130
  <div style="clear: both;"></div>
131
 
132
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
133
- <div><?php _e('Exported files will be temporarily stored in '.$export_dir.' directory'); ?></div>
 
 
 
 
134
  </div>
135
 
136
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
@@ -151,7 +155,7 @@ class WPvivid_Export_Import
151
  </div>
152
 
153
  <div id="wpvivid_export_page">
154
- <input class="button-primary wpvivid-button-export-archieve" type="submit" name="post" value="Next Step" />
155
  </div>
156
  <div class="postbox" id="wpvivid_export_task_progress" style="display: none; margin-top: 10px; margin-bottom: 0;">
157
  <div class="action-progress-bar" id="wpvivid_export_bar_percent">
@@ -174,7 +178,7 @@ class WPvivid_Export_Import
174
  jQuery('.wpvivid-export-type-'+export_type).addClass('wpvivid-export-type-provider-active');
175
  if(current_export_type !== export_type){
176
  current_export_type = export_type;
177
- var button_html = '<input class="button-primary wpvivid-button-export-archieve" type="submit" name="'+export_type+'" value="Next Step" />';
178
  jQuery('#wpvivid_export_page').html(button_html);
179
  jQuery('#wpvivid_export_summary').hide();
180
  }
@@ -616,7 +620,7 @@ class WPvivid_Export_Import
616
  ob_start();
617
  ?>
618
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
619
- <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2>Choose what to export</h2></div>
620
  </div>
621
  <div style="clear: both;"></div>
622
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
@@ -624,7 +628,7 @@ class WPvivid_Export_Import
624
  <legend class="screen-reader-text"><span>input type="radio"</span></legend>
625
  <div class="wpvivid-element-space-bottom wpvivid-element-space-right" style="float: left;">
626
  <label>
627
- <input type="radio" option="export" name="contain" value="list" checked/><?php _e('Filter Posts/Pages'); ?>
628
  </label>
629
  </div>
630
  <div style="clear: both;"></div>
@@ -643,7 +647,7 @@ class WPvivid_Export_Import
643
  wp_dropdown_categories(
644
  array(
645
  'class' => 'regular-text',
646
- 'show_option_all' => __('All Categories')
647
  )
648
  );
649
  ?>
@@ -651,7 +655,11 @@ class WPvivid_Export_Import
651
  </td>
652
  <td class="column-description desc">
653
  <div class="wpvivid-storage-form-desc">
654
- <i>Export <?php _e($descript_type); ?> of all categories or a specific category.</i>
 
 
 
 
655
  </div>
656
  </td>
657
  </tr>
@@ -669,7 +677,7 @@ class WPvivid_Export_Import
669
  'include' => $authors,
670
  'name' => 'post_author',
671
  'multi' => true,
672
- 'show_option_all' => __( 'All Authors' ),
673
  'show' => 'display_name_with_login',
674
  )
675
  );
@@ -678,7 +686,11 @@ class WPvivid_Export_Import
678
  </td>
679
  <td class="column-description desc">
680
  <div class="wpvivid-storage-form-desc">
681
- <i>Export <?php _e($descript_type); ?> of all authors or a specific author.</i>
 
 
 
 
682
  </div>
683
  </td>
684
  </tr>
@@ -688,14 +700,18 @@ class WPvivid_Export_Import
688
  <div class="wpvivid-storage-form regular-text">
689
  <label for="post-start-date" class="label-responsive" style="display: block;"></label>
690
  <select class="regular-text" name="post_start_date" id="post-start-date">
691
- <option value="0"><?php _e( '&mdash; Select &mdash;' ); ?></option>
692
  <?php $this->export_date_options($post_type); ?>
693
  </select>
694
  </div>
695
  </td>
696
  <td class="column-description desc">
697
  <div class="wpvivid-storage-form-desc">
698
- <i>Export <?php _e($descript_type); ?> published after this date.</i>
 
 
 
 
699
  </div>
700
  </td>
701
  </tr>
@@ -705,14 +721,18 @@ class WPvivid_Export_Import
705
  <div class="wpvivid-storage-form regular-text">
706
  <label for="post-end-date" class="label-responsive" style="display: block;"></label>
707
  <select class="regular-text" name="post_end_date" id="post-end-date">
708
- <option value="0"><?php _e( '&mdash; Select &mdash;' ); ?></option>
709
  <?php $this->export_date_options($post_type); ?>
710
  </select>
711
  </div>
712
  </td>
713
  <td class="column-description desc">
714
  <div class="wpvivid-storage-form-desc">
715
- <i>Export <?php _e($descript_type); ?> published before this date.</i>
 
 
 
 
716
  </div>
717
  </td>
718
  </tr>
@@ -746,12 +766,16 @@ class WPvivid_Export_Import
746
  <tr>
747
  <td class="plugin-title column-primary">
748
  <div class="wpvivid-storage-form">
749
- <input class="button-primary" id="wpvivid-post-query-submit" type="submit" name="<?php echo $post_type; ?>" value="Search" />
750
  </div>
751
  </td>
752
  <td class="column-description desc">
753
  <div class="wpvivid-storage-form-desc">
754
- <i>Search for <?php _e($post_type); ?>s according to the above rules.</i>
 
 
 
 
755
  </div>
756
  </td>
757
  </tr>
@@ -762,29 +786,29 @@ class WPvivid_Export_Import
762
  </div>
763
 
764
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
765
- <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2>Comment the export (optional)</h2></div>
766
  </div>
767
  <div style="clear: both;"></div>
768
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
769
  <div>
770
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;">Comment the export: </div>
771
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
772
  <input type="text" option="export" name="post_comment" id="wpvivid_set_post_comment" onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" />
773
  </div>
774
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;">Only letters (except for wpvivid) and numbers are allowed.</div>
775
  <div style="clear: both;"></div>
776
  </div>
777
  <div>
778
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">Sample:</div>
779
  <div class="wpvivid-element-space-bottom" style="float: left;">
780
- <div class="wpvivid-element-space-bottom" style="display: inline;" id="wpvivid_post_comment">*</div><div class="wpvivid-element-space-bottom" style="display: inline;">_wpvivid-5dbf8d6a5f133_2019-11-08-03-15_export_<?php _e($post_type); ?>.zip</div>
781
  </div>
782
  <div style="clear: both;"></div>
783
  </div>
784
  </div>
785
 
786
  <div>
787
- <input class="button-primary" id="wpvivid_start_export" type="submit" name="<?php echo $post_type; ?>" value="Export and Download" style="pointer-events: none; opacity: 0.4;">
788
  </div>
789
  <?php
790
 
@@ -1281,7 +1305,7 @@ class WPvivid_Export_Import
1281
  }
1282
  else if($status['str']=='running')
1283
  {
1284
- $ret['doing']= __(' Progress: ', 'wpvivid') . $progress['descript'] . __(', running time: ', 'wpvivid') . $progress['running_time'];
1285
  }
1286
  else if($status['str']=='wait_resume')
1287
  {
@@ -1305,11 +1329,7 @@ class WPvivid_Export_Import
1305
  $msg .= '<div style="margin-bottom: 10px;">The count of exported '.$post_type.': '.$task['data']['export']['export_info']['post_count'].'.</div>';
1306
  $msg .= '<div style="margin-bottom: 10px;">File name: '.$file_name.'.</div>';
1307
  $msg .= '<div>File size: '.size_format($file_size, 2).'.</div>';
1308
- /*$ret['doing']=__('<div class="notice notice-success is-dismissible inline"><p>Export task have been completed, task id: '.$task['id'].'</p>
1309
- <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
1310
- <span class="screen-reader-text">Dismiss this notice.</span>
1311
- </button>
1312
- </div>');*/
1313
  $ret['completed']=true;
1314
  $ret['file_name'] = $file_name;
1315
  $ret['file_size'] = $file_size;
@@ -1318,7 +1338,7 @@ class WPvivid_Export_Import
1318
  else if($status['str']=='error')
1319
  {
1320
  $ret['doing']='Export error: '.$task['status']['error'];
1321
- $ret['doing']=__('<div class="notice notice-error is-dismissible inline"><p>Export error: '.$task['status']['error'].'</p></div>');
1322
  $ret['error']=true;
1323
  }
1324
 
@@ -1459,13 +1479,13 @@ class WPvivid_Export_Import
1459
  }
1460
  else{
1461
  $admin_url = admin_url();
1462
- echo __('File size not match. please <a href="'.$admin_url.'admin.php?page=wpvivid-export-import">retry</a> again.');
1463
  die();
1464
  }
1465
  }
1466
 
1467
  $admin_url = admin_url();
1468
- echo __('File not found. please <a href="'.$admin_url.'admin.php?page=wpvivid-export-import">retry</a> again.');
1469
  die();
1470
  }
1471
  }
@@ -1490,13 +1510,13 @@ class WPvivid_Export_Import
1490
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
1491
  </div>
1492
  <div style="box-sizing: border-box;">
1493
- <div class="wpvivid-element-space-bottom wpvivid-element-space-right">Import posts or pages with images in bulk.
1494
  <span class="wpvivid-feature-pro">
1495
- <a href="https://wpvivid.com/import-content" target="_blank" style="text-decoration: none;">Learn more</a>
1496
  </span>
1497
  </div>
1498
- <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><strong>Note:</strong> To properly display the imported content,
1499
- please make sure that the importing and exporting sites have the same environment, for example, same theme or pages built with the same page builder.
1500
  </div>
1501
  <div style="clear: both;"></div>
1502
  </div>
@@ -1505,41 +1525,41 @@ class WPvivid_Export_Import
1505
  <div style="clear: both;"></div>
1506
 
1507
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
1508
- <div style="margin-right: 10px; float: left; height: 28px; line-height: 28px;"><?php _e('Imported files will be temporarily stored in directory '.$import_dir); ?></div>
1509
- <div style="float: left;"><input class="button" type="submit" id="wpvivid_empty_import_folder" value="Delete Exported Files In Folder" onclick="wpvivid_clean_import_folder();" /></div>
1510
  <div style="clear: both;"></div>
1511
  </div>
1512
 
1513
  <div id="wpvivid_import_step1">
1514
- <p>Choose an export from your computer to import: </p>
1515
- <input class="button button-primary" type="button" id="wpvivid_select_import_file_button" value="Upload and Import" />
1516
  <div id="wpvivid_upload_file_list" class="hide-if-no-js" style="margin-top: 10px; display: none;"></div>
1517
  <br>
1518
- <p>Or you can use ftp to upload the export to the directory <?php _e($import_dir); ?>. Then click the button below to scan the file to import.</p>
1519
- <input class="button button-primary" type="button" value="Scan Uploaded Exports" onclick="wpvivid_refresh_import_list();" />
1520
  <div class="wpvivid-export-import-block" id="wpvivid_import_list" style="margin-top: 10px; display: none;"></div>
1521
  </div>
1522
  <div id="wpvivid_import_step2" style="display: none;">
1523
- <h3>The importing file info</h3>
1524
  <div id="wpvivid_import_file_data">
1525
  </div>
1526
- <h3>Assign author</h3>
1527
  <div>
1528
- Select an existing author:
1529
  <?php wp_dropdown_users( array( 'name' => "user_map", 'multi' => true, 'show_option_all' => __( '- Select -', 'wpvivid' ) ) );?>
1530
  </div>
1531
- <h3>Import Setting</h3>
1532
  <div style="margin-bottom: 10px;">
1533
  <label>
1534
  <input type="checkbox" id="wpvivid_overwrite_existing" />
1535
- <span><strong>Overwrite existing pages</strong></span>
1536
  </label>
1537
  </div>
1538
  <div style="margin-bottom: 10px;">
1539
- <span>With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import.</span>
1540
  </div>
1541
- <input class="button button-primary" type="button" id="wpvivid_start_import" value="Start to Import" />
1542
- <input class="button button-primary" type="button" id="wpvivid_rechoose_import_file" value="Back to Import Page" />
1543
  </div>
1544
  <div id="wpvivid_import_step3" style="display: none;">
1545
  <div class="postbox wpvivid-import-log" id="wpvivid_import_log" style="margin-top: 10px; margin-bottom: 0;"></div>
62
 
63
  $menu['id']='wpvivid_admin_menu_export_import';
64
  $menu['parent']='wpvivid_admin_menu';
65
+ $menu['title']=__('Export & Import', 'wpvivid');
66
  $menu['tab']= 'admin.php?page=wpvivid-export-import';
67
  $menu['href']=$admin_url . 'admin.php?page=wpvivid-export-import';
68
  $menu['capability']='administrator';
74
  public function get_admin_menus($submenus)
75
  {
76
  $submenu['parent_slug']=WPVIVID_PLUGIN_SLUG;
77
+ $submenu['page_title']= 'WPvivid Backup';
78
  $submenu['menu_title']=__('Export & Import', 'wpvivid');
79
  $submenu['capability']='administrator';
80
  $submenu['menu_slug']='wpvivid-export-import';
91
  <h1><?php
92
  $plugin_display_name = 'WPvivid Backup Plugin';
93
  $plugin_display_name = apply_filters('wpvivid_display_pro_name', $plugin_display_name);
94
+ echo __('WPvivid Backup Plugin', 'wpvivid');
95
  ?></h1>
96
  <div id="wpvivid_export_notice"></div>
97
  <?php
116
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
117
  </div>
118
  <div style="box-sizing: border-box;">
119
+ <div class="wpvivid-text-space-bottom"><?php _e('Export posts or pages with images in bulk.', 'wpvivid'); ?>
120
  <span class="wpvivid-feature-pro">
121
+ <a href="https://wpvivid.com/export-content" target="_blank" style="text-decoration: none;"><?php _e('Learn more', 'wpvivid'); ?></a>
122
  </span>
123
  </div>
124
+ <div class="wpvivid-text-space-bottom"><?php _e('This will contain all of your posts, pages, comments, terms and images (original images, featured images and thumbnails).', 'wpvivid'); ?></div>
125
+ <div class="wpvivid-text-space-bottom"><strong><?php _e('Note:', 'wpvivid'); ?></strong>&nbsp<?php _e('Try to select fewer items when you are facing a shortage of server resources (typically presented as a timeout error).', 'wpvivid'); ?></div>
126
  <div style="clear: both;"></div>
127
  </div>
128
  <div style="clear: both;"></div>
130
  <div style="clear: both;"></div>
131
 
132
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
133
+ <div>
134
+ <?php
135
+ echo sprintf(__('Exported files will be temporarily stored in %s directory', 'wpvivid'), $export_dir);
136
+ ?>
137
+ </div>
138
  </div>
139
 
140
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
155
  </div>
156
 
157
  <div id="wpvivid_export_page">
158
+ <input class="button-primary wpvivid-button-export-archieve" type="submit" name="post" value="<?php esc_attr_e('Next Step', 'wpvivid'); ?>" />
159
  </div>
160
  <div class="postbox" id="wpvivid_export_task_progress" style="display: none; margin-top: 10px; margin-bottom: 0;">
161
  <div class="action-progress-bar" id="wpvivid_export_bar_percent">
178
  jQuery('.wpvivid-export-type-'+export_type).addClass('wpvivid-export-type-provider-active');
179
  if(current_export_type !== export_type){
180
  current_export_type = export_type;
181
+ var button_html = '<input class="button-primary wpvivid-button-export-archieve" type="submit" name="'+export_type+'" value="<?php esc_attr_e('Next Step', 'wpvivid'); ?>" />';
182
  jQuery('#wpvivid_export_page').html(button_html);
183
  jQuery('#wpvivid_export_summary').hide();
184
  }
620
  ob_start();
621
  ?>
622
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
623
+ <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Choose what to export', 'wpvivid'); ?></h2></div>
624
  </div>
625
  <div style="clear: both;"></div>
626
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
628
  <legend class="screen-reader-text"><span>input type="radio"</span></legend>
629
  <div class="wpvivid-element-space-bottom wpvivid-element-space-right" style="float: left;">
630
  <label>
631
+ <input type="radio" option="export" name="contain" value="list" checked/><?php _e('Filter Posts/Pages', 'wpvivid'); ?>
632
  </label>
633
  </div>
634
  <div style="clear: both;"></div>
647
  wp_dropdown_categories(
648
  array(
649
  'class' => 'regular-text',
650
+ 'show_option_all' => __('All Categories', 'wpvivid')
651
  )
652
  );
653
  ?>
655
  </td>
656
  <td class="column-description desc">
657
  <div class="wpvivid-storage-form-desc">
658
+ <i>
659
+ <?php
660
+ echo sprintf(__('Export %s of all categories or a specific category.', 'wpvivid'), $descript_type);
661
+ ?>
662
+ </i>
663
  </div>
664
  </td>
665
  </tr>
677
  'include' => $authors,
678
  'name' => 'post_author',
679
  'multi' => true,
680
+ 'show_option_all' => __( 'All Authors', 'wpvivid' ),
681
  'show' => 'display_name_with_login',
682
  )
683
  );
686
  </td>
687
  <td class="column-description desc">
688
  <div class="wpvivid-storage-form-desc">
689
+ <i>
690
+ <?php
691
+ echo sprintf(__('Export %s of all authors or a specific author.', 'wpvivid'), $descript_type);
692
+ ?>
693
+ </i>
694
  </div>
695
  </td>
696
  </tr>
700
  <div class="wpvivid-storage-form regular-text">
701
  <label for="post-start-date" class="label-responsive" style="display: block;"></label>
702
  <select class="regular-text" name="post_start_date" id="post-start-date">
703
+ <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid' ); ?></option>
704
  <?php $this->export_date_options($post_type); ?>
705
  </select>
706
  </div>
707
  </td>
708
  <td class="column-description desc">
709
  <div class="wpvivid-storage-form-desc">
710
+ <i>
711
+ <?php
712
+ echo sprintf(__('Export %s published after this date.', 'wpvivid'), $descript_type);
713
+ ?>
714
+ </i>
715
  </div>
716
  </td>
717
  </tr>
721
  <div class="wpvivid-storage-form regular-text">
722
  <label for="post-end-date" class="label-responsive" style="display: block;"></label>
723
  <select class="regular-text" name="post_end_date" id="post-end-date">
724
+ <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid' ); ?></option>
725
  <?php $this->export_date_options($post_type); ?>
726
  </select>
727
  </div>
728
  </td>
729
  <td class="column-description desc">
730
  <div class="wpvivid-storage-form-desc">
731
+ <i>
732
+ <?php
733
+ echo sprintf(__('Export %s published before this date.', 'wpvivid'), $descript_type);
734
+ ?>
735
+ </i>
736
  </div>
737
  </td>
738
  </tr>
766
  <tr>
767
  <td class="plugin-title column-primary">
768
  <div class="wpvivid-storage-form">
769
+ <input class="button-primary" id="wpvivid-post-query-submit" type="submit" name="<?php echo $post_type; ?>" value="<?php esc_attr_e('Search', 'wpvivid'); ?>" />
770
  </div>
771
  </td>
772
  <td class="column-description desc">
773
  <div class="wpvivid-storage-form-desc">
774
+ <i>
775
+ <?php
776
+ echo sprintf(__('Search for %s according to the above rules.', 'wpvivid'), $post_type);
777
+ ?>
778
+ </i>
779
  </div>
780
  </td>
781
  </tr>
786
  </div>
787
 
788
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
789
+ <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Comment the export (optional)', 'wpvivid'); ?></h2></div>
790
  </div>
791
  <div style="clear: both;"></div>
792
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
793
  <div>
794
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;"><?php _e('Comment the export: ', 'wpvivid'); ?></div>
795
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
796
  <input type="text" option="export" name="post_comment" id="wpvivid_set_post_comment" onkeyup="value=value.replace(/[^a-zA-Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" />
797
  </div>
798
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;"><?php _e('Only letters (except for wpvivid) and numbers are allowed.', 'wpvivid'); ?></div>
799
  <div style="clear: both;"></div>
800
  </div>
801
  <div>
802
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;"><?php _e('Sample:', 'wpvivid'); ?></div>
803
  <div class="wpvivid-element-space-bottom" style="float: left;">
804
+ <div class="wpvivid-element-space-bottom" style="display: inline;" id="wpvivid_post_comment">*</div><div class="wpvivid-element-space-bottom" style="display: inline;">_wpvivid-5dbf8d6a5f133_2019-11-08-03-15_export_<?php _e($post_type, 'wpvivid'); ?>.zip</div>
805
  </div>
806
  <div style="clear: both;"></div>
807
  </div>
808
  </div>
809
 
810
  <div>
811
+ <input class="button-primary" id="wpvivid_start_export" type="submit" name="<?php echo $post_type; ?>" value="<?php esc_attr_e('Export and Download', 'wpvivid'); ?>" style="pointer-events: none; opacity: 0.4;">
812
  </div>
813
  <?php
814
 
1305
  }
1306
  else if($status['str']=='running')
1307
  {
1308
+ $ret['doing']= ' '.__('Progress: ', 'wpvivid') . $progress['descript'] . ', '.__('running time: ', 'wpvivid') . $progress['running_time'];
1309
  }
1310
  else if($status['str']=='wait_resume')
1311
  {
1329
  $msg .= '<div style="margin-bottom: 10px;">The count of exported '.$post_type.': '.$task['data']['export']['export_info']['post_count'].'.</div>';
1330
  $msg .= '<div style="margin-bottom: 10px;">File name: '.$file_name.'.</div>';
1331
  $msg .= '<div>File size: '.size_format($file_size, 2).'.</div>';
1332
+
 
 
 
 
1333
  $ret['completed']=true;
1334
  $ret['file_name'] = $file_name;
1335
  $ret['file_size'] = $file_size;
1338
  else if($status['str']=='error')
1339
  {
1340
  $ret['doing']='Export error: '.$task['status']['error'];
1341
+ $ret['doing']='<div class="notice notice-error is-dismissible inline"><p>'.__('Export error:', 'wpvivid').' '.$task['status']['error'].'</p></div>';
1342
  $ret['error']=true;
1343
  }
1344
 
1479
  }
1480
  else{
1481
  $admin_url = admin_url();
1482
+ echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File size not match. please retry again.', 'wpvivid').'</a>';
1483
  die();
1484
  }
1485
  }
1486
 
1487
  $admin_url = admin_url();
1488
+ echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File not found. please retry again.', 'wpvivid').'</a>';
1489
  die();
1490
  }
1491
  }
1510
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
1511
  </div>
1512
  <div style="box-sizing: border-box;">
1513
+ <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><?php _e('Import posts or pages with images in bulk.', 'wpvivid'); ?>
1514
  <span class="wpvivid-feature-pro">
1515
+ <a href="https://wpvivid.com/import-content" target="_blank" style="text-decoration: none;"><?php _e('Learn more', 'wpvivid'); ?></a>
1516
  </span>
1517
  </div>
1518
+ <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><strong><?php _e('Note:', 'wpvivid'); ?></strong>
1519
+ <?php _e('To properly display the imported content, please make sure that the importing and exporting sites have the same environment, for example, same theme or pages built with the same page builder.', 'wpvivid'); ?>
1520
  </div>
1521
  <div style="clear: both;"></div>
1522
  </div>
1525
  <div style="clear: both;"></div>
1526
 
1527
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
1528
+ <div style="margin-right: 10px; float: left; height: 28px; line-height: 28px;"><?php echo sprintf(__('Imported files will be temporarily stored in directory %s', 'wpvivid'), $import_dir) ?></div>
1529
+ <div style="float: left;"><input class="button" type="submit" id="wpvivid_empty_import_folder" value="<?php esc_attr_e('Delete Exported Files In Folder', 'wpvivid'); ?>" onclick="wpvivid_clean_import_folder();" /></div>
1530
  <div style="clear: both;"></div>
1531
  </div>
1532
 
1533
  <div id="wpvivid_import_step1">
1534
+ <p><?php _e('Choose an export from your computer to import: ', 'wpvivid'); ?></p>
1535
+ <input class="button button-primary" type="button" id="wpvivid_select_import_file_button" value="<?php esc_attr_e('Upload and Import', 'wpvivid'); ?>" />
1536
  <div id="wpvivid_upload_file_list" class="hide-if-no-js" style="margin-top: 10px; display: none;"></div>
1537
  <br>
1538
+ <p><?php echo sprintf(__('Or you can use ftp to upload the export to the directory %s. Then click the button below to scan the file to import.', 'wpvivid'), $import_dir); ?></p>
1539
+ <input class="button button-primary" type="button" value="<?php esc_attr_e('Scan Uploaded Exports', 'wpvivid'); ?>" onclick="wpvivid_refresh_import_list();" />
1540
  <div class="wpvivid-export-import-block" id="wpvivid_import_list" style="margin-top: 10px; display: none;"></div>
1541
  </div>
1542
  <div id="wpvivid_import_step2" style="display: none;">
1543
+ <h3><?php _e('The importing file info', 'wpvivid'); ?></h3>
1544
  <div id="wpvivid_import_file_data">
1545
  </div>
1546
+ <h3><?php _e('Assign author', 'wpvivid'); ?></h3>
1547
  <div>
1548
+ <?php _e('Select an existing author:', 'wpvivid'); ?>
1549
  <?php wp_dropdown_users( array( 'name' => "user_map", 'multi' => true, 'show_option_all' => __( '- Select -', 'wpvivid' ) ) );?>
1550
  </div>
1551
+ <h3><?php _e('Import Setting', 'wpvivid'); ?></h3>
1552
  <div style="margin-bottom: 10px;">
1553
  <label>
1554
  <input type="checkbox" id="wpvivid_overwrite_existing" />
1555
+ <span><strong><?php _e('Overwrite existing pages', 'wpvivid'); ?></strong></span>
1556
  </label>
1557
  </div>
1558
  <div style="margin-bottom: 10px;">
1559
+ <span><?php _e('With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import.', 'wpvivid'); ?></span>
1560
  </div>
1561
+ <input class="button button-primary" type="button" id="wpvivid_start_import" value="<?php esc_attr_e('Start to Import', 'wpvivid'); ?>" />
1562
+ <input class="button button-primary" type="button" id="wpvivid_rechoose_import_file" value="<?php esc_attr_e('Back to Import Page', 'wpvivid'); ?>" />
1563
  </div>
1564
  <div id="wpvivid_import_step3" style="display: none;">
1565
  <div class="postbox wpvivid-import-log" id="wpvivid_import_log" style="margin-top: 10px; margin-bottom: 0;"></div>
includes/class-wpvivid-exporter.php CHANGED
@@ -192,7 +192,7 @@ class WPvivid_Post_List extends WP_List_Table
192
  $this->set_pagination_args(
193
  array(
194
  'total_items' => $total_items,
195
- 'per_page' => 30,
196
  )
197
  );
198
  }
@@ -262,32 +262,32 @@ class WPvivid_Post_List extends WP_List_Table
262
  global $mode;
263
 
264
  if ( '0000-00-00 00:00:00' === $post->post_date ) {
265
- $t_time = $h_time = __( 'Unpublished' );
266
  $time_diff = 0;
267
  } else {
268
- $t_time = get_the_time( __( 'Y/m/d g:i:s a' ) );
269
  $m_time = $post->post_date;
270
  $time = get_post_time( 'G', true, $post );
271
 
272
  $time_diff = time() - $time;
273
 
274
  if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) {
275
- $h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) );
276
  } else {
277
- $h_time = mysql2date( __( 'Y/m/d' ), $m_time );
278
  }
279
  }
280
 
281
  if ( 'publish' === $post->post_status ) {
282
- $status = __( 'Published' );
283
  } elseif ( 'future' === $post->post_status ) {
284
  if ( $time_diff > 0 ) {
285
- $status = '<strong class="error-message">' . __( 'Missed schedule' ) . '</strong>';
286
  } else {
287
- $status = __( 'Scheduled' );
288
  }
289
  } else {
290
- $status = __( 'Last Modified' );
291
  }
292
 
293
  /**
@@ -402,7 +402,7 @@ class WPvivid_Post_List extends WP_List_Table
402
  $out[] = $label;
403
  }
404
  /* translators: used between list items, there is a space after the comma */
405
- echo join( __( ', ' ), $out );
406
  } else {
407
  echo '<span aria-hidden="true">&#8212;</span><span class="screen-reader-text">' . $taxonomy_object->labels->no_terms . '</span>';
408
  }
@@ -464,7 +464,7 @@ class WPvivid_Post_List extends WP_List_Table
464
  $count=0;
465
  while ( $count<$page )
466
  {
467
- $page_post_ids = array_splice( $post_ids, 0, 30);
468
  $count++;
469
  }
470
  foreach ( $page_post_ids as $post_id)
192
  $this->set_pagination_args(
193
  array(
194
  'total_items' => $total_items,
195
+ 'per_page' => 1,
196
  )
197
  );
198
  }
262
  global $mode;
263
 
264
  if ( '0000-00-00 00:00:00' === $post->post_date ) {
265
+ $t_time = $h_time = __( 'Unpublished', 'wpvivid' );
266
  $time_diff = 0;
267
  } else {
268
+ $t_time = get_the_time( 'Y/m/d g:i:s a' );
269
  $m_time = $post->post_date;
270
  $time = get_post_time( 'G', true, $post );
271
 
272
  $time_diff = time() - $time;
273
 
274
  if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) {
275
+ $h_time = sprintf( __( '%s ago', 'wpvivid' ), human_time_diff( $time ) );
276
  } else {
277
+ $h_time = mysql2date( 'Y/m/d', $m_time );
278
  }
279
  }
280
 
281
  if ( 'publish' === $post->post_status ) {
282
+ $status = __( 'Published', 'wpvivid' );
283
  } elseif ( 'future' === $post->post_status ) {
284
  if ( $time_diff > 0 ) {
285
+ $status = '<strong class="error-message">' . __( 'Missed schedule', 'wpvivid' ) . '</strong>';
286
  } else {
287
+ $status = __( 'Scheduled', 'wpvivid' );
288
  }
289
  } else {
290
+ $status = __( 'Last Modified', 'wpvivid' );
291
  }
292
 
293
  /**
402
  $out[] = $label;
403
  }
404
  /* translators: used between list items, there is a space after the comma */
405
+ echo join( ', ', $out );
406
  } else {
407
  echo '<span aria-hidden="true">&#8212;</span><span class="screen-reader-text">' . $taxonomy_object->labels->no_terms . '</span>';
408
  }
464
  $count=0;
465
  while ( $count<$page )
466
  {
467
+ $page_post_ids = array_splice( $post_ids, 0, 1);
468
  $count++;
469
  }
470
  foreach ( $page_post_ids as $post_id)
includes/class-wpvivid-importer.php CHANGED
@@ -83,11 +83,11 @@ class WPvivid_Export_List extends WP_List_Table
83
  {
84
  $posts_columns = array();
85
 
86
- $posts_columns['file_name'] = __( 'File Name', 'column name' );
87
- $posts_columns['export_type'] = __( 'Post Types' );
88
- $posts_columns['posts_count'] = __( 'Count' );
89
- $posts_columns['media_size'] = __( 'Media Files Size' );
90
- $posts_columns['import'] = __( 'Action' );
91
 
92
  return $posts_columns;
93
  }
@@ -1666,7 +1666,7 @@ class WPvivid_media_importer
1666
 
1667
  if(!file_exists($new_file))
1668
  {
1669
- return new WP_Error( 'import_file_error', __('File not exist ex file:'.$new_file, 'wordpress-importer') );
1670
  }
1671
 
1672
  $wp_filetype = wp_check_filetype( $file_name );
@@ -1721,7 +1721,7 @@ class WPvivid_media_importer
1721
  {
1722
  if ( ! $this->fetch_attachments )
1723
  return new WP_Error( 'attachment_processing_error',
1724
- __( 'Fetching attachments is not enabled', 'wordpress-importer' ) );
1725
 
1726
  // if the URL is absolute, but does not contain address, then upload it assuming base_site_url
1727
  if ( preg_match( '|^/[\w\W]+$|', $url ) )
@@ -1734,7 +1734,7 @@ class WPvivid_media_importer
1734
  if ( $info = wp_check_filetype( $upload['file'] ) )
1735
  $post['post_mime_type'] = $info['type'];
1736
  else
1737
- return new WP_Error( 'attachment_processing_error', __('Invalid file type', 'wordpress-importer') );
1738
 
1739
  $post['guid'] = $upload['url'];
1740
 
@@ -1779,7 +1779,7 @@ class WPvivid_media_importer
1779
 
1780
  if(!file_exists($new_file))
1781
  {
1782
- return new WP_Error( 'import_file_error', __('File not exist file:'.$new_file, 'wordpress-importer') );
1783
  }
1784
 
1785
  return apply_filters(
@@ -1874,8 +1874,8 @@ class WPvivid_WXR_Parser
1874
  $error = $result->get_error_data();
1875
  $msg.= $error[0] . ':' . $error[1] . ' ' . esc_html( $error[2] );
1876
  }
1877
- $msg.=__( 'There was an error when reading this WXR file', 'wordpress-importer' ) ;
1878
- $msg.=__( 'Details are shown above. The importer will now try again with a different parser...', 'wordpress-importer' );
1879
 
1880
  return new WP_Error( 'WXR_Parser_error', $msg,'' );
1881
  }
@@ -1910,7 +1910,7 @@ class WPvivid_WXR_Parser_SimpleXML
1910
 
1911
  if ( ! $success || isset( $dom->doctype ) )
1912
  {
1913
- return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
1914
  }
1915
 
1916
  $xml = simplexml_import_dom( $dom );
@@ -1918,16 +1918,16 @@ class WPvivid_WXR_Parser_SimpleXML
1918
 
1919
  // halt if loading produces an error
1920
  if ( ! $xml )
1921
- return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
1922
 
1923
  $wxr_version = $xml->xpath('/rss/channel/wp:wxr_version');
1924
  if ( ! $wxr_version )
1925
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
1926
 
1927
  $wxr_version = (string) trim( $wxr_version[0] );
1928
  // confirm that we are dealing with the correct file format
1929
  if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) )
1930
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
1931
 
1932
  $base_url = $xml->xpath('/rss/channel/wp:base_site_url');
1933
  $base_url = (string) trim( $base_url[0] );
@@ -2152,7 +2152,7 @@ class WPvivid_WXR_Parser_XML {
2152
  xml_parser_free( $xml );
2153
 
2154
  if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) )
2155
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
2156
 
2157
  return array(
2158
  'authors' => $this->authors,
@@ -2348,7 +2348,7 @@ class WPvivid_WXR_Parser_Regex {
2348
  }
2349
 
2350
  if ( ! $wxr_version )
2351
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
2352
 
2353
  return array(
2354
  'authors' => $this->authors,
83
  {
84
  $posts_columns = array();
85
 
86
+ $posts_columns['file_name'] = __( 'File Name', 'wpvivid' );
87
+ $posts_columns['export_type'] = __( 'Post Types', 'wpvivid' );
88
+ $posts_columns['posts_count'] = __( 'Count', 'wpvivid' );
89
+ $posts_columns['media_size'] = __( 'Media Files Size', 'wpvivid' );
90
+ $posts_columns['import'] = __( 'Action', 'wpvivid' );
91
 
92
  return $posts_columns;
93
  }
1666
 
1667
  if(!file_exists($new_file))
1668
  {
1669
+ return new WP_Error( 'import_file_error', __('File not exist, file:'.$new_file, 'wpvivid') );
1670
  }
1671
 
1672
  $wp_filetype = wp_check_filetype( $file_name );
1721
  {
1722
  if ( ! $this->fetch_attachments )
1723
  return new WP_Error( 'attachment_processing_error',
1724
+ __( 'Fetching attachments is not enabled', 'wpvivid' ) );
1725
 
1726
  // if the URL is absolute, but does not contain address, then upload it assuming base_site_url
1727
  if ( preg_match( '|^/[\w\W]+$|', $url ) )
1734
  if ( $info = wp_check_filetype( $upload['file'] ) )
1735
  $post['post_mime_type'] = $info['type'];
1736
  else
1737
+ return new WP_Error( 'attachment_processing_error', __('Invalid file type', 'wpvivid') );
1738
 
1739
  $post['guid'] = $upload['url'];
1740
 
1779
 
1780
  if(!file_exists($new_file))
1781
  {
1782
+ return new WP_Error( 'import_file_error', __('File not exist file:'.$new_file, 'wpvivid') );
1783
  }
1784
 
1785
  return apply_filters(
1874
  $error = $result->get_error_data();
1875
  $msg.= $error[0] . ':' . $error[1] . ' ' . esc_html( $error[2] );
1876
  }
1877
+ $msg.=__( 'There was an error when reading this WXR file', 'wpvivid' ) ;
1878
+ $msg.=__( 'Details are shown above. The importer will now try again with a different parser...', 'wpvivid' );
1879
 
1880
  return new WP_Error( 'WXR_Parser_error', $msg,'' );
1881
  }
1910
 
1911
  if ( ! $success || isset( $dom->doctype ) )
1912
  {
1913
+ return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wpvivid' ), libxml_get_errors() );
1914
  }
1915
 
1916
  $xml = simplexml_import_dom( $dom );
1918
 
1919
  // halt if loading produces an error
1920
  if ( ! $xml )
1921
+ return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wpvivid' ), libxml_get_errors() );
1922
 
1923
  $wxr_version = $xml->xpath('/rss/channel/wp:wxr_version');
1924
  if ( ! $wxr_version )
1925
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpvivid' ) );
1926
 
1927
  $wxr_version = (string) trim( $wxr_version[0] );
1928
  // confirm that we are dealing with the correct file format
1929
  if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) )
1930
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpvivid' ) );
1931
 
1932
  $base_url = $xml->xpath('/rss/channel/wp:base_site_url');
1933
  $base_url = (string) trim( $base_url[0] );
2152
  xml_parser_free( $xml );
2153
 
2154
  if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) )
2155
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpvivid' ) );
2156
 
2157
  return array(
2158
  'authors' => $this->authors,
2348
  }
2349
 
2350
  if ( ! $wxr_version )
2351
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpvivid' ) );
2352
 
2353
  return array(
2354
  'authors' => $this->authors,
includes/class-wpvivid-mail-report.php CHANGED
@@ -528,7 +528,7 @@ class WPvivid_mail_report
528
  {
529
  if(!$archive->add($files,PCLZIP_OPT_REMOVE_ALL_PATH))
530
  {
531
- echo __($archive->errorInfo(true).' <a href="'.admin_url().'admin.php?page=WPvivid">retry</a>.');
532
  exit;
533
  }
534
  }
@@ -545,7 +545,7 @@ class WPvivid_mail_report
545
  file_put_contents($server_file_path,$server_info);
546
  if(!$archive->add($server_file_path,PCLZIP_OPT_REMOVE_ALL_PATH))
547
  {
548
- echo __($archive->errorInfo(true).' <a href="'.admin_url().'admin.php?page=WPvivid">retry</a>.');
549
  exit;
550
  }
551
  @unlink( $server_file_path);
528
  {
529
  if(!$archive->add($files,PCLZIP_OPT_REMOVE_ALL_PATH))
530
  {
531
+ echo $archive->errorInfo(true).' <a href="'.admin_url().'admin.php?page=WPvivid">retry</a>.';
532
  exit;
533
  }
534
  }
545
  file_put_contents($server_file_path,$server_info);
546
  if(!$archive->add($server_file_path,PCLZIP_OPT_REMOVE_ALL_PATH))
547
  {
548
+ echo $archive->errorInfo(true).' <a href="'.admin_url().'admin.php?page=WPvivid">retry</a>.';
549
  exit;
550
  }
551
  @unlink( $server_file_path);
includes/class-wpvivid-migrate.php CHANGED
@@ -387,7 +387,7 @@ class WPvivid_Migrate
387
  <div id="key-page" class="wrap-tab-content wpvivid_tab_key" name="tab-key" style="display: none;">
388
  <div style="padding: 0 0 0 10px">
389
  <div style="padding: 0 0 10px 0">
390
- <span>In order to allow another site to send a backup to this site, please generate a key below. Once the key is generated, this site is ready to receive a backup from another site. Then, please copy and paste the key in sending site and save it.</span>
391
  </div>
392
  <strong><?php _e('The key will expire in ', 'wpvivid'); ?></strong>
393
  <select id="wpvivid_generate_url_expires" style="margin-bottom: 2px;">
@@ -396,7 +396,7 @@ class WPvivid_Migrate
396
  <option value="24 hour">24 hours</option>
397
  <!--<option value="Never">Never</option>-->
398
  </select>
399
- <p>Tips: For security reason, please choose an appropriate expiration time for the key.</p>
400
  <div>
401
  <input class="button-primary" id="wpvivid_generate_url" type="submit" value="<?php esc_attr_e( 'Generate', 'wpvivid' ); ?>" onclick="wpvivid_click_generate_url();" />
402
  </div>
@@ -847,7 +847,7 @@ class WPvivid_Migrate
847
  $html='<div id="wpvivid_transfer_key">';
848
  $options=WPvivid_Setting::get_option('wpvivid_saved_api_token');
849
  if(empty($options)){
850
- $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>
851
  <div id="wpvivid_how_to_get_key"></div>
852
  <div class="wpvivid-element-space-bottom"><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
853
  <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
@@ -966,9 +966,9 @@ class WPvivid_Migrate
966
  if(!wpvivid_display_get_key) {
967
  wpvivid_display_get_key = true;
968
  var div = "<div class=\'notice notice-info is-dismissible inline\'>" +
969
- "<p>1. Visit Key tab page of WPvivid backup plugin of destination site.</p>" +
970
- "<p>2. Generate a key by clicking Generate button and copy it.</p>" +
971
- "<p>3. Go back to this page and paste the key in key box below. Lastly, click Save button.</p>" +
972
  "<button type=\'button\' class=\'notice-dismiss\' onclick=\'click_dismiss_key_notice(this);\'>" +
973
  "<span class=\'screen-reader-text\'>Dismiss this notice.</span>" +
974
  "</button>" +
@@ -1087,21 +1087,21 @@ class WPvivid_Migrate
1087
  }
1088
 
1089
  public function wpvivid_migrate_part_note($html){
1090
- $html .= ' <p>Note: </p>
1091
- <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>
1092
- <p>2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment.</p>';
1093
  return $html;
1094
  }
1095
 
1096
  public function wpvivid_migrate_part_tip($html){
1097
  $backupdir=WPvivid_Setting::get_backupdir();
1098
- $html .= '<p><strong>Tips: </strong>The unstable connection between sites could cause a failure of files transfer. In this case, uploading backups to destination site is a good alternative to the automatic website migration.</p>
1099
- <p><strong>How to migrate Wordpress site manually to a new domain(site) with WPvivid backup plugin?</strong></p>
1100
- <p>1. Download a backup in backups list to your computer.</p>
1101
- <p>2. Upload the backup to destination site. There are two ways available to use:</p>
1102
- <p style="margin-left: 20px;">2.1 Upload the backup to the upload section of WPvivid backup plugin in destination site.</p>
1103
- <p style="margin-left: 20px;">2.2 Upload the backup with FTP client to backup directory '.WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir.' in destination site, then click <strong>Scan uploaded backup or received backup</strong> button.</p>
1104
- <p>3. Once done, the backup appears in backups list. Then, restore the backup.</p>';
1105
  return $html;
1106
  }
1107
 
@@ -1121,10 +1121,10 @@ class WPvivid_Migrate
1121
  <label>
1122
  <div style="float: left;">
1123
  <input type="radio" disabled />
1124
- <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Choose what to migrate').'</span>
1125
  </div>
1126
  <span class="wpvivid-feature-pro">
1127
- <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>
1128
  </span>
1129
  </label><br>';
1130
  return $html;
@@ -1182,12 +1182,12 @@ class WPvivid_Migrate
1182
 
1183
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_transfer_success_count');
1184
  if(!empty($backup_success_count)){
1185
- $notice_msg = 'Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup.';
1186
- $success_notice_html=__('<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
1187
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
1188
  <span class="screen-reader-text">Dismiss this notice.</span>
1189
  </button>
1190
- </div>');
1191
  WPvivid_Setting::delete_option('wpvivid_transfer_success_count');
1192
  }
1193
  else {
@@ -1201,7 +1201,7 @@ class WPvivid_Migrate
1201
  foreach ($backup_error_array as $key => $value){
1202
  $notice_msg = 'Transfer failed, '.$value['error_msg'];
1203
  $error_notice_html['bu_error']['task_id']=$value['task_id'];
1204
- $error_notice_html['bu_error']['error_msg']=__('<div class="notice notice-error inline"><p>'.$notice_msg.'</p></div>');
1205
  }
1206
  WPvivid_Setting::delete_option('wpvivid_transfer_error_array');
1207
  }
@@ -1255,7 +1255,7 @@ class WPvivid_Migrate
1255
  <span><?php echo sprintf(__('The backups will be uploaded to %s directory.', 'wpvivid'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1256
  </div>
1257
  <div style="padding-bottom: 10px;">
1258
- <span><?php echo apply_filters('wpvivid_tran_test', __('Note: The files you want to upload must be a backup created by WPvivid backup plugin. Make sure that uploading every part of a backup to the directory if the backup is split into many parts', 'wpvivid')); ?></span>
1259
  </div>
1260
  <?php
1261
  Wpvivid_BackupUploader::upload_meta_box();
387
  <div id="key-page" class="wrap-tab-content wpvivid_tab_key" name="tab-key" style="display: none;">
388
  <div style="padding: 0 0 0 10px">
389
  <div style="padding: 0 0 10px 0">
390
+ <span><?php _e('In order to allow another site to send a backup to this site, please generate a key below. Once the key is generated, this site is ready to receive a backup from another site. Then, please copy and paste the key in sending site and save it.', 'wpvivid'); ?></span>
391
  </div>
392
  <strong><?php _e('The key will expire in ', 'wpvivid'); ?></strong>
393
  <select id="wpvivid_generate_url_expires" style="margin-bottom: 2px;">
396
  <option value="24 hour">24 hours</option>
397
  <!--<option value="Never">Never</option>-->
398
  </select>
399
+ <p><?php _e('Tips: For security reason, please choose an appropriate expiration time for the key.', 'wpvivid'); ?></p>
400
  <div>
401
  <input class="button-primary" id="wpvivid_generate_url" type="submit" value="<?php esc_attr_e( 'Generate', 'wpvivid' ); ?>" onclick="wpvivid_click_generate_url();" />
402
  </div>
847
  $html='<div id="wpvivid_transfer_key">';
848
  $options=WPvivid_Setting::get_option('wpvivid_saved_api_token');
849
  if(empty($options)){
850
+ $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?', 'wpvivid').'</a></div>
851
  <div id="wpvivid_how_to_get_key"></div>
852
  <div class="wpvivid-element-space-bottom"><textarea type="text" id="wpvivid_transfer_key_text" onKeyUp="wpvivid_check_key(this.value)" style="width: 100%; height: 140px;"/></textarea></div>
853
  <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
966
  if(!wpvivid_display_get_key) {
967
  wpvivid_display_get_key = true;
968
  var div = "<div class=\'notice notice-info is-dismissible inline\'>" +
969
+ "<p>'.__('1. Visit Key tab page of WPvivid backup plugin of destination site.', 'wpvivid').'</p>" +
970
+ "<p>'.__('2. Generate a key by clicking Generate button and copy it.', 'wpvivid').'</p>" +
971
+ "<p>'.__('3. Go back to this page and paste the key in key box below. Lastly, click Save button.', 'wpvivid').'</p>" +
972
  "<button type=\'button\' class=\'notice-dismiss\' onclick=\'click_dismiss_key_notice(this);\'>" +
973
  "<span class=\'screen-reader-text\'>Dismiss this notice.</span>" +
974
  "</button>" +
1087
  }
1088
 
1089
  public function wpvivid_migrate_part_note($html){
1090
+ $html .= '<p>'.__('Note: ', 'wpvivid').'</p>
1091
+ <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.', 'wpvivid').'</p>
1092
+ <p>'.__('2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment.', 'wpvivid').'</p>';
1093
  return $html;
1094
  }
1095
 
1096
  public function wpvivid_migrate_part_tip($html){
1097
  $backupdir=WPvivid_Setting::get_backupdir();
1098
+ $html .= '<p>'.__('<strong>Tips: </strong>The unstable connection between sites could cause a failure of files transfer. In this case, uploading backups to destination site is a good alternative to the automatic website migration.', 'wpvivid').'</p>
1099
+ <p><strong>'.__('How to migrate Wordpress site manually to a new domain(site) with WPvivid backup plugin?', 'wpvivid').'</strong></p>
1100
+ <p>'.__('1. Download a backup in backups list to your computer.', 'wpvivid').'</p>
1101
+ <p>'.__('2. Upload the backup to destination site. There are two ways available to use:', 'wpvivid').'</p>
1102
+ <p style="margin-left: 20px;">'.__('2.1 Upload the backup to the upload section of WPvivid backup plugin in destination site.', 'wpvivid').'</p>
1103
+ <p style="margin-left: 20px;">'.sprintf(__('2.2 Upload the backup with FTP client to backup directory %s in destination site, then click <strong>Scan uploaded backup or received backup</strong> button.', 'wpvivid'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir).'</p>
1104
+ <p>'.__('3. Once done, the backup appears in backups list. Then, restore the backup.', 'wpvivid').'</p>';
1105
  return $html;
1106
  }
1107
 
1121
  <label>
1122
  <div style="float: left;">
1123
  <input type="radio" disabled />
1124
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Choose what to migrate', 'wpvivid').'</span>
1125
  </div>
1126
  <span class="wpvivid-feature-pro">
1127
+ <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', 'wpvivid').'</a>
1128
  </span>
1129
  </label><br>';
1130
  return $html;
1182
 
1183
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_transfer_success_count');
1184
  if(!empty($backup_success_count)){
1185
+ $notice_msg = __('Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup.', 'wpvivid');
1186
+ $success_notice_html='<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
1187
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
1188
  <span class="screen-reader-text">Dismiss this notice.</span>
1189
  </button>
1190
+ </div>';
1191
  WPvivid_Setting::delete_option('wpvivid_transfer_success_count');
1192
  }
1193
  else {
1201
  foreach ($backup_error_array as $key => $value){
1202
  $notice_msg = 'Transfer failed, '.$value['error_msg'];
1203
  $error_notice_html['bu_error']['task_id']=$value['task_id'];
1204
+ $error_notice_html['bu_error']['error_msg']='<div class="notice notice-error inline"><p>'.$notice_msg.'</p></div>';
1205
  }
1206
  WPvivid_Setting::delete_option('wpvivid_transfer_error_array');
1207
  }
1255
  <span><?php echo sprintf(__('The backups will be uploaded to %s directory.', 'wpvivid'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1256
  </div>
1257
  <div style="padding-bottom: 10px;">
1258
+ <span><?php echo __('Note: The files you want to upload must be a backup created by WPvivid backup plugin. Make sure that uploading every part of a backup to the directory if the backup is split into many parts', 'wpvivid'); ?></span>
1259
  </div>
1260
  <?php
1261
  Wpvivid_BackupUploader::upload_meta_box();
includes/class-wpvivid-restore-database.php CHANGED
@@ -37,6 +37,8 @@ class WPvivid_RestoreDB
37
 
38
  private $db_method;
39
 
 
 
40
  public function restore($path,$sql_file,$options)
41
  {
42
  add_filter('wpvivid_restore_db_skip_replace_tables', array($this, 'skip_tables'),10,2);
@@ -138,6 +140,12 @@ class WPvivid_RestoreDB
138
  $this->default_charsets=array();
139
  $this->default_collates=array();
140
 
 
 
 
 
 
 
141
  if(isset($option['default_engine']))
142
  {
143
  $this->default_engines=$option['default_engine'];
@@ -758,6 +766,68 @@ class WPvivid_RestoreDB
758
  if($this->old_site_url==$this->new_site_url)
759
  return ;
760
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
761
  $skip_table=false;
762
  if(apply_filters('wpvivid_restore_db_skip_replace_tables',$skip_table,$table_name))
763
  {
37
 
38
  private $db_method;
39
 
40
+ private $is_mu;
41
+
42
  public function restore($path,$sql_file,$options)
43
  {
44
  add_filter('wpvivid_restore_db_skip_replace_tables', array($this, 'skip_tables'),10,2);
140
  $this->default_charsets=array();
141
  $this->default_collates=array();
142
 
143
+ $this->is_mu=false;
144
+ if(isset($option['is_mu']))
145
+ {
146
+ $this->is_mu=true;
147
+ }
148
+
149
  if(isset($option['default_engine']))
150
  {
151
  $this->default_engines=$option['default_engine'];
766
  if($this->old_site_url==$this->new_site_url)
767
  return ;
768
 
769
+ if($this->is_mu)
770
+ {
771
+ if(substr($table_name, strlen($this->new_prefix))=='blogs')
772
+ {
773
+ $wpvivid_plugin->restore_data->write_log('update mu blogs', 'notice');
774
+
775
+ if((preg_match('#^https?://([^/]+)#i', $this->new_home_url, $matches) || preg_match('#^https?://([^/]+)#i', $this->new_site_url, $matches)) && (preg_match('#^https?://([^/]+)#i', $this->old_home_url, $old_matches) || preg_match('#^https?://([^/]+)#i', $this->old_site_url, $old_matches)))
776
+ {
777
+ $new_string = strtolower($matches[1]);
778
+ $old_string = strtolower($old_matches[1]);
779
+ $new_path='';
780
+ $old_path='';
781
+
782
+ if(defined( 'PATH_CURRENT_SITE' ))
783
+ {
784
+ $new_path=PATH_CURRENT_SITE;
785
+ }
786
+
787
+ $query = 'SELECT * FROM `'.$table_name.'`';
788
+ $result=$this->db_method->query($query,ARRAY_A);
789
+ if($result && sizeof($result)>0)
790
+ {
791
+ $rows = $result;
792
+ foreach ($rows as $row)
793
+ {
794
+ $update=array();
795
+ $where=array();
796
+
797
+ if($row['site_id']==1)
798
+ {
799
+ $old_path=$row['path'];
800
+ }
801
+
802
+ $old_domain_data = $row['domain'];
803
+ $new_domain_data=str_replace($old_string,$new_string,$old_domain_data);
804
+
805
+ $temp_where='`blog_id` = "' . $row['blog_id'] . '"';
806
+ if (is_callable(array($wpdb, 'remove_placeholder_escape')))
807
+ $temp_where = $wpdb->remove_placeholder_escape($temp_where);
808
+ $where[] = $temp_where;
809
+ $update[] = '`domain` = "' . $new_domain_data . '"';
810
+
811
+ if(!empty($old_path)&&!empty($new_path))
812
+ {
813
+ $old_path_data= $row['path'];
814
+ $new_path_data=str_replace($old_path,$new_path,$old_path_data);
815
+ $update[] = '`path` = "' . $new_path_data . '"';
816
+ }
817
+
818
+ if(!empty($update)&&!empty($where))
819
+ {
820
+ $update_query = 'UPDATE `'.$table_name.'` SET '.implode(', ', $update).' WHERE '.implode(' AND ', array_filter($where)).';';
821
+ $wpvivid_plugin->restore_data->write_log($update_query, 'notice');
822
+ $this->execute_sql($update_query);
823
+ }
824
+ }
825
+ }
826
+ }
827
+ }
828
+ }
829
+
830
+
831
  $skip_table=false;
832
  if(apply_filters('wpvivid_restore_db_skip_replace_tables',$skip_table,$table_name))
833
  {
includes/class-wpvivid-restore-site.php CHANGED
@@ -98,6 +98,10 @@ class WPvivid_RestoreSite
98
 
99
  $wpvivid_plugin->restore_data->write_log('restore from files:' . json_encode($all_files), 'notice');
100
 
 
 
 
 
101
  $ret = $zip->extract($all_files, $root_path);
102
 
103
  if (isset($option['file_type'])) {
@@ -125,16 +129,22 @@ class WPvivid_RestoreSite
125
 
126
  unset($zip);
127
 
 
 
 
 
128
  if (isset($option['wp_core']) && isset($option['is_migrate']))
129
  {
130
- if ($option['is_migrate'] == 1) {
 
131
  if (function_exists('save_mod_rewrite_rules'))
132
  {
133
  if (file_exists(get_home_path() . '.htaccess'))
134
  {
135
  $htaccess_data = file_get_contents(get_home_path() . '.htaccess');
136
  $line = '';
137
- if (preg_match('#AddHandler application/x-httpd-php.*#', $htaccess_data, $matcher)) {
 
138
  $line = PHP_EOL . $matcher[0];
139
 
140
  if (preg_match('#<IfModule mod_suphp.c>#', $htaccess_data, $matcher)) {
@@ -146,6 +156,18 @@ class WPvivid_RestoreSite
146
  }
147
  $wpvivid_plugin->restore_data->write_log('find php selector:' . $line, 'notice');
148
  }
 
 
 
 
 
 
 
 
 
 
 
 
149
  @rename(get_home_path() . '.htaccess', get_home_path() . '.htaccess_old');
150
  save_mod_rewrite_rules();
151
  if (!empty($line))
98
 
99
  $wpvivid_plugin->restore_data->write_log('restore from files:' . json_encode($all_files), 'notice');
100
 
101
+ if (isset($option['wp_core']) && isset($option['is_migrate'])&&is_multisite())
102
+ {
103
+ @rename(get_home_path() . '.htaccess', get_home_path() . '.htaccess_old');
104
+ }
105
  $ret = $zip->extract($all_files, $root_path);
106
 
107
  if (isset($option['file_type'])) {
129
 
130
  unset($zip);
131
 
132
+ if (isset($option['wp_core']) && isset($option['is_migrate'])&&is_multisite())
133
+ {
134
+ @rename(get_home_path() . '.htaccess_old', get_home_path() . '.htaccess');
135
+ }
136
  if (isset($option['wp_core']) && isset($option['is_migrate']))
137
  {
138
+ if ($option['is_migrate'] == 1&&!is_multisite())
139
+ {
140
  if (function_exists('save_mod_rewrite_rules'))
141
  {
142
  if (file_exists(get_home_path() . '.htaccess'))
143
  {
144
  $htaccess_data = file_get_contents(get_home_path() . '.htaccess');
145
  $line = '';
146
+ if (preg_match('#AddHandler application/x-httpd-php.*#', $htaccess_data, $matcher))
147
+ {
148
  $line = PHP_EOL . $matcher[0];
149
 
150
  if (preg_match('#<IfModule mod_suphp.c>#', $htaccess_data, $matcher)) {
156
  }
157
  $wpvivid_plugin->restore_data->write_log('find php selector:' . $line, 'notice');
158
  }
159
+ else if (preg_match('#AddHandler application/x-httpd-ea-php.*#', $htaccess_data, $matcher))
160
+ {
161
+ $line_temp = PHP_EOL . $matcher[0];
162
+
163
+ if (preg_match('#<IfModule mime_module>#', $htaccess_data, $matcher))
164
+ {
165
+ $line .= PHP_EOL . '<IfModule mime_module>';
166
+ $line .= $line_temp.PHP_EOL;
167
+ $line .= PHP_EOL . '</IfModule>';
168
+ }
169
+ $wpvivid_plugin->restore_data->write_log('find php selector:' . $line, 'notice');
170
+ }
171
  @rename(get_home_path() . '.htaccess', get_home_path() . '.htaccess_old');
172
  save_mod_rewrite_rules();
173
  if (!empty($line))
includes/class-wpvivid-setting.php CHANGED
@@ -121,7 +121,7 @@ class WPvivid_Setting
121
  $common_option['log_save_location']=WPVIVID_DEFAULT_LOG_DIR;
122
  $common_option['max_backup_count']=WPVIVID_DEFAULT_BACKUP_COUNT;
123
  $common_option['show_admin_bar']=WPVIVID_DEFAULT_ADMIN_BAR;
124
- $common_option['show_tab_menu']=WPVIVID_DEFAULT_TAB_MENU;
125
  $common_option['domain_include']=WPVIVID_DEFAULT_DOMAIN_INCLUDE;
126
  $common_option['estimate_backup']=WPVIVID_DEFAULT_ESTIMATE_BACKUP;
127
  $common_option['max_resume_count']=WPVIVID_RESUME_RETRY_TIMES;
121
  $common_option['log_save_location']=WPVIVID_DEFAULT_LOG_DIR;
122
  $common_option['max_backup_count']=WPVIVID_DEFAULT_BACKUP_COUNT;
123
  $common_option['show_admin_bar']=WPVIVID_DEFAULT_ADMIN_BAR;
124
+ //$common_option['show_tab_menu']=WPVIVID_DEFAULT_TAB_MENU;
125
  $common_option['domain_include']=WPVIVID_DEFAULT_DOMAIN_INCLUDE;
126
  $common_option['estimate_backup']=WPVIVID_DEFAULT_ESTIMATE_BACKUP;
127
  $common_option['max_resume_count']=WPVIVID_RESUME_RETRY_TIMES;
includes/class-wpvivid.php CHANGED
@@ -1324,21 +1324,21 @@ class WPvivid {
1324
  $notice_msg1 = 'Backup failed, it seems due to insufficient server resource or hitting server limit. Please navigate to Settings > Advanced > ';
1325
  $notice_msg2 = 'optimization mode for web hosting/shared hosting';
1326
  $notice_msg3 = ' to enable it and try again';
1327
- $backup_error_array['bu_error']['error_msg']=__('<div class="notice notice-error inline"><p>'.$notice_msg1.'<strong>'.$notice_msg2.'</strong>'.$notice_msg3.'</p></div>');
1328
  }
1329
  else{
1330
  $notice_msg = 'Backup error: '.$task['status']['error'].', task id: '.$task['id'];
1331
- $backup_error_array['bu_error']['error_msg']=__('<div class="notice notice-error inline"><p>'.$notice_msg.', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>');
1332
  }
1333
  }
1334
  else{
1335
  if($need_set_low_resource_mode) {
1336
  $notice_msg = 'Backup failed, it seems due to insufficient server resource or hitting server limit.';
1337
- $backup_error_array['bu_error']['error_msg'] = __('<div class="notice notice-error inline"><p>' . $notice_msg . ', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>');
1338
  }
1339
  else {
1340
  $notice_msg = 'Backup error: ' . $task['status']['error'] . ', task id: ' . $task['id'];
1341
- $backup_error_array['bu_error']['error_msg'] = __('<div class="notice notice-error inline"><p>' . $notice_msg . ', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>');
1342
  }
1343
  }
1344
  }
@@ -2376,7 +2376,7 @@ class WPvivid {
2376
  die();
2377
  }
2378
  $admin_url = admin_url();
2379
- echo __('file not found. please <a href="'.$admin_url.'admin.php?page=WPvivid">retry</a> again.');
2380
  die();
2381
  }
2382
  /**
@@ -2589,7 +2589,7 @@ class WPvivid {
2589
  $default = array();
2590
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
2591
  $ret['remote_array'] = $remote_array;
2592
- $success_msg = 'You have successfully added a remote storage.';
2593
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
2594
  }
2595
  else{
@@ -3264,6 +3264,7 @@ class WPvivid {
3264
  {
3265
  $ret['result'] =WPVIVID_FAILED;
3266
  $ret['error'] = $this->restore_data->get_restore_error();
 
3267
  $this->restore_data->delete_temp_files();
3268
  $this->_disable_maintenance_mode();
3269
  echo json_encode($ret);
@@ -3293,13 +3294,6 @@ class WPvivid {
3293
  $this->end_shutdown_function=true;
3294
  die();
3295
  }
3296
- catch (Error $error)
3297
- {
3298
- $message = 'An error has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
3299
- echo $message;
3300
- $this->end_shutdown_function=true;
3301
- die();
3302
- }
3303
 
3304
  try
3305
  {
@@ -3331,18 +3325,7 @@ class WPvivid {
3331
  $this->restore_data->delete_temp_files();
3332
  $this->restore_data->update_error($message);
3333
  $this->restore_data->write_log($message,'error');
3334
- $this->_disable_maintenance_mode();
3335
- echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3336
- $this->end_shutdown_function=true;
3337
- die();
3338
- }
3339
- catch (Error $error)
3340
- {
3341
- $message = 'An error has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
3342
- error_log($message);
3343
- $this->restore_data->delete_temp_files();
3344
- $this->restore_data->update_error($message);
3345
- $this->restore_data->write_log($message,'error');
3346
  $this->_disable_maintenance_mode();
3347
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3348
  $this->end_shutdown_function=true;
@@ -3424,6 +3407,8 @@ class WPvivid {
3424
  $this->restore_data->delete_temp_files();
3425
  $this->restore_data->update_error($message);
3426
  $this->restore_data->write_log($message,'error');
 
 
3427
  $this->_disable_maintenance_mode();
3428
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3429
  }
@@ -3432,6 +3417,7 @@ class WPvivid {
3432
  $this->restore_data->delete_temp_files();
3433
  $this->restore_data->update_error($message);
3434
  $this->restore_data->write_log($message,'error');
 
3435
  $this->_disable_maintenance_mode();
3436
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3437
  }
@@ -3577,15 +3563,15 @@ class WPvivid {
3577
  else{
3578
  if($message['status']['str'] == 'completed'){
3579
  $backup_status='Succeeded';
3580
- $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>';
3581
  }
3582
  elseif($message['status']['str'] == 'error'){
3583
  $backup_status='Failed';
3584
- $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>';
3585
  }
3586
  elseif($message['status']['str'] == 'cancel'){
3587
  $backup_status='Failed';
3588
- $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>';
3589
  }
3590
  else{
3591
  $last_message=__('The last backup message not found.', 'wpvivid');
@@ -3630,7 +3616,8 @@ class WPvivid {
3630
  die();
3631
  }
3632
 
3633
- public function _list_tasks($backup_id){
 
3634
  $tasks=WPvivid_Setting::get_tasks();
3635
  $ret=array();
3636
  $list_tasks=array();
@@ -3686,12 +3673,13 @@ class WPvivid {
3686
  $ret['backuplist_html'] = false;
3687
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_backup_success_count');
3688
  if(!empty($backup_success_count)){
3689
- $notice_msg = $backup_success_count.' backup tasks have been completed. Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_log\', true);">Log</a> page to check the details.';
3690
- $success_notice_html=__('<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
 
3691
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
3692
  <span class="screen-reader-text">Dismiss this notice.</span>
3693
  </button>
3694
- </div>');
3695
  //WPvivid_Setting::delete_option('wpvivid_backup_success_count');
3696
  $html = '';
3697
  $html = apply_filters('wpvivid_add_backup_list', $html);
@@ -4161,7 +4149,6 @@ class WPvivid {
4161
  }
4162
  }
4163
 
4164
-
4165
  public function get_setting()
4166
  {
4167
  $this->ajax_check_security('manage_options');
@@ -4378,7 +4365,7 @@ class WPvivid {
4378
  $setting_data['wpvivid_common_setting']['log_save_location'] = $setting['path'].'/wpvivid_log';
4379
  $setting_data['wpvivid_common_setting']['max_backup_count'] = $setting['max_backup_count'];
4380
  $setting_data['wpvivid_common_setting']['show_admin_bar'] = $setting['show_admin_bar'];
4381
- $setting_data['wpvivid_common_setting']['show_tab_menu'] = $setting['show_tab_menu'];
4382
  $setting_data['wpvivid_common_setting']['domain_include'] = $setting['domain_include'];
4383
  $setting_data['wpvivid_common_setting']['estimate_backup'] = $setting['estimate_backup'];
4384
  $setting_data['wpvivid_common_setting']['max_resume_count'] = $setting['max_resume_count'];
@@ -4388,6 +4375,7 @@ class WPvivid {
4388
  $setting_data['wpvivid_common_setting']['ismerge'] = $setting['ismerge'];
4389
  $setting_data['wpvivid_common_setting']['db_connect_method'] = $setting['db_connect_method'];
4390
  $setting_data['wpvivid_common_setting']['retain_local'] = $setting['retain_local'];
 
4391
  return $setting_data;
4392
  }
4393
 
@@ -4729,7 +4717,7 @@ class WPvivid {
4729
 
4730
  if (!empty($files)) {
4731
  if (!$archive->add($files, PCLZIP_OPT_REMOVE_ALL_PATH)) {
4732
- echo __($archive->errorInfo(true) . ' <a href="' . admin_url() . 'admin.php?page=WPvivid">retry</a>.');
4733
  exit;
4734
  }
4735
  }
@@ -4743,7 +4731,7 @@ class WPvivid {
4743
  fclose($server_file);
4744
  file_put_contents($server_file_path, $server_info);
4745
  if (!$archive->add($server_file_path, PCLZIP_OPT_REMOVE_ALL_PATH)) {
4746
- echo __($archive->errorInfo(true) . ' <a href="' . admin_url() . 'admin.php?page=WPvivid">retry</a>.');
4747
  exit;
4748
  }
4749
  @unlink($server_file_path);
@@ -4832,7 +4820,7 @@ class WPvivid {
4832
  <td>'.__($value['des'], 'wpvivid').'</td>
4833
  <td>'.__($value['file_name'], 'wpvivid').'</td>
4834
  <td>
4835
- <a onclick="wpvivid_read_log(\''.__('wpvivid_view_log').'\', \''.__($value['path']).'\')" style="cursor:pointer;">
4836
  <img src="'.esc_url(WPVIVID_PLUGIN_URL.$pic_log).'" style="vertical-align:middle;">Log
4837
  </a>
4838
  </td>
@@ -4846,7 +4834,8 @@ class WPvivid {
4846
  return $ret;
4847
  }
4848
 
4849
- public function get_log_list_ex(){
 
4850
  $ret['log_list']['file']=array();
4851
  $log=new WPvivid_Log();
4852
  $dir=$log->GetSaveLogFolder();
@@ -4874,6 +4863,33 @@ class WPvivid {
4874
  @closedir($handler);
4875
  }
4876
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4877
  foreach ($files as $file)
4878
  {
4879
  $handle = @fopen($file, "r");
@@ -5230,7 +5246,7 @@ class WPvivid {
5230
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
5231
  </span>
5232
  <span style="margin:0;">|</span> <span>' . __('Type:', 'wpvivid') . '</span><span>' . __($value['type'], 'wpvivid') . '</span>
5233
- <span style="margin:0;">|</span> <span title="Backup log"><a href="#" onclick="wpvivid_read_log(\'' . __('wpvivid_view_backup_log') . '\', \'' . __($key) . '\');"><img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Log.png') . '" style="vertical-align:middle;cursor:pointer;"/><span style="margin:0;">' . __('Log', 'wpvivid') . '</span></a></span>
5234
  </div>
5235
  </div>
5236
  </td>
@@ -5316,15 +5332,15 @@ class WPvivid {
5316
  public function wpvivid_add_remote_notice($notice_type, $message){
5317
  $html = '';
5318
  if($notice_type) {
5319
- $html .= __('<div class="notice notice-success is-dismissible inline"><p>'.$message.'</p>
5320
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
5321
  <span class="screen-reader-text">Dismiss this notice.</span>
5322
  </button>
5323
- </div>');
5324
 
5325
  }
5326
  else{
5327
- $html .= __('<div class="notice notice-error"><p>' . $message . '</p></div>');
5328
  }
5329
  return $html;
5330
  }
1324
  $notice_msg1 = 'Backup failed, it seems due to insufficient server resource or hitting server limit. Please navigate to Settings > Advanced > ';
1325
  $notice_msg2 = 'optimization mode for web hosting/shared hosting';
1326
  $notice_msg3 = ' to enable it and try again';
1327
+ $backup_error_array['bu_error']['error_msg']='<div class="notice notice-error inline"><p>'.$notice_msg1.'<strong>'.$notice_msg2.'</strong>'.$notice_msg3.'</p></div>';
1328
  }
1329
  else{
1330
  $notice_msg = 'Backup error: '.$task['status']['error'].', task id: '.$task['id'];
1331
+ $backup_error_array['bu_error']['error_msg']='<div class="notice notice-error inline"><p>'.$notice_msg.', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>';
1332
  }
1333
  }
1334
  else{
1335
  if($need_set_low_resource_mode) {
1336
  $notice_msg = 'Backup failed, it seems due to insufficient server resource or hitting server limit.';
1337
+ $backup_error_array['bu_error']['error_msg'] = '<div class="notice notice-error inline"><p>' . $notice_msg . ', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>';
1338
  }
1339
  else {
1340
  $notice_msg = 'Backup error: ' . $task['status']['error'] . ', task id: ' . $task['id'];
1341
+ $backup_error_array['bu_error']['error_msg'] = '<div class="notice notice-error inline"><p>' . $notice_msg . ', Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_debug\', true);">Website Info</a> page to send us the debug information. </p></div>';
1342
  }
1343
  }
1344
  }
2376
  die();
2377
  }
2378
  $admin_url = admin_url();
2379
+ echo '<a href="'.$admin_url.'admin.php?page=WPvivid">file not found. please retry again.</a>';
2380
  die();
2381
  }
2382
  /**
2589
  $default = array();
2590
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
2591
  $ret['remote_array'] = $remote_array;
2592
+ $success_msg = __('You have successfully added a remote storage.', 'wpvivid');
2593
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
2594
  }
2595
  else{
3264
  {
3265
  $ret['result'] =WPVIVID_FAILED;
3266
  $ret['error'] = $this->restore_data->get_restore_error();
3267
+ $this->restore_data->save_error_log_to_debug();
3268
  $this->restore_data->delete_temp_files();
3269
  $this->_disable_maintenance_mode();
3270
  echo json_encode($ret);
3294
  $this->end_shutdown_function=true;
3295
  die();
3296
  }
 
 
 
 
 
 
 
3297
 
3298
  try
3299
  {
3325
  $this->restore_data->delete_temp_files();
3326
  $this->restore_data->update_error($message);
3327
  $this->restore_data->write_log($message,'error');
3328
+ $this->restore_data->save_error_log_to_debug();
 
 
 
 
 
 
 
 
 
 
 
3329
  $this->_disable_maintenance_mode();
3330
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3331
  $this->end_shutdown_function=true;
3407
  $this->restore_data->delete_temp_files();
3408
  $this->restore_data->update_error($message);
3409
  $this->restore_data->write_log($message,'error');
3410
+ $this->restore_data->save_error_log_to_debug();
3411
+ //save_error_log_to_debug
3412
  $this->_disable_maintenance_mode();
3413
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3414
  }
3417
  $this->restore_data->delete_temp_files();
3418
  $this->restore_data->update_error($message);
3419
  $this->restore_data->write_log($message,'error');
3420
+ $this->restore_data->save_error_log_to_debug();
3421
  $this->_disable_maintenance_mode();
3422
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3423
  }
3563
  else{
3564
  if($message['status']['str'] == 'completed'){
3565
  $backup_status='Succeeded';
3566
+ $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>';
3567
  }
3568
  elseif($message['status']['str'] == 'error'){
3569
  $backup_status='Failed';
3570
+ $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>';
3571
  }
3572
  elseif($message['status']['str'] == 'cancel'){
3573
  $backup_status='Failed';
3574
+ $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>';
3575
  }
3576
  else{
3577
  $last_message=__('The last backup message not found.', 'wpvivid');
3616
  die();
3617
  }
3618
 
3619
+ public function _list_tasks($backup_id)
3620
+ {
3621
  $tasks=WPvivid_Setting::get_tasks();
3622
  $ret=array();
3623
  $list_tasks=array();
3673
  $ret['backuplist_html'] = false;
3674
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_backup_success_count');
3675
  if(!empty($backup_success_count)){
3676
+ //$notice_msg = $backup_success_count.' backup tasks have been completed. Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_log\', true);">Log</a> page to check the details.';
3677
+ $notice_msg = sprintf(__('%d backup tasks have been completed. Please switch to <a href="#" onclick="wpvivid_click_switch_page(\'wrap\', \'wpvivid_tab_log\', true);">Log</a> page to check the details.', 'wpvivid'), $backup_success_count);
3678
+ $success_notice_html='<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
3679
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
3680
  <span class="screen-reader-text">Dismiss this notice.</span>
3681
  </button>
3682
+ </div>';
3683
  //WPvivid_Setting::delete_option('wpvivid_backup_success_count');
3684
  $html = '';
3685
  $html = apply_filters('wpvivid_add_backup_list', $html);
4149
  }
4150
  }
4151
 
 
4152
  public function get_setting()
4153
  {
4154
  $this->ajax_check_security('manage_options');
4365
  $setting_data['wpvivid_common_setting']['log_save_location'] = $setting['path'].'/wpvivid_log';
4366
  $setting_data['wpvivid_common_setting']['max_backup_count'] = $setting['max_backup_count'];
4367
  $setting_data['wpvivid_common_setting']['show_admin_bar'] = $setting['show_admin_bar'];
4368
+ //$setting_data['wpvivid_common_setting']['show_tab_menu'] = $setting['show_tab_menu'];
4369
  $setting_data['wpvivid_common_setting']['domain_include'] = $setting['domain_include'];
4370
  $setting_data['wpvivid_common_setting']['estimate_backup'] = $setting['estimate_backup'];
4371
  $setting_data['wpvivid_common_setting']['max_resume_count'] = $setting['max_resume_count'];
4375
  $setting_data['wpvivid_common_setting']['ismerge'] = $setting['ismerge'];
4376
  $setting_data['wpvivid_common_setting']['db_connect_method'] = $setting['db_connect_method'];
4377
  $setting_data['wpvivid_common_setting']['retain_local'] = $setting['retain_local'];
4378
+
4379
  return $setting_data;
4380
  }
4381
 
4717
 
4718
  if (!empty($files)) {
4719
  if (!$archive->add($files, PCLZIP_OPT_REMOVE_ALL_PATH)) {
4720
+ echo $archive->errorInfo(true) . ' <a href="' . admin_url() . 'admin.php?page=WPvivid">retry</a>.';
4721
  exit;
4722
  }
4723
  }
4731
  fclose($server_file);
4732
  file_put_contents($server_file_path, $server_info);
4733
  if (!$archive->add($server_file_path, PCLZIP_OPT_REMOVE_ALL_PATH)) {
4734
+ echo $archive->errorInfo(true) . ' <a href="' . admin_url() . 'admin.php?page=WPvivid">retry</a>.';
4735
  exit;
4736
  }
4737
  @unlink($server_file_path);
4820
  <td>'.__($value['des'], 'wpvivid').'</td>
4821
  <td>'.__($value['file_name'], 'wpvivid').'</td>
4822
  <td>
4823
+ <a onclick="wpvivid_read_log(\''.'wpvivid_view_log'.'\', \''.$value['path'].'\')" style="cursor:pointer;">
4824
  <img src="'.esc_url(WPVIVID_PLUGIN_URL.$pic_log).'" style="vertical-align:middle;">Log
4825
  </a>
4826
  </td>
4834
  return $ret;
4835
  }
4836
 
4837
+ public function get_log_list_ex()
4838
+ {
4839
  $ret['log_list']['file']=array();
4840
  $log=new WPvivid_Log();
4841
  $dir=$log->GetSaveLogFolder();
4863
  @closedir($handler);
4864
  }
4865
 
4866
+ $dir.='error'.DIRECTORY_SEPARATOR;
4867
+ if(file_exists($dir))
4868
+ {
4869
+ $handler=opendir($dir);
4870
+ if($handler!==false)
4871
+ {
4872
+ while(($filename=readdir($handler))!==false)
4873
+ {
4874
+ if($filename != "." && $filename != "..")
4875
+ {
4876
+ if(is_dir($dir.$filename))
4877
+ {
4878
+ continue;
4879
+ }else {
4880
+ if(preg_match($regex,$filename))
4881
+ {
4882
+ $files[$filename] = $dir.$filename;
4883
+ }
4884
+ }
4885
+ }
4886
+ }
4887
+ if($handler)
4888
+ @closedir($handler);
4889
+ }
4890
+ }
4891
+
4892
+
4893
  foreach ($files as $file)
4894
  {
4895
  $handle = @fopen($file, "r");
5246
  <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
5247
  </span>
5248
  <span style="margin:0;">|</span> <span>' . __('Type:', 'wpvivid') . '</span><span>' . __($value['type'], 'wpvivid') . '</span>
5249
+ <span style="margin:0;">|</span> <span title="Backup log"><a href="#" onclick="wpvivid_read_log(\'' . 'wpvivid_view_backup_log' . '\', \'' . __($key) . '\');"><img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Log.png') . '" style="vertical-align:middle;cursor:pointer;"/><span style="margin:0;">' . __('Log', 'wpvivid') . '</span></a></span>
5250
  </div>
5251
  </div>
5252
  </td>
5332
  public function wpvivid_add_remote_notice($notice_type, $message){
5333
  $html = '';
5334
  if($notice_type) {
5335
+ $html .= '<div class="notice notice-success is-dismissible inline"><p>'.$message.'</p>
5336
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
5337
  <span class="screen-reader-text">Dismiss this notice.</span>
5338
  </button>
5339
+ </div>';
5340
 
5341
  }
5342
  else{
5343
+ $html .= '<div class="notice notice-error"><p>' . $message . '</p></div>';
5344
  }
5345
  return $html;
5346
  }
includes/customclass/class-wpvivid-amazons3-plus.php CHANGED
@@ -59,7 +59,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
59
  ?>
60
  <div id="storage_account_amazons3" class="storage-account-page" style="display:none;">
61
  <div style="padding: 0 10px 10px 0;">
62
- <strong>Enter Your Amazon S3 Account</strong>
63
  </div>
64
  <table class="wp-list-table widefat plugins" style="width:100%;">
65
  <tbody>
@@ -67,60 +67,60 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
67
  <tr>
68
  <td class="plugin-title column-primary">
69
  <div class="wpvivid-storage-form">
70
- <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="name" placeholder="Enter a unique alias: e.g. Amazon S3-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
71
  </div>
72
  </td>
73
  <td class="column-description desc">
74
  <div class="wpvivid-storage-form-desc">
75
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
76
  </div>
77
  </td>
78
  </tr>
79
  <tr>
80
  <td class="plugin-title column-primary">
81
  <div class="wpvivid-storage-form">
82
- <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="access" placeholder="Amazon S3 access key" />
83
  </div>
84
  </td>
85
  <td class="column-description desc">
86
  <div class="wpvivid-storage-form-desc">
87
- <i>Enter your Amazon S3 access key.</i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> How to get an AmazonS3 access key.</a>
88
  </div>
89
  </td>
90
  </tr>
91
  <tr>
92
  <td class="plugin-title column-primary">
93
  <div class="wpvivid-storage-form">
94
- <input type="password" class="regular-text" autocomplete="new-password" option="amazons3" name="secret" placeholder="Amazon S3 secret key" />
95
  </div>
96
  </td>
97
  <td class="column-description desc">
98
  <div class="wpvivid-storage-form-desc">
99
- <i>Enter your Amazon S3 secret key.</i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> How to get an AmazonS3 secret key.</a>
100
  </div>
101
  </td>
102
  </tr>
103
  <tr>
104
  <td class="plugin-title column-primary">
105
  <div class="wpvivid-storage-form">
106
- <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="bucket" placeholder="Amazon S3 Bucket Name(e.g. test)" />
107
  </div>
108
  </td>
109
  <td class="column-description desc">
110
  <div class="wpvivid-storage-form-desc">
111
- <i><span>Enter an existed Bucket to create a custom backup storage directory.</span></i>
112
  </div>
113
  </td>
114
  </tr>
115
  <tr>
116
  <td class="plugin-title column-primary">
117
  <div class="wpvivid-storage-form">
118
- <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="path" placeholder="Custom Path" />
119
  </div>
120
  </td>
121
  <td class="column-description desc">
122
  <div class="wpvivid-storage-form-desc">
123
- <i><span>Customize the directory where you want to store backups within the Bucket.</span></i>
124
  </div>
125
  </td>
126
  </tr>
@@ -128,13 +128,13 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
128
  <td class="plugin-title column-primary">
129
  <div class="wpvivid-storage-select">
130
  <label>
131
- <input type="checkbox" option="amazons3" name="default" checked />Set as the default remote storage.
132
  </label>
133
  </div>
134
  </td>
135
  <td class="column-description desc">
136
  <div class="wpvivid-storage-form-desc">
137
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
138
  </div>
139
  </td>
140
  </tr>
@@ -142,13 +142,13 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
142
  <td class="plugin-title column-primary">
143
  <div class="wpvivid-storage-select">
144
  <label>
145
- <input type="checkbox" option="amazons3" name="classMode" checked />Storage class: Standard (infrequent access).
146
  </label>
147
  </div>
148
  </td>
149
  <td class="column-description desc">
150
  <div class="wpvivid-storage-form-desc">
151
- <i>Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer.</i>
152
  </div>
153
  </td>
154
  </tr>
@@ -156,13 +156,13 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
156
  <td class="plugin-title column-primary">
157
  <div class="wpvivid-storage-select">
158
  <label>
159
- <input type="checkbox" option="amazons3" name="sse" checked />Server-side encryption.
160
  </label>
161
  </div>
162
  </td>
163
  <td class="column-description desc">
164
  <div class="wpvivid-storage-form-desc">
165
- <i>Check the option to use Amazon S3 server-side encryption to protect data.</i>
166
  </div>
167
  </td>
168
  </tr>
@@ -170,12 +170,12 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
170
  <tr>
171
  <td class="plugin-title column-primary">
172
  <div class="wpvivid-storage-form">
173
- <input class="button-primary" option="add-remote" type="submit" value="Test and Add" />
174
  </div>
175
  </td>
176
  <td class="column-description desc">
177
  <div class="wpvivid-storage-form-desc">
178
- <i>Click the button to connect to Amazon S3 storage and add it to the storage list below.</i>
179
  </div>
180
  </td>
181
  </tr>
@@ -184,7 +184,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
184
  <?php
185
  if($need_extension){
186
  ?>
187
- <p style="padding-left: 10px;">The simplexml extension is not detected. Please install the extension first.</p>
188
  <?php
189
  }
190
  ?>
@@ -197,7 +197,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
197
  ?>
198
  <div id="remote_storage_edit_amazons3" class="postbox storage-account-block remote-storage-edit" style="display:none;">
199
  <div style="padding: 0 10px 10px 0;">
200
- <strong>Enter Your Amazon S3 Account</strong>
201
  </div>
202
  <table class="wp-list-table widefat plugins" style="width:100%;">
203
  <tbody>
@@ -205,60 +205,60 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
205
  <tr>
206
  <td class="plugin-title column-primary">
207
  <div class="wpvivid-storage-form">
208
- <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="name" placeholder="Enter a unique alias: e.g. Amazon S3-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
209
  </div>
210
  </td>
211
  <td class="column-description desc">
212
  <div class="wpvivid-storage-form-desc">
213
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
214
  </div>
215
  </td>
216
  </tr>
217
  <tr>
218
  <td class="plugin-title column-primary">
219
  <div class="wpvivid-storage-form">
220
- <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="access" placeholder="Amazon S3 access key" />
221
  </div>
222
  </td>
223
  <td class="column-description desc">
224
  <div class="wpvivid-storage-form-desc">
225
- <i>Enter your Amazon S3 access key</i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> How to get an AmazonS3 access key.</a>
226
  </div>
227
  </td>
228
  </tr>
229
  <tr>
230
  <td class="plugin-title column-primary">
231
  <div class="wpvivid-storage-form">
232
- <input type="password" class="regular-text" autocomplete="new-password" option="edit-amazons3" name="secret" placeholder="Amazon S3 secret key" />
233
  </div>
234
  </td>
235
  <td class="column-description desc">
236
  <div class="wpvivid-storage-form-desc">
237
- <i>Enter your Amazon S3 secret key</i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> How to get an AmazonS3 secret key.</a>
238
  </div>
239
  </td>
240
  </tr>
241
  <tr>
242
  <td class="plugin-title column-primary">
243
  <div class="wpvivid-storage-form">
244
- <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="bucket" placeholder="Amazon S3 Bucket Name(e.g. test)" />
245
  </div>
246
  </td>
247
  <td class="column-description desc">
248
  <div class="wpvivid-storage-form-desc">
249
- <i><span>Enter an existed Bucket to create a custom backup storage directory.</span></i>
250
  </div>
251
  </td>
252
  </tr>
253
  <tr>
254
  <td class="plugin-title column-primary">
255
  <div class="wpvivid-storage-form">
256
- <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="path" placeholder="Custom Path" />
257
  </div>
258
  </td>
259
  <td class="column-description desc">
260
  <div class="wpvivid-storage-form-desc">
261
- <i><span>Customize the directory where you want to store backups within the Bucket.</span></i>
262
  </div>
263
  </td>
264
  </tr>
@@ -266,13 +266,13 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
266
  <td class="plugin-title column-primary">
267
  <div class="wpvivid-storage-select">
268
  <label>
269
- <input type="checkbox" option="edit-amazons3" name="classMode" />Storage class: Standard (infrequent access).
270
  </label>
271
  </div>
272
  </td>
273
  <td class="column-description desc">
274
  <div class="wpvivid-storage-form-desc">
275
- <i>Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer.</i>
276
  </div>
277
  </td>
278
  </tr>
@@ -280,13 +280,13 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
280
  <td class="plugin-title column-primary">
281
  <div class="wpvivid-storage-select">
282
  <label>
283
- <input type="checkbox" option="edit-amazons3" name="sse" />Server-side encryption.
284
  </label>
285
  </div>
286
  </td>
287
  <td class="column-description desc">
288
  <div class="wpvivid-storage-form-desc">
289
- <i>Check the option to use Amazon S3 server-side encryption to protect data.</i>
290
  </div>
291
  </td>
292
  </tr>
@@ -294,12 +294,12 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
294
  <tr>
295
  <td class="plugin-title column-primary">
296
  <div class="wpvivid-storage-form">
297
- <input class="button-primary" option="edit-remote" type="submit" value="Save Changes" />
298
  </div>
299
  </td>
300
  <td class="column-description desc">
301
  <div class="wpvivid-storage-form-desc">
302
- <i>Click the button to save the changes.</i>
303
  </div>
304
  </td>
305
  </tr>
59
  ?>
60
  <div id="storage_account_amazons3" class="storage-account-page" style="display:none;">
61
  <div style="padding: 0 10px 10px 0;">
62
+ <strong><?php _e('Enter Your Amazon S3 Account', 'wpvivid'); ?></strong>
63
  </div>
64
  <table class="wp-list-table widefat plugins" style="width:100%;">
65
  <tbody>
67
  <tr>
68
  <td class="plugin-title column-primary">
69
  <div class="wpvivid-storage-form">
70
+ <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Amazon S3-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
71
  </div>
72
  </td>
73
  <td class="column-description desc">
74
  <div class="wpvivid-storage-form-desc">
75
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
76
  </div>
77
  </td>
78
  </tr>
79
  <tr>
80
  <td class="plugin-title column-primary">
81
  <div class="wpvivid-storage-form">
82
+ <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="access" placeholder="<?php esc_attr_e('Amazon S3 access key', 'wpvivid'); ?>" />
83
  </div>
84
  </td>
85
  <td class="column-description desc">
86
  <div class="wpvivid-storage-form-desc">
87
+ <i><?php _e('Enter your Amazon S3 access key.', 'wpvivid'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 access key.', 'wpvivid'); ?></a>
88
  </div>
89
  </td>
90
  </tr>
91
  <tr>
92
  <td class="plugin-title column-primary">
93
  <div class="wpvivid-storage-form">
94
+ <input type="password" class="regular-text" autocomplete="new-password" option="amazons3" name="secret" placeholder="<?php esc_attr_e('Amazon S3 secret key', 'wpvivid'); ?>" />
95
  </div>
96
  </td>
97
  <td class="column-description desc">
98
  <div class="wpvivid-storage-form-desc">
99
+ <i><?php _e('Enter your Amazon S3 secret key.', 'wpvivid'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 secret key.', 'wpvivid'); ?></a>
100
  </div>
101
  </td>
102
  </tr>
103
  <tr>
104
  <td class="plugin-title column-primary">
105
  <div class="wpvivid-storage-form">
106
+ <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="bucket" placeholder="<?php esc_attr_e('Amazon S3 Bucket Name(e.g. test)', 'wpvivid'); ?>" />
107
  </div>
108
  </td>
109
  <td class="column-description desc">
110
  <div class="wpvivid-storage-form-desc">
111
+ <i><span><?php _e('Enter an existed Bucket to create a custom backup storage directory.', 'wpvivid'); ?></span></i>
112
  </div>
113
  </td>
114
  </tr>
115
  <tr>
116
  <td class="plugin-title column-primary">
117
  <div class="wpvivid-storage-form">
118
+ <input type="text" class="regular-text" autocomplete="off" option="amazons3" name="path" placeholder="<?php esc_attr_e('Custom Path', 'wpvivid'); ?>" />
119
  </div>
120
  </td>
121
  <td class="column-description desc">
122
  <div class="wpvivid-storage-form-desc">
123
+ <i><span><?php _e('Customize the directory where you want to store backups within the Bucket.', 'wpvivid'); ?></span></i>
124
  </div>
125
  </td>
126
  </tr>
128
  <td class="plugin-title column-primary">
129
  <div class="wpvivid-storage-select">
130
  <label>
131
+ <input type="checkbox" option="amazons3" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
132
  </label>
133
  </div>
134
  </td>
135
  <td class="column-description desc">
136
  <div class="wpvivid-storage-form-desc">
137
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
138
  </div>
139
  </td>
140
  </tr>
142
  <td class="plugin-title column-primary">
143
  <div class="wpvivid-storage-select">
144
  <label>
145
+ <input type="checkbox" option="amazons3" name="classMode" checked /><?php _e('Storage class: Standard (infrequent access).', 'wpvivid'); ?>
146
  </label>
147
  </div>
148
  </td>
149
  <td class="column-description desc">
150
  <div class="wpvivid-storage-form-desc">
151
+ <i><?php _e('Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer.', 'wpvivid'); ?></i>
152
  </div>
153
  </td>
154
  </tr>
156
  <td class="plugin-title column-primary">
157
  <div class="wpvivid-storage-select">
158
  <label>
159
+ <input type="checkbox" option="amazons3" name="sse" checked /><?php _e('Server-side encryption.', 'wpvivid'); ?>
160
  </label>
161
  </div>
162
  </td>
163
  <td class="column-description desc">
164
  <div class="wpvivid-storage-form-desc">
165
+ <i><?php _e('Check the option to use Amazon S3 server-side encryption to protect data.', 'wpvivid'); ?></i>
166
  </div>
167
  </td>
168
  </tr>
170
  <tr>
171
  <td class="plugin-title column-primary">
172
  <div class="wpvivid-storage-form">
173
+ <input class="button-primary" option="add-remote" type="submit" value="<?php esc_attr_e('Test and Add', 'wpvivid'); ?>" />
174
  </div>
175
  </td>
176
  <td class="column-description desc">
177
  <div class="wpvivid-storage-form-desc">
178
+ <i><?php _e('Click the button to connect to Amazon S3 storage and add it to the storage list below.', 'wpvivid'); ?></i>
179
  </div>
180
  </td>
181
  </tr>
184
  <?php
185
  if($need_extension){
186
  ?>
187
+ <p style="padding-left: 10px;"><?php _e('The simplexml extension is not detected. Please install the extension first.', 'wpvivid'); ?></p>
188
  <?php
189
  }
190
  ?>
197
  ?>
198
  <div id="remote_storage_edit_amazons3" class="postbox storage-account-block remote-storage-edit" style="display:none;">
199
  <div style="padding: 0 10px 10px 0;">
200
+ <strong><?php _e('Enter Your Amazon S3 Account', 'wpvivid'); ?></strong>
201
  </div>
202
  <table class="wp-list-table widefat plugins" style="width:100%;">
203
  <tbody>
205
  <tr>
206
  <td class="plugin-title column-primary">
207
  <div class="wpvivid-storage-form">
208
+ <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Amazon S3-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
209
  </div>
210
  </td>
211
  <td class="column-description desc">
212
  <div class="wpvivid-storage-form-desc">
213
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
214
  </div>
215
  </td>
216
  </tr>
217
  <tr>
218
  <td class="plugin-title column-primary">
219
  <div class="wpvivid-storage-form">
220
+ <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="access" placeholder="<?php esc_attr_e('Amazon S3 access key', 'wpvivid'); ?>" />
221
  </div>
222
  </td>
223
  <td class="column-description desc">
224
  <div class="wpvivid-storage-form-desc">
225
+ <i><?php _e('Enter your Amazon S3 access key.', 'wpvivid'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 access key.', 'wpvivid'); ?></a>
226
  </div>
227
  </td>
228
  </tr>
229
  <tr>
230
  <td class="plugin-title column-primary">
231
  <div class="wpvivid-storage-form">
232
+ <input type="password" class="regular-text" autocomplete="new-password" option="edit-amazons3" name="secret" placeholder="<?php esc_attr_e('Amazon S3 secret key', 'wpvivid'); ?>" />
233
  </div>
234
  </td>
235
  <td class="column-description desc">
236
  <div class="wpvivid-storage-form-desc">
237
+ <i><?php _e('Enter your Amazon S3 secret key.', 'wpvivid'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 secret key.', 'wpvivid'); ?></a>
238
  </div>
239
  </td>
240
  </tr>
241
  <tr>
242
  <td class="plugin-title column-primary">
243
  <div class="wpvivid-storage-form">
244
+ <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="bucket" placeholder="<?php esc_attr_e('Amazon S3 Bucket Name(e.g. test)', 'wpvivid'); ?>" />
245
  </div>
246
  </td>
247
  <td class="column-description desc">
248
  <div class="wpvivid-storage-form-desc">
249
+ <i><span><?php _e('Enter an existed Bucket to create a custom backup storage directory.', 'wpvivid'); ?></span></i>
250
  </div>
251
  </td>
252
  </tr>
253
  <tr>
254
  <td class="plugin-title column-primary">
255
  <div class="wpvivid-storage-form">
256
+ <input type="text" class="regular-text" autocomplete="off" option="edit-amazons3" name="path" placeholder="<?php esc_attr_e('Custom Path', 'wpvivid'); ?>" />
257
  </div>
258
  </td>
259
  <td class="column-description desc">
260
  <div class="wpvivid-storage-form-desc">
261
+ <i><span><?php _e('Customize the directory where you want to store backups within the Bucket.', 'wpvivid'); ?></span></i>
262
  </div>
263
  </td>
264
  </tr>
266
  <td class="plugin-title column-primary">
267
  <div class="wpvivid-storage-select">
268
  <label>
269
+ <input type="checkbox" option="edit-amazons3" name="classMode" /><?php _e('Storage class: Standard (infrequent access).', 'wpvivid'); ?>
270
  </label>
271
  </div>
272
  </td>
273
  <td class="column-description desc">
274
  <div class="wpvivid-storage-form-desc">
275
+ <i><?php _e('Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer.', 'wpvivid'); ?></i>
276
  </div>
277
  </td>
278
  </tr>
280
  <td class="plugin-title column-primary">
281
  <div class="wpvivid-storage-select">
282
  <label>
283
+ <input type="checkbox" option="edit-amazons3" name="sse" /><?php _e('Server-side encryption.', 'wpvivid'); ?>
284
  </label>
285
  </div>
286
  </td>
287
  <td class="column-description desc">
288
  <div class="wpvivid-storage-form-desc">
289
+ <i><?php _e('Check the option to use Amazon S3 server-side encryption to protect data.', 'wpvivid'); ?></i>
290
  </div>
291
  </td>
292
  </tr>
294
  <tr>
295
  <td class="plugin-title column-primary">
296
  <div class="wpvivid-storage-form">
297
+ <input class="button-primary" option="edit-remote" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>" />
298
  </div>
299
  </td>
300
  <td class="column-description desc">
301
  <div class="wpvivid-storage-form-desc">
302
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
303
  </div>
304
  </td>
305
  </tr>
includes/customclass/class-wpvivid-dropbox.php CHANGED
@@ -300,7 +300,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
300
  {
301
  try {
302
  if (!isset($_GET['name']) || empty($_GET['name'])) {
303
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
304
  return;
305
  }
306
 
@@ -309,7 +309,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
309
  $remoteslist = WPvivid_Setting::get_all_remote_options();
310
  foreach ($remoteslist as $key => $value) {
311
  if (isset($value['name']) && $value['name'] == $_GET['name']) {
312
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
313
  return;
314
  }
315
  }
@@ -318,7 +318,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
318
  header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
319
  }
320
  catch (Exception $e){
321
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
322
  }
323
  }
324
  else if($_GET['action'] === 'wpvivid_dropbox_finish_auth')
@@ -344,7 +344,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
344
  }
345
  }
346
  catch (Exception $e){
347
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
348
  }
349
  }
350
  else if($_GET['action']=='wpvivid_dropbox_drive')
@@ -359,14 +359,14 @@ class WPvivid_Dropbox extends WPvivid_Remote {
359
  }
360
  }
361
  catch (Exception $e){
362
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
363
  }
364
  }
365
  else if($_GET['action'] === 'wpvivid_dropbox_update_auth')
366
  {
367
  try {
368
  if (!isset($_GET['name']) || empty($_GET['name'])) {
369
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
370
  return;
371
  }
372
 
@@ -375,7 +375,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
375
  $remoteslist = WPvivid_Setting::get_all_remote_options();
376
  foreach ($remoteslist as $key => $value) {
377
  if (isset($value['name']) && $value['name'] == $_GET['name'] && $key != $_GET['id']) {
378
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
379
  return;
380
  }
381
  }
@@ -384,7 +384,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
384
  header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
385
  }
386
  catch (Exception $e){
387
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
388
  }
389
  }
390
  else if($_GET['action'] === 'wpvivid_dropbox_finish_update_auth')
@@ -409,7 +409,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
409
  }
410
  }
411
  catch (Exception $e){
412
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
413
  }
414
  }
415
  else if($_GET['action']=='wpvivid_dropbox_drive_update')
@@ -424,26 +424,26 @@ class WPvivid_Dropbox extends WPvivid_Remote {
424
  }
425
  }
426
  catch (Exception $e){
427
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
428
  }
429
  }
430
  }
431
  }
432
  public function wpvivid_show_notice_add_dropbox_success(){
433
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Dropbox account as your remote storage.</p></div>');
434
  }
435
  public function wpvivid_show_notice_add_dropbox_error(){
436
  global $wpvivid_plugin;
437
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add Dropbox Remote');
438
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
439
  }
440
  public function wpvivid_show_notice_edit_dropbox_success(){
441
- _e('<div class="notice notice-success is-dismissible"><p>You have successfully updated the storage alias.</p></div>');
442
  }
443
  public function wpvivid_show_notice_edit_dropbox_error(){
444
  global $wpvivid_plugin;
445
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update Dropbox Remote');
446
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
447
  }
448
 
449
  public function wpvivid_add_storage_tab_dropbox(){
@@ -458,23 +458,23 @@ class WPvivid_Dropbox extends WPvivid_Remote {
458
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_DROPBOX);
459
  ?>
460
  <div id="storage_account_dropbox" class="storage-account-page" style="display:none;">
461
- <div style="background-color:#f1f1f1; padding: 10px;">Please read
462
- <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).
463
  </div>
464
  <div style="padding: 10px 10px 10px 0;">
465
- <strong>Enter Your Dropbox Information</strong>
466
  </div>
467
  <table class="wp-list-table widefat plugins" style="width:100%;">
468
  <tbody>
469
  <tr>
470
  <td class="plugin-title column-primary">
471
  <div class="wpvivid-storage-form">
472
- <input type="text" class="regular-text" autocomplete="off" option="dropbox" name="name" placeholder="Enter a unique alias: e.g. Dropbox-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
473
  </div>
474
  </td>
475
  <td class="column-description desc">
476
  <div class="wpvivid-storage-form-desc">
477
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
478
  </div>
479
  </td>
480
  </tr>
@@ -486,7 +486,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
486
  </td>
487
  <td class="column-description desc">
488
  <div class="wpvivid-storage-form-desc">
489
- <i>All backups will be uploaded to this directory.</i>
490
  </div>
491
  </td>
492
  </tr>
@@ -498,7 +498,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
498
  </td>
499
  <td class="column-description desc">
500
  <div class="wpvivid-storage-form-desc">
501
- <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>
502
  </div>
503
  </td>
504
  </tr>
@@ -506,25 +506,25 @@ class WPvivid_Dropbox extends WPvivid_Remote {
506
  <td class="plugin-title column-primary">
507
  <div class="wpvivid-storage-select">
508
  <label>
509
- <input type="checkbox" option="dropbox" name="default" checked />Set as the default remote storage.
510
  </label>
511
  </div>
512
  </td>
513
  <td class="column-description desc">
514
  <div class="wpvivid-storage-form-desc">
515
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
516
  </div>
517
  </td>
518
  </tr>
519
  <tr>
520
  <td class="plugin-title column-primary">
521
  <div class="wpvivid-storage-form">
522
- <input onclick="wpvivid_dropbox_auth();" class="button-primary" type="submit" value="Authenticate with Dropbox">
523
  </div>
524
  </td>
525
  <td class="column-description desc">
526
  <div class="wpvivid-storage-form-desc">
527
- <i>Click the button to get Dropbox authentication and add it to the storage list below.</i>
528
  </div>
529
  </td>
530
  </tr>
@@ -569,10 +569,10 @@ class WPvivid_Dropbox extends WPvivid_Remote {
569
  }
570
  });
571
  if(name == ''){
572
- alert('Warning: An alias for remote storage is required.');
573
  }
574
  else if(wpvivid_check_dropbox_storage_alias(name) === -1){
575
- alert("Warning: The alias already exists in storage list.");
576
  }
577
  else{
578
  location.href ='<?php echo admin_url().'admin.php?page=WPvivid'.'&action=wpvivid_dropbox_auth&name='?>'+name+'<?php echo '&bdefault='?>'+bdefault;
@@ -587,44 +587,36 @@ class WPvivid_Dropbox extends WPvivid_Remote {
587
  ?>
588
  <div id="remote_storage_edit_dropbox" class="postbox storage-account-block remote-storage-edit" style="display:none;">
589
  <div style="padding: 0 10px 10px 0;">
590
- <strong>Enter Your Dropbox Information</strong>
591
  </div>
592
  <table class="wp-list-table widefat plugins" style="width:100%;">
593
  <tbody>
594
  <tr>
595
  <td class="plugin-title column-primary">
596
  <div class="wpvivid-storage-form">
597
- <input type="text" class="regular-text" autocomplete="off" option="edit-dropbox" name="name" placeholder="Enter a unique alias: e.g. Dropbox-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
598
  </div>
599
  </td>
600
  <td class="column-description desc">
601
  <div class="wpvivid-storage-form-desc">
602
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
603
  </div>
604
  </td>
605
  </tr>
606
  <tr>
607
  <td class="plugin-title column-primary">
608
  <div class="wpvivid-storage-form">
609
- <input onclick="wpvivid_dropbox_update_auth();" class="button-primary" type="submit" value="Save Changes">
610
  </div>
611
  </td>
612
  <td class="column-description desc">
613
  <div class="wpvivid-storage-form-desc">
614
- <i>Click the button to save the changes.</i>
615
  </div>
616
  </td>
617
  </tr>
618
  </tbody>
619
  </table>
620
-
621
- <!--<h2><span><?php _e( 'Enter an alias for Dropbox','wpvivid'); ?></span></h2>
622
- <div class="storage-account-form">
623
- <input type="text" option="edit-dropbox" name="name" placeholder="Enter an unique alias: e.g. Dropbox-001" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
624
- </div>
625
- <div class=""><input onclick="wpvivid_dropbox_update_auth()" class="button-primary storage-account-button" type="button" value="<?php _e( 'Save Changes', 'wpvivid' ); ?>" /></div>
626
- <div style="clear:both;"></div>
627
- <div style="padding-left: 10px;">Tips: Get Dropbox authentication to change the alias.</div>-->
628
  </div>
629
  <script>
630
  function wpvivid_dropbox_update_auth()
@@ -639,10 +631,10 @@ class WPvivid_Dropbox extends WPvivid_Remote {
639
  }
640
  });
641
  if(name == ''){
642
- alert('Warning: An alias for remote storage is required.');
643
  }
644
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
645
- alert("Warning: The alias already exists in storage list.");
646
  }
647
  else {
648
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_dropbox_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
300
  {
301
  try {
302
  if (!isset($_GET['name']) || empty($_GET['name'])) {
303
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
304
  return;
305
  }
306
 
309
  $remoteslist = WPvivid_Setting::get_all_remote_options();
310
  foreach ($remoteslist as $key => $value) {
311
  if (isset($value['name']) && $value['name'] == $_GET['name']) {
312
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
313
  return;
314
  }
315
  }
318
  header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
319
  }
320
  catch (Exception $e){
321
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
322
  }
323
  }
324
  else if($_GET['action'] === 'wpvivid_dropbox_finish_auth')
344
  }
345
  }
346
  catch (Exception $e){
347
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
348
  }
349
  }
350
  else if($_GET['action']=='wpvivid_dropbox_drive')
359
  }
360
  }
361
  catch (Exception $e){
362
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
363
  }
364
  }
365
  else if($_GET['action'] === 'wpvivid_dropbox_update_auth')
366
  {
367
  try {
368
  if (!isset($_GET['name']) || empty($_GET['name'])) {
369
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
370
  return;
371
  }
372
 
375
  $remoteslist = WPvivid_Setting::get_all_remote_options();
376
  foreach ($remoteslist as $key => $value) {
377
  if (isset($value['name']) && $value['name'] == $_GET['name'] && $key != $_GET['id']) {
378
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
379
  return;
380
  }
381
  }
384
  header('Location: ' . filter_var($url, FILTER_SANITIZE_URL));
385
  }
386
  catch (Exception $e){
387
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
388
  }
389
  }
390
  else if($_GET['action'] === 'wpvivid_dropbox_finish_update_auth')
409
  }
410
  }
411
  catch (Exception $e){
412
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
413
  }
414
  }
415
  else if($_GET['action']=='wpvivid_dropbox_drive_update')
424
  }
425
  }
426
  catch (Exception $e){
427
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
428
  }
429
  }
430
  }
431
  }
432
  public function wpvivid_show_notice_add_dropbox_success(){
433
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have authenticated the Dropbox account as your remote storage.', 'wpvivid').'</p></div>';
434
  }
435
  public function wpvivid_show_notice_add_dropbox_error(){
436
  global $wpvivid_plugin;
437
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add Dropbox Remote');
438
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
439
  }
440
  public function wpvivid_show_notice_edit_dropbox_success(){
441
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have successfully updated the storage alias.', 'wpvivid').'</p></div>';
442
  }
443
  public function wpvivid_show_notice_edit_dropbox_error(){
444
  global $wpvivid_plugin;
445
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update Dropbox Remote');
446
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
447
  }
448
 
449
  public function wpvivid_add_storage_tab_dropbox(){
458
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_DROPBOX);
459
  ?>
460
  <div id="storage_account_dropbox" class="storage-account-page" style="display:none;">
461
+ <div style="background-color:#f1f1f1; padding: 10px;">
462
+ <?php _e('Please read <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).', 'wpvivid'); ?>
463
  </div>
464
  <div style="padding: 10px 10px 10px 0;">
465
+ <strong><?php _e('Enter Your Dropbox Information', 'wpvivid'); ?></strong>
466
  </div>
467
  <table class="wp-list-table widefat plugins" style="width:100%;">
468
  <tbody>
469
  <tr>
470
  <td class="plugin-title column-primary">
471
  <div class="wpvivid-storage-form">
472
+ <input type="text" class="regular-text" autocomplete="off" option="dropbox" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Dropbox-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
473
  </div>
474
  </td>
475
  <td class="column-description desc">
476
  <div class="wpvivid-storage-form-desc">
477
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
478
  </div>
479
  </td>
480
  </tr>
486
  </td>
487
  <td class="column-description desc">
488
  <div class="wpvivid-storage-form-desc">
489
+ <i><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></i>
490
  </div>
491
  </td>
492
  </tr>
498
  </td>
499
  <td class="column-description desc">
500
  <div class="wpvivid-storage-form-desc">
501
+ <a href="https://wpvivid.com/wpvivid-backup-pro-dropbox-custom-folder-name?utm_source=client_dropbox&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: Create a directory for storing the backups of the site', 'wpvivid'); ?></a>
502
  </div>
503
  </td>
504
  </tr>
506
  <td class="plugin-title column-primary">
507
  <div class="wpvivid-storage-select">
508
  <label>
509
+ <input type="checkbox" option="dropbox" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
510
  </label>
511
  </div>
512
  </td>
513
  <td class="column-description desc">
514
  <div class="wpvivid-storage-form-desc">
515
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
516
  </div>
517
  </td>
518
  </tr>
519
  <tr>
520
  <td class="plugin-title column-primary">
521
  <div class="wpvivid-storage-form">
522
+ <input onclick="wpvivid_dropbox_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Authenticate with Dropbox', 'wpvivid'); ?>">
523
  </div>
524
  </td>
525
  <td class="column-description desc">
526
  <div class="wpvivid-storage-form-desc">
527
+ <i><?php _e('Click the button to get Dropbox authentication and add it to the storage list below.', 'wpvivid'); ?></i>
528
  </div>
529
  </td>
530
  </tr>
569
  }
570
  });
571
  if(name == ''){
572
+ alert(wpvividlion.remotealias);
573
  }
574
  else if(wpvivid_check_dropbox_storage_alias(name) === -1){
575
+ alert(wpvividlion.remoteexist);
576
  }
577
  else{
578
  location.href ='<?php echo admin_url().'admin.php?page=WPvivid'.'&action=wpvivid_dropbox_auth&name='?>'+name+'<?php echo '&bdefault='?>'+bdefault;
587
  ?>
588
  <div id="remote_storage_edit_dropbox" class="postbox storage-account-block remote-storage-edit" style="display:none;">
589
  <div style="padding: 0 10px 10px 0;">
590
+ <strong><?php _e('Enter Your Dropbox Information', 'wpvivid'); ?></strong>
591
  </div>
592
  <table class="wp-list-table widefat plugins" style="width:100%;">
593
  <tbody>
594
  <tr>
595
  <td class="plugin-title column-primary">
596
  <div class="wpvivid-storage-form">
597
+ <input type="text" class="regular-text" autocomplete="off" option="edit-dropbox" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Dropbox-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
598
  </div>
599
  </td>
600
  <td class="column-description desc">
601
  <div class="wpvivid-storage-form-desc">
602
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
603
  </div>
604
  </td>
605
  </tr>
606
  <tr>
607
  <td class="plugin-title column-primary">
608
  <div class="wpvivid-storage-form">
609
+ <input onclick="wpvivid_dropbox_update_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>">
610
  </div>
611
  </td>
612
  <td class="column-description desc">
613
  <div class="wpvivid-storage-form-desc">
614
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
615
  </div>
616
  </td>
617
  </tr>
618
  </tbody>
619
  </table>
 
 
 
 
 
 
 
 
620
  </div>
621
  <script>
622
  function wpvivid_dropbox_update_auth()
631
  }
632
  });
633
  if(name == ''){
634
+ alert(wpvividlion.remotealias);
635
  }
636
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
637
+ alert(wpvividlion.remoteexist);
638
  }
639
  else {
640
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_dropbox_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
includes/customclass/class-wpvivid-ftpclass.php CHANGED
@@ -42,31 +42,31 @@ class WPvivid_FTPClass extends WPvivid_Remote{
42
  {
43
  ?>
44
  <div id="storage_account_ftp" class="storage-account-page" style="display:none;">
45
- <div style="padding: 0 10px 10px 0;"><strong>Enter Your FTP Account</strong></div>
46
  <table class="wp-list-table widefat plugins" style="width:100%;">
47
  <tbody>
48
  <form>
49
  <tr>
50
  <td class="plugin-title column-primary">
51
  <div class="wpvivid-storage-form">
52
- <input type="text" autocomplete="off" option="ftp" name="name" placeholder="Enter an unique alias: e.g. FTP-001" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
53
  </div>
54
  </td>
55
  <td class="column-description desc">
56
  <div class="wpvivid-storage-form-desc">
57
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
58
  </div>
59
  </td>
60
  </tr>
61
  <tr>
62
  <td class="plugin-title column-primary">
63
  <div class="wpvivid-storage-form">
64
- <input type="text" autocomplete="off" option="ftp" name="server" placeholder="FTP server (server's port 21)" class="regular-text"/>
65
  </div>
66
  </td>
67
  <td class="column-description desc">
68
  <div class="wpvivid-storage-form-desc">
69
- <i style="margin-right: 10px;">Enter the FTP server.</i>
70
  </div>
71
  </td>
72
  </tr>
@@ -78,43 +78,43 @@ class WPvivid_FTPClass extends WPvivid_Remote{
78
  </td>
79
  <td class="column-description desc">
80
  <div class="wpvivid-storage-form-desc">
81
- <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>
82
  </div>
83
  </td>
84
  </tr>
85
  <tr>
86
  <td class="plugin-title column-primary">
87
  <div class="wpvivid-storage-form">
88
- <input type="text" class="regular-text" autocomplete="off" option="ftp" name="username" placeholder="FTP login" />
89
  </div>
90
  </td>
91
  <td class="column-description desc">
92
  <div class="wpvivid-storage-form-desc">
93
- <i>Enter your FTP server user name.</i>
94
  </div>
95
  </td>
96
  </tr>
97
  <tr>
98
  <td class="plugin-title column-primary">
99
  <div class="wpvivid-storage-form">
100
- <input type="password" class="regular-text" autocomplete="new-password" option="ftp" name="password" placeholder="FTP password" />
101
  </div>
102
  </td>
103
  <td class="column-description desc">
104
  <div class="wpvivid-storage-form-desc">
105
- <i>Enter the FTP server password.</i>
106
  </div>
107
  </td>
108
  </tr>
109
  <tr>
110
  <td class="plugin-title column-primary">
111
  <div class="wpvivid-storage-form">
112
- <input type="text" autocomplete="off" option="ftp" name="path" placeholder="Absolute path must exist(e.g. /home/username)" class="regular-text"/>
113
  </div>
114
  </td>
115
  <td class="column-description desc">
116
  <div class="wpvivid-storage-form-desc">
117
- <i>Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder</i>
118
  </div>
119
  </td>
120
  </tr>
@@ -122,13 +122,13 @@ class WPvivid_FTPClass extends WPvivid_Remote{
122
  <td class="plugin-title column-primary">
123
  <div class="wpvivid-storage-select">
124
  <label>
125
- <input type="checkbox" option="ftp" name="default" checked />Set as the default remote storage.
126
  </label>
127
  </div>
128
  </td>
129
  <td class="column-description desc">
130
  <div class="wpvivid-storage-form-desc">
131
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
132
  </div>
133
  </td>
134
  </tr>
@@ -136,13 +136,13 @@ class WPvivid_FTPClass extends WPvivid_Remote{
136
  <td class="plugin-title column-primary">
137
  <div class="wpvivid-storage-select">
138
  <label>
139
- <input type="checkbox" option="ftp" name="passive" checked />Uncheck this to enable FTP active mode.
140
  </label>
141
  </div>
142
  </td>
143
  <td class="column-description desc">
144
  <div class="wpvivid-storage-form-desc">
145
- <i>Uncheck the option to use FTP active mode when transferring files. Make sure the FTP server you are configuring supports the active FTP mode.</i>
146
  </div>
147
  </td>
148
  </tr>
@@ -150,12 +150,12 @@ class WPvivid_FTPClass extends WPvivid_Remote{
150
  <tr>
151
  <td class="plugin-title column-primary">
152
  <div class="wpvivid-storage-form">
153
- <input class="button-primary" type="submit" option="add-remote" value="Test and Add">
154
  </div>
155
  </td>
156
  <td class="column-description desc">
157
  <div class="wpvivid-storage-form-desc">
158
- <i>Click the button to connect to FTP server and add it to the storage list below.</i>
159
  </div>
160
  </td>
161
  </tr>
@@ -169,67 +169,67 @@ class WPvivid_FTPClass extends WPvivid_Remote{
169
  {
170
  ?>
171
  <div id="remote_storage_edit_ftp" class="postbox storage-account-block remote-storage-edit" style="display:none;">
172
- <div style="padding: 0 10px 10px 0;"><strong>Enter Your FTP Account</strong></div>
173
  <table class="wp-list-table widefat plugins" style="width:100%;">
174
  <tbody>
175
  <form>
176
  <tr>
177
  <td class="plugin-title column-primary">
178
  <div class="wpvivid-storage-form">
179
- <input type="text" autocomplete="off" option="edit-ftp" name="name" placeholder="Enter an unique alias: e.g. FTP-001" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
180
  </div>
181
  </td>
182
  <td class="column-description desc">
183
  <div class="wpvivid-storage-form-desc">
184
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
185
  </div>
186
  </td>
187
  </tr>
188
  <tr>
189
  <td class="plugin-title column-primary">
190
  <div class="wpvivid-storage-form">
191
- <input type="text" autocomplete="off" option="edit-ftp" name="server" placeholder="FTP server (server's port 21)" class="regular-text"/>
192
  </div>
193
  </td>
194
  <td class="column-description desc">
195
  <div class="wpvivid-storage-form-desc">
196
- <i style="margin-right: 10px;">Enter the FTP server.</i>
197
  </div>
198
  </td>
199
  </tr>
200
  <tr>
201
  <td class="plugin-title column-primary">
202
  <div class="wpvivid-storage-form">
203
- <input type="text" class="regular-text" autocomplete="off" option="edit-ftp" name="username" placeholder="FTP login" />
204
  </div>
205
  </td>
206
  <td class="column-description desc">
207
  <div class="wpvivid-storage-form-desc">
208
- <i>Enter your FTP server user name.</i>
209
  </div>
210
  </td>
211
  </tr>
212
  <tr>
213
  <td class="plugin-title column-primary">
214
  <div class="wpvivid-storage-form">
215
- <input type="password" class="regular-text" autocomplete="new-password" option="edit-ftp" name="password" placeholder="FTP password" />
216
  </div>
217
  </td>
218
  <td class="column-description desc">
219
  <div class="wpvivid-storage-form-desc">
220
- <i>Enter the FTP server password.</i>
221
  </div>
222
  </td>
223
  </tr>
224
  <tr>
225
  <td class="plugin-title column-primary">
226
  <div class="wpvivid-storage-form">
227
- <input type="text" autocomplete="off" option="edit-ftp" name="path" placeholder="Absolute path must exist(e.g. /home/username)" class="regular-text"/>
228
  </div>
229
  </td>
230
  <td class="column-description desc">
231
  <div class="wpvivid-storage-form-desc">
232
- <i>Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder</i>
233
  </div>
234
  </td>
235
  </tr>
@@ -237,13 +237,13 @@ class WPvivid_FTPClass extends WPvivid_Remote{
237
  <td class="plugin-title column-primary">
238
  <div class="wpvivid-storage-select">
239
  <label>
240
- <input type="checkbox" option="edit-ftp" name="passive" checked />Uncheck this to enable FTP active mode.
241
  </label>
242
  </div>
243
  </td>
244
  <td class="column-description desc">
245
  <div class="wpvivid-storage-form-desc">
246
- <i>Uncheck the option to use FTP active mode when transferring files. Make sure the FTP server you are configuring supports the active FTP mode.</i>
247
  </div>
248
  </td>
249
  </tr>
@@ -251,12 +251,12 @@ class WPvivid_FTPClass extends WPvivid_Remote{
251
  <tr>
252
  <td class="plugin-title column-primary">
253
  <div class="wpvivid-storage-form">
254
- <input class="button-primary" type="submit" option="edit-remote" value="Save Changes">
255
  </div>
256
  </td>
257
  <td class="column-description desc">
258
  <div class="wpvivid-storage-form-desc">
259
- <i>Click the button to save the changes.</i>
260
  </div>
261
  </td>
262
  </tr>
42
  {
43
  ?>
44
  <div id="storage_account_ftp" class="storage-account-page" style="display:none;">
45
+ <div style="padding: 0 10px 10px 0;"><strong><?php _e('Enter Your FTP Account', 'wpvivid'); ?></strong></div>
46
  <table class="wp-list-table widefat plugins" style="width:100%;">
47
  <tbody>
48
  <form>
49
  <tr>
50
  <td class="plugin-title column-primary">
51
  <div class="wpvivid-storage-form">
52
+ <input type="text" autocomplete="off" option="ftp" name="name" placeholder="<?php esc_attr_e('Enter an unique alias: e.g. FTP-001', 'wpvivid'); ?>" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
53
  </div>
54
  </td>
55
  <td class="column-description desc">
56
  <div class="wpvivid-storage-form-desc">
57
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
58
  </div>
59
  </td>
60
  </tr>
61
  <tr>
62
  <td class="plugin-title column-primary">
63
  <div class="wpvivid-storage-form">
64
+ <input type="text" autocomplete="off" option="ftp" name="server" placeholder="<?php esc_attr_e('FTP server (server\'s port 21)','wpvivid'); ?>" class="regular-text"/>
65
  </div>
66
  </td>
67
  <td class="column-description desc">
68
  <div class="wpvivid-storage-form-desc">
69
+ <i style="margin-right: 10px;"><?php _e('Enter the FTP server.', 'wpvivid'); ?></i>
70
  </div>
71
  </td>
72
  </tr>
78
  </td>
79
  <td class="column-description desc">
80
  <div class="wpvivid-storage-form-desc">
81
+ <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"><?php _e('Pro feature: Change the FTP default port number', 'wpvivid'); ?></a>
82
  </div>
83
  </td>
84
  </tr>
85
  <tr>
86
  <td class="plugin-title column-primary">
87
  <div class="wpvivid-storage-form">
88
+ <input type="text" class="regular-text" autocomplete="off" option="ftp" name="username" placeholder="<?php esc_attr_e('FTP login', 'wpvivid'); ?>" />
89
  </div>
90
  </td>
91
  <td class="column-description desc">
92
  <div class="wpvivid-storage-form-desc">
93
+ <i><?php _e('Enter your FTP server user name.', 'wpvivid'); ?></i>
94
  </div>
95
  </td>
96
  </tr>
97
  <tr>
98
  <td class="plugin-title column-primary">
99
  <div class="wpvivid-storage-form">
100
+ <input type="password" class="regular-text" autocomplete="new-password" option="ftp" name="password" placeholder="<?php esc_attr_e('FTP password', 'wpvivid'); ?>" />
101
  </div>
102
  </td>
103
  <td class="column-description desc">
104
  <div class="wpvivid-storage-form-desc">
105
+ <i><?php _e('Enter the FTP server password.', 'wpvivid'); ?></i>
106
  </div>
107
  </td>
108
  </tr>
109
  <tr>
110
  <td class="plugin-title column-primary">
111
  <div class="wpvivid-storage-form">
112
+ <input type="text" autocomplete="off" option="ftp" name="path" placeholder="<?php esc_attr_e('Absolute path must exist(e.g. /home/username)', 'wpvivid'); ?>" class="regular-text"/>
113
  </div>
114
  </td>
115
  <td class="column-description desc">
116
  <div class="wpvivid-storage-form-desc">
117
+ <i><?php _e('Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder', 'wpvivid'); ?></i>
118
  </div>
119
  </td>
120
  </tr>
122
  <td class="plugin-title column-primary">
123
  <div class="wpvivid-storage-select">
124
  <label>
125
+ <input type="checkbox" option="ftp" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
126
  </label>
127
  </div>
128
  </td>
129
  <td class="column-description desc">
130
  <div class="wpvivid-storage-form-desc">
131
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
132
  </div>
133
  </td>
134
  </tr>
136
  <td class="plugin-title column-primary">
137
  <div class="wpvivid-storage-select">
138
  <label>
139
+ <input type="checkbox" option="ftp" name="passive" checked /><?php _e('Uncheck this to enable FTP active mode.', 'wpvivid'); ?>
140
  </label>
141
  </div>
142
  </td>
143
  <td class="column-description desc">
144
  <div class="wpvivid-storage-form-desc">
145
+ <i><?php _e('Uncheck the option to use FTP active mode when transferring files. Make sure the FTP server you are configuring supports the active FTP mode.', 'wpvivid'); ?></i>
146
  </div>
147
  </td>
148
  </tr>
150
  <tr>
151
  <td class="plugin-title column-primary">
152
  <div class="wpvivid-storage-form">
153
+ <input class="button-primary" type="submit" option="add-remote" value="<?php esc_attr_e('Test and Add', 'wpvivid'); ?>">
154
  </div>
155
  </td>
156
  <td class="column-description desc">
157
  <div class="wpvivid-storage-form-desc">
158
+ <i><?php _e('Click the button to connect to FTP server and add it to the storage list below.', 'wpvivid'); ?></i>
159
  </div>
160
  </td>
161
  </tr>
169
  {
170
  ?>
171
  <div id="remote_storage_edit_ftp" class="postbox storage-account-block remote-storage-edit" style="display:none;">
172
+ <div style="padding: 0 10px 10px 0;"><strong><?php _e('Enter Your FTP Account', 'wpvivid'); ?></strong></div>
173
  <table class="wp-list-table widefat plugins" style="width:100%;">
174
  <tbody>
175
  <form>
176
  <tr>
177
  <td class="plugin-title column-primary">
178
  <div class="wpvivid-storage-form">
179
+ <input type="text" autocomplete="off" option="edit-ftp" name="name" placeholder="<?php esc_attr_e('Enter an unique alias: e.g. FTP-001', 'wpvivid'); ?>" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
180
  </div>
181
  </td>
182
  <td class="column-description desc">
183
  <div class="wpvivid-storage-form-desc">
184
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
185
  </div>
186
  </td>
187
  </tr>
188
  <tr>
189
  <td class="plugin-title column-primary">
190
  <div class="wpvivid-storage-form">
191
+ <input type="text" autocomplete="off" option="edit-ftp" name="server" placeholder="<?php esc_attr_e('FTP server (server\'s port 21)', 'wpvivid'); ?>" class="regular-text"/>
192
  </div>
193
  </td>
194
  <td class="column-description desc">
195
  <div class="wpvivid-storage-form-desc">
196
+ <i style="margin-right: 10px;"><?php _e('Enter the FTP server.', 'wpvivid'); ?></i>
197
  </div>
198
  </td>
199
  </tr>
200
  <tr>
201
  <td class="plugin-title column-primary">
202
  <div class="wpvivid-storage-form">
203
+ <input type="text" class="regular-text" autocomplete="off" option="edit-ftp" name="username" placeholder="<?php esc_attr_e('FTP login', 'wpvivid'); ?>" />
204
  </div>
205
  </td>
206
  <td class="column-description desc">
207
  <div class="wpvivid-storage-form-desc">
208
+ <i><?php _e('Enter your FTP server user name.', 'wpvivid'); ?></i>
209
  </div>
210
  </td>
211
  </tr>
212
  <tr>
213
  <td class="plugin-title column-primary">
214
  <div class="wpvivid-storage-form">
215
+ <input type="password" class="regular-text" autocomplete="new-password" option="edit-ftp" name="password" placeholder="<?php esc_attr_e('FTP password', 'wpvivid'); ?>" />
216
  </div>
217
  </td>
218
  <td class="column-description desc">
219
  <div class="wpvivid-storage-form-desc">
220
+ <i><?php _e('Enter the FTP server password.', 'wpvivid'); ?></i>
221
  </div>
222
  </td>
223
  </tr>
224
  <tr>
225
  <td class="plugin-title column-primary">
226
  <div class="wpvivid-storage-form">
227
+ <input type="text" autocomplete="off" option="edit-ftp" name="path" placeholder="<?php esc_attr_e('Absolute path must exist(e.g. /home/username)', 'wpvivid'); ?>" class="regular-text"/>
228
  </div>
229
  </td>
230
  <td class="column-description desc">
231
  <div class="wpvivid-storage-form-desc">
232
+ <i><?php _e('Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder', 'wpvivid'); ?></i>
233
  </div>
234
  </td>
235
  </tr>
237
  <td class="plugin-title column-primary">
238
  <div class="wpvivid-storage-select">
239
  <label>
240
+ <input type="checkbox" option="edit-ftp" name="passive" checked /><?php _e('Uncheck this to enable FTP active mode.', 'wpvivid'); ?>
241
  </label>
242
  </div>
243
  </td>
244
  <td class="column-description desc">
245
  <div class="wpvivid-storage-form-desc">
246
+ <i><?php _e('Uncheck the option to use FTP active mode when transferring files. Make sure the FTP server you are configuring supports the active FTP mode.', 'wpvivid'); ?></i>
247
  </div>
248
  </td>
249
  </tr>
251
  <tr>
252
  <td class="plugin-title column-primary">
253
  <div class="wpvivid-storage-form">
254
+ <input class="button-primary" type="submit" option="edit-remote" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>">
255
  </div>
256
  </td>
257
  <td class="column-description desc">
258
  <div class="wpvivid-storage-form-desc">
259
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
260
  </div>
261
  </td>
262
  </tr>
includes/customclass/class-wpvivid-google-drive.php CHANGED
@@ -75,7 +75,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
75
  {
76
  if(!isset($_GET['name'])||empty($_GET['name']))
77
  {
78
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
79
  return;
80
  }
81
 
@@ -86,13 +86,13 @@ class Wpvivid_Google_drive extends WPvivid_Remote
86
  {
87
  if(isset($value['name'])&&$value['name'] == $_GET['name'])
88
  {
89
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
90
  return;
91
  }
92
  }
93
  $res = $this -> compare_php_version();
94
  if($res['result'] == WPVIVID_FAILED){
95
- _e('<div class="notice notice-warning is-dismissible"><p>'.$res['error'].'</p></div>');
96
  return ;
97
  }
98
  try {
@@ -108,15 +108,15 @@ class Wpvivid_Google_drive extends WPvivid_Remote
108
  }
109
  catch (Exception $e){
110
  if($e->getMessage() === 'file does not exist'){
111
- $error_msg = 'Authentication failed, the client_secrets.json file is missing. Please make sure the client_secrets.json file is in wpvivid-backuprestore\includes\customclass directory.';
112
- _e('<div class="notice notice-error"><p>'.$error_msg.'</p></div>');
113
  }
114
  else if($e->getMessage() === 'invalid json for auth config'){
115
- $error_msg = 'Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file.';
116
- _e('<div class="notice notice-error"><p>'.$error_msg.'</p></div>');
117
  }
118
  else{
119
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
120
  }
121
  }
122
  }
@@ -153,7 +153,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
153
  }
154
  }
155
  catch (Exception $e){
156
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
157
  }
158
  }
159
  else if($_GET['action']=='wpvivid_google_drive')
@@ -168,14 +168,14 @@ class Wpvivid_Google_drive extends WPvivid_Remote
168
  }
169
  }
170
  catch (Exception $e){
171
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
172
  }
173
  }
174
  else if($_GET['action']=='wpvivid_google_drive_update_auth')
175
  {
176
  if(!isset($_GET['name'])||empty($_GET['name']))
177
  {
178
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
179
  return;
180
  }
181
 
@@ -186,7 +186,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
186
  {
187
  if(isset($value['name'])&&$value['name'] == $_GET['name']&&$key!=$_GET['id'])
188
  {
189
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
190
  return;
191
  }
192
  }
@@ -204,15 +204,15 @@ class Wpvivid_Google_drive extends WPvivid_Remote
204
  }
205
  catch (Exception $e){
206
  if($e->getMessage() === 'file does not exist'){
207
- $error_msg = 'Authentication failed, the client_secrets.json file is missing. Please make sure the client_secrets.json file is in wpvivid-backuprestore\includes\customclass directory.';
208
- _e('<div class="notice notice-error"><p>'.$error_msg.'</p></div>');
209
  }
210
  else if($e->getMessage() === 'invalid json for auth config'){
211
- $error_msg = 'Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file.';
212
- _e('<div class="notice notice-error"><p>'.$error_msg.'</p></div>');
213
  }
214
  else{
215
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
216
  }
217
  }
218
  }
@@ -248,7 +248,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
248
  }
249
  }
250
  catch (Exception $e){
251
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
252
  }
253
  }
254
  else if($_GET['action']=='wpvivid_google_drive_update')
@@ -263,26 +263,26 @@ class Wpvivid_Google_drive extends WPvivid_Remote
263
  }
264
  }
265
  catch (Exception $e){
266
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
267
  }
268
  }
269
  }
270
  }
271
  public function wpvivid_show_notice_add_google_drive_success(){
272
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Google Drive account as your remote storage.</p></div>');
273
  }
274
  public function wpvivid_show_notice_add_google_drive_error(){
275
  global $wpvivid_plugin;
276
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add Google Drive Remote');
277
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
278
  }
279
  public function wpvivid_show_notice_edit_google_drive_success(){
280
- _e('<div class="notice notice-success is-dismissible"><p>You have successfully updated the storage alias.</p></div>');
281
  }
282
  public function wpvivid_show_notice_edit_google_drive_error(){
283
  global $wpvivid_plugin;
284
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update Google Drive Remote');
285
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
286
  }
287
 
288
  public function wpvivid_add_storage_tab_google_drive()
@@ -300,23 +300,23 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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>
308
  </div>
309
  <table class="wp-list-table widefat plugins" style="width:100%;">
310
  <tbody>
311
  <tr>
312
  <td class="plugin-title column-primary">
313
  <div class="wpvivid-storage-form">
314
- <input type="text" class="regular-text" autocomplete="off" option="googledrive" name="name" placeholder="Enter a unique alias: e.g. Google Drive-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
315
  </div>
316
  </td>
317
  <td class="column-description desc">
318
  <div class="wpvivid-storage-form-desc">
319
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
320
  </div>
321
  </td>
322
  </tr>
@@ -328,7 +328,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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>
@@ -340,7 +340,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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>
@@ -348,25 +348,25 @@ class Wpvivid_Google_drive extends WPvivid_Remote
348
  <td class="plugin-title column-primary">
349
  <div class="wpvivid-storage-select">
350
  <label>
351
- <input type="checkbox" option="googledrive" name="default" checked />Set as the default remote storage.
352
  </label>
353
  </div>
354
  </td>
355
  <td class="column-description desc">
356
  <div class="wpvivid-storage-form-desc">
357
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
358
  </div>
359
  </td>
360
  </tr>
361
  <tr>
362
  <td class="plugin-title column-primary">
363
  <div class="wpvivid-storage-form">
364
- <input onclick="wpvivid_google_drive_auth();" class="button-primary" type="submit" value="Authenticate with Google Drive" />
365
  </div>
366
  </td>
367
  <td class="column-description desc">
368
  <div class="wpvivid-storage-form-desc">
369
- <i>Click the button to get Google authentication and add it to the storage list below.</i>
370
  </div>
371
  </td>
372
  </tr>
@@ -414,10 +414,10 @@ class Wpvivid_Google_drive extends WPvivid_Remote
414
  }
415
  });
416
  if(name == ''){
417
- alert('Warning: An alias for remote storage is required.');
418
  }
419
  else if(wpvivid_check_google_drive_storage_alias(name) === -1){
420
- alert("Warning: The alias already exists in storage list.");
421
  }
422
  else {
423
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_google_drive_auth&name='?>' + name + '&default=' + remote_default;
@@ -432,31 +432,31 @@ class Wpvivid_Google_drive extends WPvivid_Remote
432
  ?>
433
  <div id="remote_storage_edit_googledrive" class="postbox storage-account-block remote-storage-edit" style="display:none;">
434
  <div style="padding: 0 10px 10px 0;">
435
- <strong>Enter Your Google Drive Information</strong>
436
  </div>
437
  <table class="wp-list-table widefat plugins" style="width:100%;">
438
  <tbody>
439
  <tr>
440
  <td class="plugin-title column-primary">
441
  <div class="wpvivid-storage-form">
442
- <input type="text" class="regular-text" autocomplete="off" option="edit-googledrive" name="name" placeholder="Enter a unique alias: e.g. Google Drive-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
443
  </div>
444
  </td>
445
  <td class="column-description desc">
446
  <div class="wpvivid-storage-form-desc">
447
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
448
  </div>
449
  </td>
450
  </tr>
451
  <tr>
452
  <td class="plugin-title column-primary">
453
  <div class="wpvivid-storage-form">
454
- <input onclick="wpvivid_google_drive_update_auth();" class="button-primary" type="submit" value="Save Changes" />
455
  </div>
456
  </td>
457
  <td class="column-description desc">
458
  <div class="wpvivid-storage-form-desc">
459
- <i>Click the button to save the changes.</i>
460
  </div>
461
  </td>
462
  </tr>
@@ -477,10 +477,10 @@ class Wpvivid_Google_drive extends WPvivid_Remote
477
  });
478
 
479
  if(name == ''){
480
- alert('Warning: An alias for remote storage is required.');
481
  }
482
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
483
- alert("Warning: The alias already exists in storage list.");
484
  }
485
  else {
486
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_google_drive_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
@@ -595,7 +595,11 @@ class Wpvivid_Google_drive extends WPvivid_Remote
595
  return $result;
596
  }
597
 
598
- $this->check_token($client);
 
 
 
 
599
  }
600
  return array('result' =>WPVIVID_SUCCESS);
601
  }
@@ -605,6 +609,8 @@ class Wpvivid_Google_drive extends WPvivid_Remote
605
  if ($client->isAccessTokenExpired())
606
  {
607
  // Refresh the token if possible, else fetch a new one.
 
 
608
  if ($client->getRefreshToken())
609
  {
610
  $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
@@ -620,7 +626,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
620
  }
621
  else
622
  {
623
- return array('result' => WPVIVID_SUCCESS);
624
  }
625
  }
626
  else
75
  {
76
  if(!isset($_GET['name'])||empty($_GET['name']))
77
  {
78
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
79
  return;
80
  }
81
 
86
  {
87
  if(isset($value['name'])&&$value['name'] == $_GET['name'])
88
  {
89
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
90
  return;
91
  }
92
  }
93
  $res = $this -> compare_php_version();
94
  if($res['result'] == WPVIVID_FAILED){
95
+ echo '<div class="notice notice-warning is-dismissible"><p>'.$res['error'].'</p></div>';
96
  return ;
97
  }
98
  try {
108
  }
109
  catch (Exception $e){
110
  if($e->getMessage() === 'file does not exist'){
111
+ $error_msg = __('Authentication failed, the client_secrets.json file is missing. Please make sure the client_secrets.json file is in wpvivid-backuprestore\includes\customclass directory.', 'wpvivid');
112
+ echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
113
  }
114
  else if($e->getMessage() === 'invalid json for auth config'){
115
+ $error_msg = __('Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file.', 'wpvivid');
116
+ echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
117
  }
118
  else{
119
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
120
  }
121
  }
122
  }
153
  }
154
  }
155
  catch (Exception $e){
156
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
157
  }
158
  }
159
  else if($_GET['action']=='wpvivid_google_drive')
168
  }
169
  }
170
  catch (Exception $e){
171
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
172
  }
173
  }
174
  else if($_GET['action']=='wpvivid_google_drive_update_auth')
175
  {
176
  if(!isset($_GET['name'])||empty($_GET['name']))
177
  {
178
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
179
  return;
180
  }
181
 
186
  {
187
  if(isset($value['name'])&&$value['name'] == $_GET['name']&&$key!=$_GET['id'])
188
  {
189
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
190
  return;
191
  }
192
  }
204
  }
205
  catch (Exception $e){
206
  if($e->getMessage() === 'file does not exist'){
207
+ $error_msg = __('Authentication failed, the client_secrets.json file is missing. Please make sure the client_secrets.json file is in wpvivid-backuprestore\includes\customclass directory.', 'wpvivid');
208
+ echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
209
  }
210
  else if($e->getMessage() === 'invalid json for auth config'){
211
+ $error_msg = __('Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file.', 'wpvivid');
212
+ echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
213
  }
214
  else{
215
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
216
  }
217
  }
218
  }
248
  }
249
  }
250
  catch (Exception $e){
251
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
252
  }
253
  }
254
  else if($_GET['action']=='wpvivid_google_drive_update')
263
  }
264
  }
265
  catch (Exception $e){
266
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
267
  }
268
  }
269
  }
270
  }
271
  public function wpvivid_show_notice_add_google_drive_success(){
272
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have authenticated the Google Drive account as your remote storage.', 'wpvivid').'</p></div>';
273
  }
274
  public function wpvivid_show_notice_add_google_drive_error(){
275
  global $wpvivid_plugin;
276
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add Google Drive Remote');
277
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
278
  }
279
  public function wpvivid_show_notice_edit_google_drive_success(){
280
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have successfully updated the storage alias.', 'wpvivid').'</p></div>';
281
  }
282
  public function wpvivid_show_notice_edit_google_drive_error(){
283
  global $wpvivid_plugin;
284
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update Google Drive Remote');
285
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
286
  }
287
 
288
  public function wpvivid_add_storage_tab_google_drive()
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;">
304
+ <?php _e('Please read <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).', 'wpvivid'); ?>
305
  </div>
306
  <div style="padding: 10px 10px 10px 0;">
307
+ <strong><?php _e('Enter Your Google Drive Information', 'wpvivid'); ?></strong>
308
  </div>
309
  <table class="wp-list-table widefat plugins" style="width:100%;">
310
  <tbody>
311
  <tr>
312
  <td class="plugin-title column-primary">
313
  <div class="wpvivid-storage-form">
314
+ <input type="text" class="regular-text" autocomplete="off" option="googledrive" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Google Drive-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
315
  </div>
316
  </td>
317
  <td class="column-description desc">
318
  <div class="wpvivid-storage-form-desc">
319
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
320
  </div>
321
  </td>
322
  </tr>
328
  </td>
329
  <td class="column-description desc">
330
  <div class="wpvivid-storage-form-desc">
331
+ <i><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></i>
332
  </div>
333
  </td>
334
  </tr>
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"><?php _e('Pro feature: Create a directory for storing the backups of the site', 'wpvivid'); ?></a>
344
  </div>
345
  </td>
346
  </tr>
348
  <td class="plugin-title column-primary">
349
  <div class="wpvivid-storage-select">
350
  <label>
351
+ <input type="checkbox" option="googledrive" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
352
  </label>
353
  </div>
354
  </td>
355
  <td class="column-description desc">
356
  <div class="wpvivid-storage-form-desc">
357
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
358
  </div>
359
  </td>
360
  </tr>
361
  <tr>
362
  <td class="plugin-title column-primary">
363
  <div class="wpvivid-storage-form">
364
+ <input onclick="wpvivid_google_drive_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Authenticate with Google Drive', 'wpvivid'); ?>" />
365
  </div>
366
  </td>
367
  <td class="column-description desc">
368
  <div class="wpvivid-storage-form-desc">
369
+ <i><?php _e('Click the button to get Google authentication and add it to the storage list below.', 'wpvivid'); ?></i>
370
  </div>
371
  </td>
372
  </tr>
414
  }
415
  });
416
  if(name == ''){
417
+ alert(wpvividlion.remotealias);
418
  }
419
  else if(wpvivid_check_google_drive_storage_alias(name) === -1){
420
+ alert(wpvividlion.remoteexist);
421
  }
422
  else {
423
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_google_drive_auth&name='?>' + name + '&default=' + remote_default;
432
  ?>
433
  <div id="remote_storage_edit_googledrive" class="postbox storage-account-block remote-storage-edit" style="display:none;">
434
  <div style="padding: 0 10px 10px 0;">
435
+ <strong><?php _e('Enter Your Google Drive Information', 'wpvivid'); ?></strong>
436
  </div>
437
  <table class="wp-list-table widefat plugins" style="width:100%;">
438
  <tbody>
439
  <tr>
440
  <td class="plugin-title column-primary">
441
  <div class="wpvivid-storage-form">
442
+ <input type="text" class="regular-text" autocomplete="off" option="edit-googledrive" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. Google Drive-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
443
  </div>
444
  </td>
445
  <td class="column-description desc">
446
  <div class="wpvivid-storage-form-desc">
447
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
448
  </div>
449
  </td>
450
  </tr>
451
  <tr>
452
  <td class="plugin-title column-primary">
453
  <div class="wpvivid-storage-form">
454
+ <input onclick="wpvivid_google_drive_update_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>" />
455
  </div>
456
  </td>
457
  <td class="column-description desc">
458
  <div class="wpvivid-storage-form-desc">
459
+ <i><?php _e('Click the button to save the changes.', 'wpvivid');?></i>
460
  </div>
461
  </td>
462
  </tr>
477
  });
478
 
479
  if(name == ''){
480
+ alert(wpvividlion.remotealias);
481
  }
482
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
483
+ alert(wpvividlion.remoteexist);
484
  }
485
  else {
486
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_google_drive_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
595
  return $result;
596
  }
597
 
598
+ $ref=$this->check_token($client);
599
+ if($ref['result']=!WPVIVID_SUCCESS)
600
+ {
601
+ return $ref;
602
+ }
603
  }
604
  return array('result' =>WPVIVID_SUCCESS);
605
  }
609
  if ($client->isAccessTokenExpired())
610
  {
611
  // Refresh the token if possible, else fetch a new one.
612
+ global $wpvivid_plugin;
613
+ $wpvivid_plugin->wpvivid_log->WriteLog('Refresh the token.','notice');
614
  if ($client->getRefreshToken())
615
  {
616
  $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
626
  }
627
  else
628
  {
629
+ return array('result' => WPVIVID_FAILED,'error'=>'get refresh token failed');
630
  }
631
  }
632
  else
includes/customclass/class-wpvivid-one-drive.php CHANGED
@@ -77,7 +77,7 @@ class WPvivid_one_drive extends WPvivid_Remote
77
  {
78
  try {
79
  if (!isset($_GET['name']) || empty($_GET['name'])) {
80
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
81
  return;
82
  }
83
 
@@ -86,7 +86,7 @@ class WPvivid_one_drive extends WPvivid_Remote
86
  $remoteslist = WPvivid_Setting::get_all_remote_options();
87
  foreach ($remoteslist as $key => $value) {
88
  if (isset($value['name']) && $value['name'] == $_GET['name']) {
89
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
90
  return;
91
  }
92
  }
@@ -102,7 +102,7 @@ class WPvivid_one_drive extends WPvivid_Remote
102
  header('Location: ' . esc_url_raw($url));
103
  }
104
  catch (Exception $e){
105
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
106
  }
107
  }
108
  else if($_GET['action']=='wpvivid_one_drive_finish_auth')
@@ -119,11 +119,6 @@ class WPvivid_one_drive extends WPvivid_Remote
119
  global $wpvivid_plugin;
120
 
121
  $remote_options['type'] = WPVIVID_REMOTE_ONEDRIVE;
122
- //$token = $_POST['token'];
123
- //$token = stripslashes($token);
124
- //$remote_options['token'] = json_decode($token, 1);
125
- //$remote_options['token']['expires'] = time() + $remote_options['token']['expires_in'];
126
- //
127
  $remote_options['token']['access_token']=$_POST['access_token'];
128
  $remote_options['token']['refresh_token']=$_POST['refresh_token'];
129
  $remote_options['token']['expires']=time()+$_POST['expires_in'];
@@ -142,7 +137,7 @@ class WPvivid_one_drive extends WPvivid_Remote
142
  }
143
  }
144
  catch (Exception $e){
145
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
146
  }
147
  }
148
  else if($_GET['action']=='wpvivid_one_drive')
@@ -157,14 +152,14 @@ class WPvivid_one_drive extends WPvivid_Remote
157
  }
158
  }
159
  catch (Exception $e){
160
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
161
  }
162
  }
163
  else if($_GET['action']=='wpvivid_one_drive_update_auth')
164
  {
165
  try {
166
  if (!isset($_GET['name']) || empty($_GET['name'])) {
167
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: An alias for remote storage is required.</p></div>');
168
  return;
169
  }
170
 
@@ -173,7 +168,7 @@ class WPvivid_one_drive extends WPvivid_Remote
173
  $remoteslist = WPvivid_Setting::get_all_remote_options();
174
  foreach ($remoteslist as $key => $value) {
175
  if (isset($value['name']) && $value['name'] == $_GET['name'] && $key != $_GET['id']) {
176
- _e('<div class="notice notice-warning is-dismissible"><p>Warning: The alias already exists in storage list.</p></div>');
177
  return;
178
  }
179
  }
@@ -189,7 +184,7 @@ class WPvivid_one_drive extends WPvivid_Remote
189
  header('Location: ' . esc_url_raw($url));
190
  }
191
  catch (Exception $e){
192
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
193
  }
194
  }
195
  else if($_GET['action']=='wpvivid_one_drive_update_finish_auth')
@@ -205,11 +200,6 @@ class WPvivid_one_drive extends WPvivid_Remote
205
  global $wpvivid_plugin;
206
 
207
  $remote_options['type'] = WPVIVID_REMOTE_ONEDRIVE;
208
- //$token = $_GET['token'];
209
- //$token = stripslashes($token);
210
- //$remote_options['token'] = json_decode($token, 1);
211
- //$remote_options['token']['expires'] = time() + $remote_options['token']['expires_in'];
212
- //
213
  $remote_options['token']['access_token']=$_POST['access_token'];
214
  $remote_options['token']['refresh_token']=$_POST['refresh_token'];
215
  $remote_options['token']['expires']=time()+$_POST['expires_in'];
@@ -226,7 +216,7 @@ class WPvivid_one_drive extends WPvivid_Remote
226
  }
227
  }
228
  catch (Exception $e){
229
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
230
  }
231
  }
232
  else if($_GET['action']=='wpvivid_one_drive_update')
@@ -241,26 +231,26 @@ class WPvivid_one_drive extends WPvivid_Remote
241
  }
242
  }
243
  catch (Exception $e){
244
- _e('<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>');
245
  }
246
  }
247
  }
248
  }
249
  public function wpvivid_show_notice_add_onedrive_success(){
250
- _e('<div class="notice notice-success is-dismissible"><p>You have authenticated the Microsoft OneDrive account as your remote storage.</p></div>');
251
  }
252
  public function wpvivid_show_notice_add_onedrive_error(){
253
  global $wpvivid_plugin;
254
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add OneDrive Remote');
255
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
256
  }
257
  public function wpvivid_show_notice_edit_onedrive_success(){
258
- _e('<div class="notice notice-success is-dismissible"><p>You have successfully updated the storage alias.</p></div>');
259
  }
260
  public function wpvivid_show_notice_edit_onedrive_error(){
261
  global $wpvivid_plugin;
262
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update OneDrive Remote');
263
- _e('<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>');
264
  }
265
 
266
  public function wpvivid_add_storage_tab_one_drive()
@@ -278,23 +268,23 @@ class WPvivid_one_drive extends WPvivid_Remote
278
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_ONEDRIVE);
279
  ?>
280
  <div id="storage_account_one_drive" class="storage-account-page" style="display:none;">
281
- <div style="background-color:#f1f1f1; padding: 10px;">Please read
282
- <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).
283
  </div>
284
  <div style="padding: 10px 10px 10px 0;">
285
- <strong>Enter Your Microsoft OneDrive Information</strong>
286
  </div>
287
  <table class="wp-list-table widefat plugins" style="width:100%;">
288
  <tbody>
289
  <tr>
290
  <td class="plugin-title column-primary">
291
  <div class="wpvivid-storage-form">
292
- <input type="text" class="regular-text" autocomplete="off" option="one_drive" name="name" placeholder="Enter a unique alias: e.g. OneDrive-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
293
  </div>
294
  </td>
295
  <td class="column-description desc">
296
  <div class="wpvivid-storage-form-desc">
297
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
298
  </div>
299
  </td>
300
  </tr>
@@ -306,7 +296,7 @@ class WPvivid_one_drive extends WPvivid_Remote
306
  </td>
307
  <td class="column-description desc">
308
  <div class="wpvivid-storage-form-desc">
309
- <i>All backups will be uploaded to this directory.</i>
310
  </div>
311
  </td>
312
  </tr>
@@ -318,7 +308,7 @@ class WPvivid_one_drive extends WPvivid_Remote
318
  </td>
319
  <td class="column-description desc">
320
  <div class="wpvivid-storage-form-desc">
321
- <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>
322
  </div>
323
  </td>
324
  </tr>
@@ -326,25 +316,25 @@ class WPvivid_one_drive extends WPvivid_Remote
326
  <td class="plugin-title column-primary">
327
  <div class="wpvivid-storage-select">
328
  <label>
329
- <input type="checkbox" option="one_drive" name="default" checked />Set as the default remote storage.
330
  </label>
331
  </div>
332
  </td>
333
  <td class="column-description desc">
334
  <div class="wpvivid-storage-form-desc">
335
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
336
  </div>
337
  </td>
338
  </tr>
339
  <tr>
340
  <td class="plugin-title column-primary">
341
  <div class="wpvivid-storage-form">
342
- <input onclick="wpvivid_one_drive_auth();" class="button-primary" type="submit" value="Authenticate with Microsoft OneDrive">
343
  </div>
344
  </td>
345
  <td class="column-description desc">
346
  <div class="wpvivid-storage-form-desc">
347
- <i>Click the button to get Microsoft authentication and add it to the storage list below.</i>
348
  </div>
349
  </td>
350
  </tr>
@@ -392,10 +382,10 @@ class WPvivid_one_drive extends WPvivid_Remote
392
  }
393
  });
394
  if(name == ''){
395
- alert('Warning: An alias for remote storage is required.');
396
  }
397
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
398
- alert("Warning: The alias already exists in storage list.");
399
  }
400
  else {
401
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_one_drive_auth&name='?>' + name + '&default=' + remote_default;
@@ -410,44 +400,36 @@ class WPvivid_one_drive extends WPvivid_Remote
410
  ?>
411
  <div id="remote_storage_edit_onedrive" class="postbox storage-account-block remote-storage-edit" style="display:none;">
412
  <div style="padding: 0 10px 10px 0;">
413
- <strong>Enter Your Microsoft OneDrive Information</strong>
414
  </div>
415
  <table class="wp-list-table widefat plugins" style="width:100%;">
416
  <tbody>
417
  <tr>
418
  <td class="plugin-title column-primary">
419
  <div class="wpvivid-storage-form">
420
- <input type="text" class="regular-text" autocomplete="off" option="edit-onedrive" name="name" placeholder="Enter a unique alias: e.g. OneDrive-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
421
  </div>
422
  </td>
423
  <td class="column-description desc">
424
  <div class="wpvivid-storage-form-desc">
425
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
426
  </div>
427
  </td>
428
  </tr>
429
  <tr>
430
  <td class="plugin-title column-primary">
431
  <div class="wpvivid-storage-form">
432
- <input onclick="wpvivid_one_drive_update_auth();" class="button-primary" type="submit" value="Save Changes">
433
  </div>
434
  </td>
435
  <td class="column-description desc">
436
  <div class="wpvivid-storage-form-desc">
437
- <i>Click the button to save the changes.</i>
438
  </div>
439
  </td>
440
  </tr>
441
  </tbody>
442
  </table>
443
-
444
- <!--<h2><span><?php _e( 'Enter an alias for Microsoft OneDrive','wpvivid'); ?></span></h2>
445
- <div class="storage-account-form">
446
- <input type="text" option="edit-onedrive" name="name" placeholder="Enter an unique alias: e.g. OneDrive-001" class="regular-text" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
447
- </div>
448
- <div class=""><input onclick="wpvivid_one_drive_update_auth()" class="button-primary storage-account-button" type="button" value="<?php _e( 'Save Changes', 'wpvivid' ); ?>" /></div>
449
- <div style="clear:both;"></div>
450
- <div style="padding-left: 10px;">Tips: Get Microsoft authentication to change the alias.</div>-->
451
  </div>
452
  <script>
453
  function wpvivid_one_drive_update_auth()
@@ -462,10 +444,10 @@ class WPvivid_one_drive extends WPvivid_Remote
462
  }
463
  });
464
  if(name == ''){
465
- alert('Warning: An alias for remote storage is required.');
466
  }
467
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
468
- alert("Warning: The alias already exists in storage list.");
469
  }
470
  else {
471
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_one_drive_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
77
  {
78
  try {
79
  if (!isset($_GET['name']) || empty($_GET['name'])) {
80
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
81
  return;
82
  }
83
 
86
  $remoteslist = WPvivid_Setting::get_all_remote_options();
87
  foreach ($remoteslist as $key => $value) {
88
  if (isset($value['name']) && $value['name'] == $_GET['name']) {
89
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
90
  return;
91
  }
92
  }
102
  header('Location: ' . esc_url_raw($url));
103
  }
104
  catch (Exception $e){
105
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
106
  }
107
  }
108
  else if($_GET['action']=='wpvivid_one_drive_finish_auth')
119
  global $wpvivid_plugin;
120
 
121
  $remote_options['type'] = WPVIVID_REMOTE_ONEDRIVE;
 
 
 
 
 
122
  $remote_options['token']['access_token']=$_POST['access_token'];
123
  $remote_options['token']['refresh_token']=$_POST['refresh_token'];
124
  $remote_options['token']['expires']=time()+$_POST['expires_in'];
137
  }
138
  }
139
  catch (Exception $e){
140
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
141
  }
142
  }
143
  else if($_GET['action']=='wpvivid_one_drive')
152
  }
153
  }
154
  catch (Exception $e){
155
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
156
  }
157
  }
158
  else if($_GET['action']=='wpvivid_one_drive_update_auth')
159
  {
160
  try {
161
  if (!isset($_GET['name']) || empty($_GET['name'])) {
162
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: An alias for remote storage is required.', 'wpvivid').'</p></div>';
163
  return;
164
  }
165
 
168
  $remoteslist = WPvivid_Setting::get_all_remote_options();
169
  foreach ($remoteslist as $key => $value) {
170
  if (isset($value['name']) && $value['name'] == $_GET['name'] && $key != $_GET['id']) {
171
+ echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
172
  return;
173
  }
174
  }
184
  header('Location: ' . esc_url_raw($url));
185
  }
186
  catch (Exception $e){
187
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
188
  }
189
  }
190
  else if($_GET['action']=='wpvivid_one_drive_update_finish_auth')
200
  global $wpvivid_plugin;
201
 
202
  $remote_options['type'] = WPVIVID_REMOTE_ONEDRIVE;
 
 
 
 
 
203
  $remote_options['token']['access_token']=$_POST['access_token'];
204
  $remote_options['token']['refresh_token']=$_POST['refresh_token'];
205
  $remote_options['token']['expires']=time()+$_POST['expires_in'];
216
  }
217
  }
218
  catch (Exception $e){
219
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
220
  }
221
  }
222
  else if($_GET['action']=='wpvivid_one_drive_update')
231
  }
232
  }
233
  catch (Exception $e){
234
+ echo '<div class="notice notice-error"><p>'.$e->getMessage().'</p></div>';
235
  }
236
  }
237
  }
238
  }
239
  public function wpvivid_show_notice_add_onedrive_success(){
240
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have authenticated the Microsoft OneDrive account as your remote storage.', 'wpvivid').'</p></div>';
241
  }
242
  public function wpvivid_show_notice_add_onedrive_error(){
243
  global $wpvivid_plugin;
244
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Add OneDrive Remote');
245
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
246
  }
247
  public function wpvivid_show_notice_edit_onedrive_success(){
248
+ echo '<div class="notice notice-success is-dismissible"><p>'.__('You have successfully updated the storage alias.', 'wpvivid').'</p></div>';
249
  }
250
  public function wpvivid_show_notice_edit_onedrive_error(){
251
  global $wpvivid_plugin;
252
  $wpvivid_plugin->wpvivid_handle_remote_storage_error($_GET['resp_msg'], 'Update OneDrive Remote');
253
+ echo '<div class="notice notice-error"><p>'.$_GET['resp_msg'].'</p></div>';
254
  }
255
 
256
  public function wpvivid_add_storage_tab_one_drive()
268
  $root_path=apply_filters('wpvivid_get_root_path', WPVIVID_REMOTE_ONEDRIVE);
269
  ?>
270
  <div id="storage_account_one_drive" class="storage-account-page" style="display:none;">
271
+ <div style="background-color:#f1f1f1; padding: 10px;">
272
+ <?php _e('Please read <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).', 'wpvivid'); ?>
273
  </div>
274
  <div style="padding: 10px 10px 10px 0;">
275
+ <strong><?php _e('Enter Your Microsoft OneDrive Information', 'wpvivid'); ?></strong>
276
  </div>
277
  <table class="wp-list-table widefat plugins" style="width:100%;">
278
  <tbody>
279
  <tr>
280
  <td class="plugin-title column-primary">
281
  <div class="wpvivid-storage-form">
282
+ <input type="text" class="regular-text" autocomplete="off" option="one_drive" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. OneDrive-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
283
  </div>
284
  </td>
285
  <td class="column-description desc">
286
  <div class="wpvivid-storage-form-desc">
287
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
288
  </div>
289
  </td>
290
  </tr>
296
  </td>
297
  <td class="column-description desc">
298
  <div class="wpvivid-storage-form-desc">
299
+ <i><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></i>
300
  </div>
301
  </td>
302
  </tr>
308
  </td>
309
  <td class="column-description desc">
310
  <div class="wpvivid-storage-form-desc">
311
+ <a href="https://wpvivid.com/wpvivid-backup-pro-microsoft-onedrive-custom-folder-name?utm_source=client_onedrive&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: Create a directory for storing the backups of the site', 'wpvivid'); ?></a>
312
  </div>
313
  </td>
314
  </tr>
316
  <td class="plugin-title column-primary">
317
  <div class="wpvivid-storage-select">
318
  <label>
319
+ <input type="checkbox" option="one_drive" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
320
  </label>
321
  </div>
322
  </td>
323
  <td class="column-description desc">
324
  <div class="wpvivid-storage-form-desc">
325
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
326
  </div>
327
  </td>
328
  </tr>
329
  <tr>
330
  <td class="plugin-title column-primary">
331
  <div class="wpvivid-storage-form">
332
+ <input onclick="wpvivid_one_drive_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Authenticate with Microsoft OneDrive', 'wpvivid'); ?>">
333
  </div>
334
  </td>
335
  <td class="column-description desc">
336
  <div class="wpvivid-storage-form-desc">
337
+ <i><?php _e('Click the button to get Microsoft authentication and add it to the storage list below.', 'wpvivid'); ?></i>
338
  </div>
339
  </td>
340
  </tr>
382
  }
383
  });
384
  if(name == ''){
385
+ alert(wpvividlion.remotealias);
386
  }
387
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
388
+ alert(wpvividlion.remoteexist);
389
  }
390
  else {
391
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_one_drive_auth&name='?>' + name + '&default=' + remote_default;
400
  ?>
401
  <div id="remote_storage_edit_onedrive" class="postbox storage-account-block remote-storage-edit" style="display:none;">
402
  <div style="padding: 0 10px 10px 0;">
403
+ <strong><?php _e('Enter Your Microsoft OneDrive Information', 'wpvivid'); ?></strong>
404
  </div>
405
  <table class="wp-list-table widefat plugins" style="width:100%;">
406
  <tbody>
407
  <tr>
408
  <td class="plugin-title column-primary">
409
  <div class="wpvivid-storage-form">
410
+ <input type="text" class="regular-text" autocomplete="off" option="edit-onedrive" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. OneDrive-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
411
  </div>
412
  </td>
413
  <td class="column-description desc">
414
  <div class="wpvivid-storage-form-desc">
415
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
416
  </div>
417
  </td>
418
  </tr>
419
  <tr>
420
  <td class="plugin-title column-primary">
421
  <div class="wpvivid-storage-form">
422
+ <input onclick="wpvivid_one_drive_update_auth();" class="button-primary" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>">
423
  </div>
424
  </td>
425
  <td class="column-description desc">
426
  <div class="wpvivid-storage-form-desc">
427
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
428
  </div>
429
  </td>
430
  </tr>
431
  </tbody>
432
  </table>
 
 
 
 
 
 
 
 
433
  </div>
434
  <script>
435
  function wpvivid_one_drive_update_auth()
444
  }
445
  });
446
  if(name == ''){
447
+ alert(wpvividlion.remotealias);
448
  }
449
  else if(wpvivid_check_onedrive_storage_alias(name) === -1){
450
+ alert(wpvividlion.remoteexist);
451
  }
452
  else {
453
  location.href = '<?php echo admin_url() . 'admin.php?page=WPvivid' . '&action=wpvivid_one_drive_update_auth&name='?>' + name + '&id=' + wpvivid_editing_storage_id;
includes/customclass/class-wpvivid-s3compat.php CHANGED
@@ -409,7 +409,7 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
409
  ?>
410
  <div id="storage_account_s3compat" class="storage-account-page" style="display:none;">
411
  <div style="padding: 0 10px 10px 0;">
412
- <strong>Enter Your DigitalOcean Spaces Account</strong>
413
  </div>
414
  <table class="wp-list-table widefat plugins" style="width:100%;">
415
  <tbody>
@@ -417,72 +417,72 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
417
  <tr>
418
  <td class="plugin-title column-primary">
419
  <div class="wpvivid-storage-form">
420
- <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="name" placeholder="Enter a unique alias: e.g. DOS-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
421
  </div>
422
  </td>
423
  <td class="column-description desc">
424
  <div class="wpvivid-storage-form-desc">
425
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
426
  </div>
427
  </td>
428
  </tr>
429
  <tr>
430
  <td class="plugin-title column-primary">
431
  <div class="wpvivid-storage-form">
432
- <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="access" placeholder="DigitalOcean Spaces access key" />
433
  </div>
434
  </td>
435
  <td class="column-description desc">
436
  <div class="wpvivid-storage-form-desc">
437
- <i>Enter your DigitalOcean Spaces access key</i>
438
  </div>
439
  </td>
440
  </tr>
441
  <tr>
442
  <td class="plugin-title column-primary">
443
  <div class="wpvivid-storage-form">
444
- <input type="password" class="regular-text" autocomplete="new-password" option="s3compat" name="secret" placeholder="DigitalOcean Spaces secret key" />
445
  </div>
446
  </td>
447
  <td class="column-description desc">
448
  <div class="wpvivid-storage-form-desc">
449
- <i>Enter your DigitalOcean Spaces secret key</i>
450
  </div>
451
  </td>
452
  </tr>
453
  <tr>
454
  <td class="plugin-title column-primary">
455
  <div class="wpvivid-storage-form">
456
- <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="bucket" placeholder="Space Name(e.g. test)" />
457
  </div>
458
  </td>
459
  <td class="column-description desc">
460
  <div class="wpvivid-storage-form-desc">
461
- <i><span>Enter an existed Space to create a custom backup storage directory.</span></i>
462
  </div>
463
  </td>
464
  </tr>
465
  <tr>
466
  <td class="plugin-title column-primary">
467
  <div class="wpvivid-storage-form">
468
- <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="path" placeholder="Custom Path" />
469
  </div>
470
  </td>
471
  <td class="column-description desc">
472
  <div class="wpvivid-storage-form-desc">
473
- <i><span>Customize the directory where you want to store backups within the Space.</span></i>
474
  </div>
475
  </td>
476
  </tr>
477
  <tr>
478
  <td class="plugin-title column-primary">
479
  <div class="wpvivid-storage-form">
480
- <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="endpoint" placeholder="region.digitaloceanspaces.com" />
481
  </div>
482
  </td>
483
  <td class="column-description desc">
484
  <div class="wpvivid-storage-form-desc">
485
- <i>Enter the DigitalOcean Endpoint for the storage</i>
486
  </div>
487
  </td>
488
  </tr>
@@ -490,13 +490,13 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
490
  <td class="plugin-title column-primary">
491
  <div class="wpvivid-storage-select">
492
  <label>
493
- <input type="checkbox" option="s3compat" name="default" checked />Set as the default remote storage.
494
  </label>
495
  </div>
496
  </td>
497
  <td class="column-description desc">
498
  <div class="wpvivid-storage-form-desc">
499
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
500
  </div>
501
  </td>
502
  </tr>
@@ -504,12 +504,12 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
504
  <tr>
505
  <td class="plugin-title column-primary">
506
  <div class="wpvivid-storage-form">
507
- <input class="button-primary" option="add-remote" type="submit" value="Test and Add" />
508
  </div>
509
  </td>
510
  <td class="column-description desc">
511
  <div class="wpvivid-storage-form-desc">
512
- <i>Click the button to connect to DigitalOcean Spaces storage and add it to the storage list below.</i>
513
  </div>
514
  </td>
515
  </tr>
@@ -524,7 +524,7 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
524
  ?>
525
  <div id="remote_storage_edit_s3compat" class="postbox storage-account-block remote-storage-edit" style="display:none;">
526
  <div style="padding: 0 10px 10px 0;">
527
- <strong>Enter Your DigitalOcean Spaces Account</strong>
528
  </div>
529
  <table class="wp-list-table widefat plugins" style="width:100%;">
530
  <tbody>
@@ -532,72 +532,72 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
532
  <tr>
533
  <td class="plugin-title column-primary">
534
  <div class="wpvivid-storage-form">
535
- <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="name" placeholder="Enter a unique alias: e.g. DOS-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
536
  </div>
537
  </td>
538
  <td class="column-description desc">
539
  <div class="wpvivid-storage-form-desc">
540
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
541
  </div>
542
  </td>
543
  </tr>
544
  <tr>
545
  <td class="plugin-title column-primary">
546
  <div class="wpvivid-storage-form">
547
- <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="access" placeholder="DigitalOcean Spaces access key" />
548
  </div>
549
  </td>
550
  <td class="column-description desc">
551
  <div class="wpvivid-storage-form-desc">
552
- <i>Enter your DigitalOcean Spaces access key</i>
553
  </div>
554
  </td>
555
  </tr>
556
  <tr>
557
  <td class="plugin-title column-primary">
558
  <div class="wpvivid-storage-form">
559
- <input type="password" class="regular-text" autocomplete="new-password" option="edit-s3compat" name="secret" placeholder="DigitalOcean Spaces secret key" />
560
  </div>
561
  </td>
562
  <td class="column-description desc">
563
  <div class="wpvivid-storage-form-desc">
564
- <i>Enter your DigitalOcean Spaces secret key</i>
565
  </div>
566
  </td>
567
  </tr>
568
  <tr>
569
  <td class="plugin-title column-primary">
570
  <div class="wpvivid-storage-form">
571
- <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="bucket" placeholder="Space Name(e.g. test)" />
572
  </div>
573
  </td>
574
  <td class="column-description desc">
575
  <div class="wpvivid-storage-form-desc">
576
- <i><span>Enter an existed Space to create a custom backup storage directory.</span></i>
577
  </div>
578
  </td>
579
  </tr>
580
  <tr>
581
  <td class="plugin-title column-primary">
582
  <div class="wpvivid-storage-form">
583
- <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="path" placeholder="Custom Path" />
584
  </div>
585
  </td>
586
  <td class="column-description desc">
587
  <div class="wpvivid-storage-form-desc">
588
- <i><span>Customize the directory where you want to store backups within the Space.</span></i>
589
  </div>
590
  </td>
591
  </tr>
592
  <tr>
593
  <td class="plugin-title column-primary">
594
  <div class="wpvivid-storage-form">
595
- <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="endpoint" placeholder="region.digitaloceanspaces.com" />
596
  </div>
597
  </td>
598
  <td class="column-description desc">
599
  <div class="wpvivid-storage-form-desc">
600
- <i>Enter the DigitalOcean Endpoint for the storage</i>
601
  </div>
602
  </td>
603
  </tr>
@@ -605,12 +605,12 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
605
  <tr>
606
  <td class="plugin-title column-primary">
607
  <div class="wpvivid-storage-form">
608
- <input class="button-primary" option="edit-remote" type="submit" value="Save Changes" />
609
  </div>
610
  </td>
611
  <td class="column-description desc">
612
  <div class="wpvivid-storage-form-desc">
613
- <i>Click the button to save the changes.</i>
614
  </div>
615
  </td>
616
  </tr>
409
  ?>
410
  <div id="storage_account_s3compat" class="storage-account-page" style="display:none;">
411
  <div style="padding: 0 10px 10px 0;">
412
+ <strong><?php _e('Enter Your DigitalOcean Spaces Account', 'wpvivid'); ?></strong>
413
  </div>
414
  <table class="wp-list-table widefat plugins" style="width:100%;">
415
  <tbody>
417
  <tr>
418
  <td class="plugin-title column-primary">
419
  <div class="wpvivid-storage-form">
420
+ <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. DOS-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
421
  </div>
422
  </td>
423
  <td class="column-description desc">
424
  <div class="wpvivid-storage-form-desc">
425
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
426
  </div>
427
  </td>
428
  </tr>
429
  <tr>
430
  <td class="plugin-title column-primary">
431
  <div class="wpvivid-storage-form">
432
+ <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="access" placeholder="<?php esc_attr_e('DigitalOcean Spaces access key', 'wpvivid'); ?>" />
433
  </div>
434
  </td>
435
  <td class="column-description desc">
436
  <div class="wpvivid-storage-form-desc">
437
+ <i><?php _e('Enter your DigitalOcean Spaces access key', 'wpvivid'); ?></i>
438
  </div>
439
  </td>
440
  </tr>
441
  <tr>
442
  <td class="plugin-title column-primary">
443
  <div class="wpvivid-storage-form">
444
+ <input type="password" class="regular-text" autocomplete="new-password" option="s3compat" name="secret" placeholder="<?php esc_attr_e('DigitalOcean Spaces secret key', 'wpvivid'); ?>" />
445
  </div>
446
  </td>
447
  <td class="column-description desc">
448
  <div class="wpvivid-storage-form-desc">
449
+ <i><?php _e('Enter your DigitalOcean Spaces secret key', 'wpvivid'); ?></i>
450
  </div>
451
  </td>
452
  </tr>
453
  <tr>
454
  <td class="plugin-title column-primary">
455
  <div class="wpvivid-storage-form">
456
+ <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="bucket" placeholder="<?php esc_attr_e('Space Name(e.g. test)', 'wpvivid'); ?>" />
457
  </div>
458
  </td>
459
  <td class="column-description desc">
460
  <div class="wpvivid-storage-form-desc">
461
+ <i><span><?php _e('Enter an existed Space to create a custom backup storage directory.', 'wpvivid'); ?></span></i>
462
  </div>
463
  </td>
464
  </tr>
465
  <tr>
466
  <td class="plugin-title column-primary">
467
  <div class="wpvivid-storage-form">
468
+ <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="path" placeholder="<?php esc_attr_e('Custom Path', 'wpvivid'); ?>" />
469
  </div>
470
  </td>
471
  <td class="column-description desc">
472
  <div class="wpvivid-storage-form-desc">
473
+ <i><span><?php _e('Customize the directory where you want to store backups within the Space.', 'wpvivid'); ?></span></i>
474
  </div>
475
  </td>
476
  </tr>
477
  <tr>
478
  <td class="plugin-title column-primary">
479
  <div class="wpvivid-storage-form">
480
+ <input type="text" class="regular-text" autocomplete="off" option="s3compat" name="endpoint" placeholder="<?php esc_attr_e('region.digitaloceanspaces.com', 'wpvivid'); ?>" />
481
  </div>
482
  </td>
483
  <td class="column-description desc">
484
  <div class="wpvivid-storage-form-desc">
485
+ <i><?php _e('Enter the DigitalOcean Endpoint for the storage', 'wpvivid'); ?></i>
486
  </div>
487
  </td>
488
  </tr>
490
  <td class="plugin-title column-primary">
491
  <div class="wpvivid-storage-select">
492
  <label>
493
+ <input type="checkbox" option="s3compat" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
494
  </label>
495
  </div>
496
  </td>
497
  <td class="column-description desc">
498
  <div class="wpvivid-storage-form-desc">
499
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
500
  </div>
501
  </td>
502
  </tr>
504
  <tr>
505
  <td class="plugin-title column-primary">
506
  <div class="wpvivid-storage-form">
507
+ <input class="button-primary" option="add-remote" type="submit" value="<?php esc_attr_e('Test and Add', 'wpvivid'); ?>" />
508
  </div>
509
  </td>
510
  <td class="column-description desc">
511
  <div class="wpvivid-storage-form-desc">
512
+ <i><?php _e('Click the button to connect to DigitalOcean Spaces storage and add it to the storage list below.', 'wpvivid'); ?></i>
513
  </div>
514
  </td>
515
  </tr>
524
  ?>
525
  <div id="remote_storage_edit_s3compat" class="postbox storage-account-block remote-storage-edit" style="display:none;">
526
  <div style="padding: 0 10px 10px 0;">
527
+ <strong><?php _e('Enter Your DigitalOcean Spaces Account', 'wpvivid'); ?></strong>
528
  </div>
529
  <table class="wp-list-table widefat plugins" style="width:100%;">
530
  <tbody>
532
  <tr>
533
  <td class="plugin-title column-primary">
534
  <div class="wpvivid-storage-form">
535
+ <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. DOS-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
536
  </div>
537
  </td>
538
  <td class="column-description desc">
539
  <div class="wpvivid-storage-form-desc">
540
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
541
  </div>
542
  </td>
543
  </tr>
544
  <tr>
545
  <td class="plugin-title column-primary">
546
  <div class="wpvivid-storage-form">
547
+ <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="access" placeholder="<?php esc_attr_e('DigitalOcean Spaces access key', 'wpvivid'); ?>" />
548
  </div>
549
  </td>
550
  <td class="column-description desc">
551
  <div class="wpvivid-storage-form-desc">
552
+ <i><?php _e('Enter your DigitalOcean Spaces access key', 'wpvivid'); ?></i>
553
  </div>
554
  </td>
555
  </tr>
556
  <tr>
557
  <td class="plugin-title column-primary">
558
  <div class="wpvivid-storage-form">
559
+ <input type="password" class="regular-text" autocomplete="new-password" option="edit-s3compat" name="secret" placeholder="<?php esc_attr_e('DigitalOcean Spaces secret key', 'wpvivid'); ?>" />
560
  </div>
561
  </td>
562
  <td class="column-description desc">
563
  <div class="wpvivid-storage-form-desc">
564
+ <i><?php _e('Enter your DigitalOcean Spaces secret key', 'wpvivid'); ?></i>
565
  </div>
566
  </td>
567
  </tr>
568
  <tr>
569
  <td class="plugin-title column-primary">
570
  <div class="wpvivid-storage-form">
571
+ <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="bucket" placeholder="<?php esc_attr_e('Space Name(e.g. test)', 'wpvivid'); ?>" />
572
  </div>
573
  </td>
574
  <td class="column-description desc">
575
  <div class="wpvivid-storage-form-desc">
576
+ <i><span><?php _e('Enter an existed Space to create a custom backup storage directory.', 'wpvivid'); ?></span></i>
577
  </div>
578
  </td>
579
  </tr>
580
  <tr>
581
  <td class="plugin-title column-primary">
582
  <div class="wpvivid-storage-form">
583
+ <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="path" placeholder="<?php esc_attr_e('Custom Path', 'wpvivid'); ?>" />
584
  </div>
585
  </td>
586
  <td class="column-description desc">
587
  <div class="wpvivid-storage-form-desc">
588
+ <i><span><?php _e('Customize the directory where you want to store backups within the Space.', 'wpvivid'); ?></span></i>
589
  </div>
590
  </td>
591
  </tr>
592
  <tr>
593
  <td class="plugin-title column-primary">
594
  <div class="wpvivid-storage-form">
595
+ <input type="text" class="regular-text" autocomplete="off" option="edit-s3compat" name="endpoint" placeholder="<?php esc_attr_e('region.digitaloceanspaces.com', 'wpvivid'); ?>" />
596
  </div>
597
  </td>
598
  <td class="column-description desc">
599
  <div class="wpvivid-storage-form-desc">
600
+ <i><?php _e('Enter the DigitalOcean Endpoint for the storage', 'wpvivid'); ?></i>
601
  </div>
602
  </td>
603
  </tr>
605
  <tr>
606
  <td class="plugin-title column-primary">
607
  <div class="wpvivid-storage-form">
608
+ <input class="button-primary" option="edit-remote" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>" />
609
  </div>
610
  </td>
611
  <td class="column-description desc">
612
  <div class="wpvivid-storage-form-desc">
613
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
614
  </div>
615
  </td>
616
  </tr>
includes/customclass/class-wpvivid-sftpclass.php CHANGED
@@ -45,7 +45,7 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
45
  ?>
46
  <div id="storage_account_sftp" class="storage-account-page" style="display:none;">
47
  <div style="padding: 0 10px 10px 0;">
48
- <strong>Enter Your SFTP Account</strong>
49
  </div>
50
  <table class="wp-list-table widefat plugins" style="width:100%;">
51
  <tbody>
@@ -53,72 +53,72 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
53
  <tr>
54
  <td class="plugin-title column-primary">
55
  <div class="wpvivid-storage-form">
56
- <input type="text" class="regular-text" autocomplete="off" option="sftp" name="name" placeholder="Enter a unique alias: e.g. SFTP-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
57
  </div>
58
  </td>
59
  <td class="column-description desc">
60
  <div class="wpvivid-storage-form-desc">
61
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
62
  </div>
63
  </td>
64
  </tr>
65
  <tr>
66
  <td class="plugin-title column-primary">
67
  <div class="wpvivid-storage-form">
68
- <input type="text" class="regular-text" autocomplete="off" option="sftp" name="host" placeholder="Server Address" />
69
  </div>
70
  </td>
71
  <td class="column-description desc">
72
  <div class="wpvivid-storage-form-desc">
73
- <i>Enter the server address.</i>
74
  </div>
75
  </td>
76
  </tr>
77
  <tr>
78
  <td class="plugin-title column-primary">
79
  <div class="wpvivid-storage-form">
80
- <input type="text" class="regular-text" autocomplete="off" option="sftp" name="username" placeholder="User Name" />
81
  </div>
82
  </td>
83
  <td class="column-description desc">
84
  <div class="wpvivid-storage-form-desc">
85
- <i>Enter the user name.</i>
86
  </div>
87
  </td>
88
  </tr>
89
  <tr>
90
  <td class="plugin-title column-primary">
91
  <div class="wpvivid-storage-form">
92
- <input type="password" class="regular-text" autocomplete="new-password" option="sftp" name="password" placeholder="User Password" />
93
  </div>
94
  </td>
95
  <td class="column-description desc">
96
  <div class="wpvivid-storage-form-desc">
97
- <i>Enter the user password.</i>
98
  </div>
99
  </td>
100
  </tr>
101
  <tr>
102
  <td class="plugin-title column-primary">
103
  <div class="wpvivid-storage-form">
104
- <input type="text" class="regular-text" autocomplete="off" option="sftp" name="port" placeholder="Port" onkeyup="value=value.replace(/\D/g,'')" />
105
  </div>
106
  </td>
107
  <td class="column-description desc">
108
  <div class="wpvivid-storage-form-desc">
109
- <i>Enter the server port.</i>
110
  </div>
111
  </td>
112
  </tr>
113
  <tr>
114
  <td class="plugin-title column-primary">
115
  <div class="wpvivid-storage-form">
116
- <input type="text" class="regular-text" autocomplete="off" option="sftp" name="path" placeholder="Absolute path must exist(e.g. /var)" />
117
  </div>
118
  </td>
119
  <td class="column-description desc">
120
  <div class="wpvivid-storage-form-desc">
121
- <i>Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/</i>
122
  </div>
123
  </td>
124
  </tr>
@@ -126,13 +126,13 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
126
  <td class="plugin-title column-primary">
127
  <div class="wpvivid-storage-select">
128
  <label>
129
- <input type="checkbox" option="sftp" name="default" checked />Set as the default remote storage.
130
  </label>
131
  </div>
132
  </td>
133
  <td class="column-description desc">
134
  <div class="wpvivid-storage-form-desc">
135
- <i>Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.</i>
136
  </div>
137
  </td>
138
  </tr>
@@ -140,12 +140,12 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
140
  <tr>
141
  <td class="plugin-title column-primary">
142
  <div class="wpvivid-storage-form">
143
- <input class="button-primary" option="add-remote" type="submit" value="Test and Add" />
144
  </div>
145
  </td>
146
  <td class="column-description desc">
147
  <div class="wpvivid-storage-form-desc">
148
- <i>Click the button to connect to SFTP server and add it to the storage list below.</i>
149
  </div>
150
  </td>
151
  </tr>
@@ -160,7 +160,7 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
160
  ?>
161
  <div id="remote_storage_edit_sftp" class="postbox storage-account-block remote-storage-edit" style="display:none;">
162
  <div style="padding: 0 10px 10px 0;">
163
- <strong>Enter Your SFTP Account</strong>
164
  </div>
165
  <table class="wp-list-table widefat plugins" style="width:100%;">
166
  <tbody>
@@ -168,72 +168,72 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
168
  <tr>
169
  <td class="plugin-title column-primary">
170
  <div class="wpvivid-storage-form">
171
- <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="name" placeholder="Enter a unique alias: e.g. SFTP-001" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
172
  </div>
173
  </td>
174
  <td class="column-description desc">
175
  <div class="wpvivid-storage-form-desc">
176
- <i>A name to help you identify the storage if you have multiple remote storage connected.</i>
177
  </div>
178
  </td>
179
  </tr>
180
  <tr>
181
  <td class="plugin-title column-primary">
182
  <div class="wpvivid-storage-form">
183
- <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="host" placeholder="Server Address" />
184
  </div>
185
  </td>
186
  <td class="column-description desc">
187
  <div class="wpvivid-storage-form-desc">
188
- <i>Enter the server address.</i>
189
  </div>
190
  </td>
191
  </tr>
192
  <tr>
193
  <td class="plugin-title column-primary">
194
  <div class="wpvivid-storage-form">
195
- <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="username" placeholder="User Name" />
196
  </div>
197
  </td>
198
  <td class="column-description desc">
199
  <div class="wpvivid-storage-form-desc">
200
- <i>Enter the user name.</i>
201
  </div>
202
  </td>
203
  </tr>
204
  <tr>
205
  <td class="plugin-title column-primary">
206
  <div class="wpvivid-storage-form">
207
- <input type="password" class="regular-text" autocomplete="new-password" option="edit-sftp" name="password" placeholder="User Password" />
208
  </div>
209
  </td>
210
  <td class="column-description desc">
211
  <div class="wpvivid-storage-form-desc">
212
- <i>Enter the user password.</i>
213
  </div>
214
  </td>
215
  </tr>
216
  <tr>
217
  <td class="plugin-title column-primary">
218
  <div class="wpvivid-storage-form">
219
- <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="port" placeholder="Port" onkeyup="value=value.replace(/\D/g,'')" />
220
  </div>
221
  </td>
222
  <td class="column-description desc">
223
  <div class="wpvivid-storage-form-desc">
224
- <i>Enter the server port.</i>
225
  </div>
226
  </td>
227
  </tr>
228
  <tr>
229
  <td class="plugin-title column-primary">
230
  <div class="wpvivid-storage-form">
231
- <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="path" placeholder="Absolute path must exist(e.g. /var)" />
232
  </div>
233
  </td>
234
  <td class="column-description desc">
235
  <div class="wpvivid-storage-form-desc">
236
- <i>Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/</i>
237
  </div>
238
  </td>
239
  </tr>
@@ -241,12 +241,12 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
241
  <tr>
242
  <td class="plugin-title column-primary">
243
  <div class="wpvivid-storage-form">
244
- <input class="button-primary" option="edit-remote" type="submit" value="Save Changes" />
245
  </div>
246
  </td>
247
  <td class="column-description desc">
248
  <div class="wpvivid-storage-form-desc">
249
- <i>Click the button to save the changes.</i>
250
  </div>
251
  </td>
252
  </tr>
45
  ?>
46
  <div id="storage_account_sftp" class="storage-account-page" style="display:none;">
47
  <div style="padding: 0 10px 10px 0;">
48
+ <strong><?php _e('Enter Your SFTP Account', 'wpvivid'); ?></strong>
49
  </div>
50
  <table class="wp-list-table widefat plugins" style="width:100%;">
51
  <tbody>
53
  <tr>
54
  <td class="plugin-title column-primary">
55
  <div class="wpvivid-storage-form">
56
+ <input type="text" class="regular-text" autocomplete="off" option="sftp" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. SFTP-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
57
  </div>
58
  </td>
59
  <td class="column-description desc">
60
  <div class="wpvivid-storage-form-desc">
61
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
62
  </div>
63
  </td>
64
  </tr>
65
  <tr>
66
  <td class="plugin-title column-primary">
67
  <div class="wpvivid-storage-form">
68
+ <input type="text" class="regular-text" autocomplete="off" option="sftp" name="host" placeholder="<?php esc_attr_e('Server Address', 'wpvivid'); ?>" />
69
  </div>
70
  </td>
71
  <td class="column-description desc">
72
  <div class="wpvivid-storage-form-desc">
73
+ <i><?php _e('Enter the server address.', 'wpvivid'); ?></i>
74
  </div>
75
  </td>
76
  </tr>
77
  <tr>
78
  <td class="plugin-title column-primary">
79
  <div class="wpvivid-storage-form">
80
+ <input type="text" class="regular-text" autocomplete="off" option="sftp" name="username" placeholder="<?php esc_attr_e('User Name', 'wpvivid'); ?>" />
81
  </div>
82
  </td>
83
  <td class="column-description desc">
84
  <div class="wpvivid-storage-form-desc">
85
+ <i><?php _e('Enter the user name.', 'wpvivid'); ?></i>
86
  </div>
87
  </td>
88
  </tr>
89
  <tr>
90
  <td class="plugin-title column-primary">
91
  <div class="wpvivid-storage-form">
92
+ <input type="password" class="regular-text" autocomplete="new-password" option="sftp" name="password" placeholder="<?php esc_attr_e('User Password', 'wpvivid'); ?>" />
93
  </div>
94
  </td>
95
  <td class="column-description desc">
96
  <div class="wpvivid-storage-form-desc">
97
+ <i><?php _e('Enter the user password.', 'wpvivid'); ?></i>
98
  </div>
99
  </td>
100
  </tr>
101
  <tr>
102
  <td class="plugin-title column-primary">
103
  <div class="wpvivid-storage-form">
104
+ <input type="text" class="regular-text" autocomplete="off" option="sftp" name="port" placeholder="<?php esc_attr_e('Port', 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />
105
  </div>
106
  </td>
107
  <td class="column-description desc">
108
  <div class="wpvivid-storage-form-desc">
109
+ <i><?php _e('Enter the server port.', 'wpvivid'); ?></i>
110
  </div>
111
  </td>
112
  </tr>
113
  <tr>
114
  <td class="plugin-title column-primary">
115
  <div class="wpvivid-storage-form">
116
+ <input type="text" class="regular-text" autocomplete="off" option="sftp" name="path" placeholder="<?php esc_attr_e('Absolute path must exist(e.g. /var)', 'wpvivid'); ?>" />
117
  </div>
118
  </td>
119
  <td class="column-description desc">
120
  <div class="wpvivid-storage-form-desc">
121
+ <i><?php _e('Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/', 'wpvivid'); ?></i>
122
  </div>
123
  </td>
124
  </tr>
126
  <td class="plugin-title column-primary">
127
  <div class="wpvivid-storage-select">
128
  <label>
129
+ <input type="checkbox" option="sftp" name="default" checked /><?php _e('Set as the default remote storage.', 'wpvivid'); ?>
130
  </label>
131
  </div>
132
  </td>
133
  <td class="column-description desc">
134
  <div class="wpvivid-storage-form-desc">
135
+ <i><?php _e('Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default.', 'wpvivid'); ?></i>
136
  </div>
137
  </td>
138
  </tr>
140
  <tr>
141
  <td class="plugin-title column-primary">
142
  <div class="wpvivid-storage-form">
143
+ <input class="button-primary" option="add-remote" type="submit" value="<?php esc_attr_e('Test and Add', 'wpvivid'); ?>" />
144
  </div>
145
  </td>
146
  <td class="column-description desc">
147
  <div class="wpvivid-storage-form-desc">
148
+ <i><?php _e('Click the button to connect to SFTP server and add it to the storage list below.', 'wpvivid'); ?></i>
149
  </div>
150
  </td>
151
  </tr>
160
  ?>
161
  <div id="remote_storage_edit_sftp" class="postbox storage-account-block remote-storage-edit" style="display:none;">
162
  <div style="padding: 0 10px 10px 0;">
163
+ <strong><?php _e('Enter Your SFTP Account', 'wpvivid'); ?></strong>
164
  </div>
165
  <table class="wp-list-table widefat plugins" style="width:100%;">
166
  <tbody>
168
  <tr>
169
  <td class="plugin-title column-primary">
170
  <div class="wpvivid-storage-form">
171
+ <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="name" placeholder="<?php esc_attr_e('Enter a unique alias: e.g. SFTP-001', 'wpvivid'); ?>" onkeyup="value=value.replace(/[^a-zA-Z0-9\-_]/g,'')" />
172
  </div>
173
  </td>
174
  <td class="column-description desc">
175
  <div class="wpvivid-storage-form-desc">
176
+ <i><?php _e('A name to help you identify the storage if you have multiple remote storage connected.', 'wpvivid'); ?></i>
177
  </div>
178
  </td>
179
  </tr>
180
  <tr>
181
  <td class="plugin-title column-primary">
182
  <div class="wpvivid-storage-form">
183
+ <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="host" placeholder="<?php esc_attr_e('Server Address', 'wpvivid'); ?>" />
184
  </div>
185
  </td>
186
  <td class="column-description desc">
187
  <div class="wpvivid-storage-form-desc">
188
+ <i><?php _e('Enter the server address.', 'wpvivid'); ?></i>
189
  </div>
190
  </td>
191
  </tr>
192
  <tr>
193
  <td class="plugin-title column-primary">
194
  <div class="wpvivid-storage-form">
195
+ <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="username" placeholder="<?php esc_attr_e('User Name', 'wpvivid'); ?>" />
196
  </div>
197
  </td>
198
  <td class="column-description desc">
199
  <div class="wpvivid-storage-form-desc">
200
+ <i><?php _e('Enter the user name.', 'wpvivid'); ?></i>
201
  </div>
202
  </td>
203
  </tr>
204
  <tr>
205
  <td class="plugin-title column-primary">
206
  <div class="wpvivid-storage-form">
207
+ <input type="password" class="regular-text" autocomplete="new-password" option="edit-sftp" name="password" placeholder="<?php esc_attr_e('User Password', 'wpvivid'); ?>" />
208
  </div>
209
  </td>
210
  <td class="column-description desc">
211
  <div class="wpvivid-storage-form-desc">
212
+ <i><?php _e('Enter the user password.', 'wpvivid'); ?></i>
213
  </div>
214
  </td>
215
  </tr>
216
  <tr>
217
  <td class="plugin-title column-primary">
218
  <div class="wpvivid-storage-form">
219
+ <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="port" placeholder="<?php esc_attr_e('Port', 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />
220
  </div>
221
  </td>
222
  <td class="column-description desc">
223
  <div class="wpvivid-storage-form-desc">
224
+ <i><?php _e('Enter the server port.', 'wpvivid'); ?></i>
225
  </div>
226
  </td>
227
  </tr>
228
  <tr>
229
  <td class="plugin-title column-primary">
230
  <div class="wpvivid-storage-form">
231
+ <input type="text" class="regular-text" autocomplete="off" option="edit-sftp" name="path" placeholder="<?php esc_attr_e('Absolute path must exist(e.g. /var)', 'wpvivid'); ?>" />
232
  </div>
233
  </td>
234
  <td class="column-description desc">
235
  <div class="wpvivid-storage-form-desc">
236
+ <i><?php _e('Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/', 'wpvivid'); ?></i>
237
  </div>
238
  </td>
239
  </tr>
241
  <tr>
242
  <td class="plugin-title column-primary">
243
  <div class="wpvivid-storage-form">
244
+ <input class="button-primary" option="edit-remote" type="submit" value="<?php esc_attr_e('Save Changes', 'wpvivid'); ?>" />
245
  </div>
246
  </td>
247
  <td class="column-description desc">
248
  <div class="wpvivid-storage-form-desc">
249
+ <i><?php _e('Click the button to save the changes.', 'wpvivid'); ?></i>
250
  </div>
251
  </td>
252
  </tr>
languages/wpvivid.pot CHANGED
@@ -0,0 +1,2186 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: wpvivid backup plugin\n"
4
+ "Last-Translator: Team WPvivid <support@wpvivid.com>\n"
5
+ "Language-Team: Team WPvivid <support@wpvivid.com>\n"
6
+ "MIME-Version: 1.0\n"
7
+ "Content-Type: text/plain; charset=UTF-8\n"
8
+ "Content-Transfer-Encoding: 8bit\n"
9
+ "X-Poedit-KeywordsList: __;_e;esc_attr;esc_attr_e\n"
10
+ "X-Poedit-Basepath: ..\n"
11
+ "Plural-Forms: nplurals=2; plural=(n!=1);\n"
12
+ "X-Poedit-SourceCharset: utf-8\n"
13
+ "X-Poedit-SearchPath-0: .\n"
14
+
15
+ #: admin/class-wpvivid-admin.php:100
16
+ #: admin/class-wpvivid-admin.php:114
17
+ #: admin/class-wpvivid-admin.php:635
18
+ msgid "Backup & Restore"
19
+ msgstr ""
20
+
21
+ #: admin/class-wpvivid-admin.php:123
22
+ #: admin/class-wpvivid-admin.php:313
23
+ #: admin/class-wpvivid-admin.php:653
24
+ msgid "Settings"
25
+ msgstr ""
26
+
27
+ #: admin/class-wpvivid-admin.php:139
28
+ msgid "Current Version:"
29
+ msgstr ""
30
+
31
+ #: admin/class-wpvivid-admin.php:142
32
+ msgid "ChangeLog"
33
+ msgstr ""
34
+
35
+ #: admin/class-wpvivid-admin.php:149
36
+ msgid "Troubleshooting"
37
+ msgstr ""
38
+
39
+ #: admin/class-wpvivid-admin.php:154
40
+ msgid "Read <a href=\"https://wpvivid.com/troubleshooting-issues-wpvivid-backup-plugin\" target=\"_blank\">Troubleshooting page</a> for faster solutions."
41
+ msgstr ""
42
+
43
+ #: admin/class-wpvivid-admin.php:157
44
+ msgid "Adjust <a href=\"https://wpvivid.com/wpvivid-backup-plugin-advanced-settings.html\" target=\"_blank\">Advanced Settings</a> for higher task success rate."
45
+ msgstr ""
46
+
47
+ #: admin/class-wpvivid-admin.php:164
48
+ msgid "How-to"
49
+ msgstr ""
50
+
51
+ #: admin/class-wpvivid-admin.php:168
52
+ msgid "WPvivid Backup Settings"
53
+ msgstr ""
54
+
55
+ #: admin/class-wpvivid-admin.php:169
56
+ msgid "Create a Manual Backup"
57
+ msgstr ""
58
+
59
+ #: admin/class-wpvivid-admin.php:170
60
+ msgid "Restore Your Site from a Backup"
61
+ msgstr ""
62
+
63
+ #: admin/class-wpvivid-admin.php:171
64
+ msgid "Migrate WordPress"
65
+ msgstr ""
66
+
67
+ #: admin/class-wpvivid-admin.php:209
68
+ msgid "Warning:"
69
+ msgstr ""
70
+
71
+ #: admin/class-wpvivid-admin.php:210
72
+ msgid "Error:"
73
+ msgstr ""
74
+
75
+ #: admin/class-wpvivid-admin.php:211
76
+ msgid "Warning: An alias for remote storage is required."
77
+ msgstr ""
78
+
79
+ #: admin/class-wpvivid-admin.php:212
80
+ msgid "Warning: The alias already exists in storage list."
81
+ msgstr ""
82
+
83
+ #: admin/class-wpvivid-admin.php:213
84
+ msgid "Calculating the size of files, folder and database timed out. If you continue to receive this error, please go to the plugin settings, uncheck 'Calculate the size of files, folder and database before backing up', save changes, then try again."
85
+ msgstr ""
86
+
87
+ #: admin/class-wpvivid-admin.php:346
88
+ msgid "Migration is complete and htaccess file is replaced. In order to successfully complete the migration, you'd better reinstall 301 redirect plugin, firewall and security plugin, and caching plugin if they exist."
89
+ msgstr ""
90
+
91
+ #: admin/class-wpvivid-admin.php:361
92
+ msgid "Cheers! WPvivid Backup plugin has restored successfully your website. If you found WPvivid Backup plugin helpful, a 5-star rating would be highly appreciated, which motivates us to keep providing new features."
93
+ msgstr ""
94
+
95
+ #: admin/class-wpvivid-admin.php:367
96
+ msgid "Restore completed successfully."
97
+ msgstr ""
98
+
99
+ #: admin/class-wpvivid-admin.php:454
100
+ #: admin/class-wpvivid-admin.php:471
101
+ msgid "Rate Us"
102
+ msgstr ""
103
+
104
+ #: admin/class-wpvivid-admin.php:455
105
+ #: admin/class-wpvivid-admin.php:472
106
+ msgid "Maybe Later"
107
+ msgstr ""
108
+
109
+ #: admin/class-wpvivid-admin.php:456
110
+ #: admin/class-wpvivid-admin.php:473
111
+ msgid "Never"
112
+ msgstr ""
113
+
114
+ #: admin/class-wpvivid-admin.php:509
115
+ msgid "As Amazon S3 and DigitalOcean Space have upgraded their connection methods, please delete the previous connections and re-add your Amazon S3/DigitalOcean Space accounts to make sure the connections work."
116
+ msgstr ""
117
+
118
+ #: admin/class-wpvivid-admin.php:561
119
+ #, php-format
120
+ msgid "The %s extension is not detected. Please install the extension first."
121
+ msgstr ""
122
+
123
+ #: admin/class-wpvivid-admin.php:564
124
+ #, php-format
125
+ msgid "The %s extensions are not detected. Please install the extensions first."
126
+ msgstr ""
127
+
128
+ #: admin/class-wpvivid-admin.php:570
129
+ msgid "Class PclZip is not detected. Please update or reinstall your WordPress."
130
+ msgstr ""
131
+
132
+ #: admin/class-wpvivid-admin.php:575
133
+ msgid "In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false."
134
+ msgstr ""
135
+
136
+ #: admin/class-wpvivid-admin.php:641
137
+ msgid "Schedule"
138
+ msgstr ""
139
+
140
+ #: admin/class-wpvivid-admin.php:647
141
+ msgid "Remote Storage"
142
+ msgstr ""
143
+
144
+ #: admin/class-wpvivid-admin.php:659
145
+ msgid "Debug"
146
+ msgstr ""
147
+
148
+ #: admin/class-wpvivid-admin.php:665
149
+ msgid "Logs"
150
+ msgstr ""
151
+
152
+ #: admin/class-wpvivid-admin.php:672
153
+ #: admin/partials/wpvivid-backup-restore-page-display.php:130
154
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1505
155
+ msgid "Log"
156
+ msgstr ""
157
+
158
+ #: admin/class-wpvivid-admin.php:683
159
+ msgid "MainWP"
160
+ msgstr ""
161
+
162
+ #: admin/class-wpvivid-admin.php:693
163
+ msgid "Premium"
164
+ msgstr ""
165
+
166
+ #: admin/class-wpvivid-admin.php:735
167
+ #: admin/class-wpvivid-admin.php:822
168
+ #: admin/partials/wpvivid-remote-storage-page-display.php:48
169
+ msgid "Save Changes"
170
+ msgstr ""
171
+
172
+ #: admin/class-wpvivid-admin.php:870
173
+ msgid "There are two ways available to send us the debug information. The first one is recommended."
174
+ msgstr ""
175
+
176
+ #: admin/class-wpvivid-admin.php:872
177
+ msgid "Method 1."
178
+ msgstr ""
179
+
180
+ #: admin/class-wpvivid-admin.php:872
181
+ msgid "If you have configured SMTP on your site, enter your email address and click the button below to send us the relevant information (website info and errors logs) when you are encountering errors. This will help us figure out what happened. Once the issue is resolved, we will inform you by your email address."
182
+ msgstr ""
183
+
184
+ #: admin/class-wpvivid-admin.php:875
185
+ msgid "WPvivid support email:"
186
+ msgstr ""
187
+
188
+ #: admin/class-wpvivid-admin.php:876
189
+ msgid "Your email:"
190
+ msgstr ""
191
+
192
+ #: admin/class-wpvivid-admin.php:881
193
+ msgid "I am using:"
194
+ msgstr ""
195
+
196
+ #: admin/class-wpvivid-admin.php:893
197
+ msgid "My web hosting provider is:"
198
+ msgstr ""
199
+
200
+ #: admin/class-wpvivid-admin.php:902
201
+ msgid "Please describe your problem here."
202
+ msgstr ""
203
+
204
+ #: admin/class-wpvivid-admin.php:905
205
+ msgid "Send Debug Information to Us"
206
+ msgstr ""
207
+
208
+ #: admin/class-wpvivid-admin.php:909
209
+ msgid "Method 2."
210
+ msgstr ""
211
+
212
+ #: admin/class-wpvivid-admin.php:909
213
+ msgid "If you didn’t configure SMTP on your site, click the button below to download the relevant information (website info and error logs) to your PC when you are encountering some errors. Sending the files to us will help us diagnose what happened."
214
+ msgstr ""
215
+
216
+ #: admin/class-wpvivid-admin.php:912
217
+ #: admin/partials/wpvivid-backup-restore-page-display.php:178
218
+ msgid "Download"
219
+ msgstr ""
220
+
221
+ #: admin/class-wpvivid-admin.php:916
222
+ msgid "Website Info Key"
223
+ msgstr ""
224
+
225
+ #: admin/class-wpvivid-admin.php:917
226
+ msgid "Website Info Value"
227
+ msgstr ""
228
+
229
+ #: admin/class-wpvivid-admin.php:1030
230
+ msgid "Date"
231
+ msgstr ""
232
+
233
+ #: admin/class-wpvivid-admin.php:1031
234
+ msgid "Log Type"
235
+ msgstr ""
236
+
237
+ #: admin/class-wpvivid-admin.php:1032
238
+ msgid "Log File Name"
239
+ msgstr ""
240
+
241
+ #: admin/class-wpvivid-admin.php:1033
242
+ msgid "Action"
243
+ msgstr ""
244
+
245
+ #: admin/class-wpvivid-admin.php:1045
246
+ msgid " < Pre page "
247
+ msgstr ""
248
+
249
+ #: admin/class-wpvivid-admin.php:1056
250
+ msgid " Next page > "
251
+ msgstr ""
252
+
253
+ #: admin/class-wpvivid-admin.php:1164
254
+ msgid "If you are a MainWP user, you can set up and control WPvivid Backup Free and Pro for every child site directly from your MainWP dashboard, using our WPvivid Backup for MainWP extension."
255
+ msgstr ""
256
+
257
+ #: admin/class-wpvivid-admin.php:1167
258
+ msgid "Download WPvivid Backup for MainWP"
259
+ msgstr ""
260
+
261
+ #: admin/class-wpvivid-admin.php:1170
262
+ msgid "1. Create and download backups for a specific child site"
263
+ msgstr ""
264
+
265
+ #: admin/class-wpvivid-admin.php:1173
266
+ msgid "2. Set backup schedules for all child sites"
267
+ msgstr ""
268
+
269
+ #: admin/class-wpvivid-admin.php:1177
270
+ msgid "3. Set WPvivid Backup Free and Pro settings for all child sites"
271
+ msgstr ""
272
+
273
+ #: admin/class-wpvivid-admin.php:1182
274
+ msgid "4. Install, claim and update WPvivid Backup Pro for child sites in bulk"
275
+ msgstr ""
276
+
277
+ #: admin/class-wpvivid-admin.php:1187
278
+ msgid "5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)"
279
+ msgstr ""
280
+
281
+ #: admin/class-wpvivid-admin.php:1192
282
+ #, php-format
283
+ msgid "We also offer a 40% off discount on WPvivid Backup Pro for MainWP users."
284
+ msgstr ""
285
+
286
+ #: admin/class-wpvivid-admin.php:1196
287
+ msgid "Ask For A 40% OFF Discount"
288
+ msgstr ""
289
+
290
+ #: admin/class-wpvivid-admin.php:1219
291
+ msgid "Pro Version Features"
292
+ msgstr ""
293
+
294
+ #: admin/class-wpvivid-admin.php:1220
295
+ msgid "Basic"
296
+ msgstr ""
297
+
298
+ #: admin/class-wpvivid-admin.php:1221
299
+ msgid "Freelancer"
300
+ msgstr ""
301
+
302
+ #: admin/class-wpvivid-admin.php:1222
303
+ msgid "Ultimate"
304
+ msgstr ""
305
+
306
+ #: admin/class-wpvivid-admin.php:1228
307
+ msgid "Websites"
308
+ msgstr ""
309
+
310
+ #: admin/class-wpvivid-admin.php:1229
311
+ #: admin/class-wpvivid-admin.php:1230
312
+ #: admin/class-wpvivid-admin.php:1231
313
+ #: admin/class-wpvivid-admin.php:1232
314
+ msgid "Backup:"
315
+ msgstr ""
316
+
317
+ #: admin/class-wpvivid-admin.php:1229
318
+ #: admin/class-wpvivid-admin.php:1233
319
+ msgid "Custom Content"
320
+ msgstr ""
321
+
322
+ #: admin/class-wpvivid-admin.php:1230
323
+ msgid "Incremental Backup"
324
+ msgstr ""
325
+
326
+ #: admin/class-wpvivid-admin.php:1231
327
+ msgid "Create a restore point"
328
+ msgstr ""
329
+
330
+ #: admin/class-wpvivid-admin.php:1232
331
+ msgid "Include/exclude files/folders"
332
+ msgstr ""
333
+
334
+ #: admin/class-wpvivid-admin.php:1233
335
+ #: admin/class-wpvivid-admin.php:1234
336
+ msgid "Migration:"
337
+ msgstr ""
338
+
339
+ #: admin/class-wpvivid-admin.php:1234
340
+ msgid "Migration via remote storage"
341
+ msgstr ""
342
+
343
+ #: admin/class-wpvivid-admin.php:1235
344
+ #: admin/class-wpvivid-admin.php:1236
345
+ msgid "Remote Storage:"
346
+ msgstr ""
347
+
348
+ #: admin/class-wpvivid-admin.php:1235
349
+ msgid "Custom Directory (leading cloud storage providers)"
350
+ msgstr ""
351
+
352
+ #: admin/class-wpvivid-admin.php:1236
353
+ msgid "WASABI/Pcloud (Only Pro)"
354
+ msgstr ""
355
+
356
+ #: admin/class-wpvivid-admin.php:1237
357
+ #: admin/class-wpvivid-admin.php:1238
358
+ #: admin/class-wpvivid-admin.php:1239
359
+ #: admin/class-wpvivid-admin.php:1240
360
+ msgid "Schedule:"
361
+ msgstr ""
362
+
363
+ #: admin/class-wpvivid-admin.php:1237
364
+ msgid "Incremental Backup Schedule"
365
+ msgstr ""
366
+
367
+ #: admin/class-wpvivid-admin.php:1238
368
+ msgid "Custom Timezone"
369
+ msgstr ""
370
+
371
+ #: admin/class-wpvivid-admin.php:1239
372
+ msgid "Custom content for each schedule"
373
+ msgstr ""
374
+
375
+ #: admin/class-wpvivid-admin.php:1240
376
+ msgid "Custom start time of schedule"
377
+ msgstr ""
378
+
379
+ #: admin/class-wpvivid-admin.php:1241
380
+ #: admin/class-wpvivid-admin.php:1242
381
+ msgid "Restore:"
382
+ msgstr ""
383
+
384
+ #: admin/class-wpvivid-admin.php:1241
385
+ msgid "Restore a website from remote storage"
386
+ msgstr ""
387
+
388
+ #: admin/class-wpvivid-admin.php:1242
389
+ msgid "Restore what you want from a backup"
390
+ msgstr ""
391
+
392
+ #: admin/class-wpvivid-admin.php:1243
393
+ msgid "Email Reports:"
394
+ msgstr ""
395
+
396
+ #: admin/class-wpvivid-admin.php:1243
397
+ msgid "Send email reports to multiple email addresses"
398
+ msgstr ""
399
+
400
+ #: admin/class-wpvivid-admin.php:1244
401
+ #: admin/class-wpvivid-admin.php:1245
402
+ msgid "Staging (add-on):"
403
+ msgstr ""
404
+
405
+ #: admin/class-wpvivid-admin.php:1244
406
+ msgid "Create a sub-directory staging site with one-click"
407
+ msgstr ""
408
+
409
+ #: admin/class-wpvivid-admin.php:1245
410
+ msgid "Publish a staging site to a live site with one-click"
411
+ msgstr ""
412
+
413
+ #: admin/class-wpvivid-admin.php:1246
414
+ msgid "Roles & Capabilities (add-on):"
415
+ msgstr ""
416
+
417
+ #: admin/class-wpvivid-admin.php:1246
418
+ msgid "Display the individual sections according to user roles & capabilities"
419
+ msgstr ""
420
+
421
+ #: admin/class-wpvivid-admin.php:1247
422
+ msgid "Support:"
423
+ msgstr ""
424
+
425
+ #: admin/class-wpvivid-admin.php:1247
426
+ msgid "Ticket 7x24 support"
427
+ msgstr ""
428
+
429
+ #: admin/class-wpvivid-admin.php:1250
430
+ msgid "Up to 3 sites"
431
+ msgstr ""
432
+
433
+ #: admin/class-wpvivid-admin.php:1272
434
+ msgid "Up to 100 sites"
435
+ msgstr ""
436
+
437
+ #: admin/class-wpvivid-admin.php:1294
438
+ msgid "Unlimited"
439
+ msgstr ""
440
+
441
+ #: admin/class-wpvivid-admin.php:1319
442
+ msgid "*No credit card needed. Trial starts with the Free Trial plan with 2 sites. You can choose a plan at the end of the trial."
443
+ msgstr ""
444
+
445
+ #: admin/class-wpvivid-admin.php:1320
446
+ msgid "START 14-DAY FREE TRIAL"
447
+ msgstr ""
448
+
449
+ #: admin/partials/wpvivid-admin-display.php:49
450
+ msgid "WPvivid Backup Plugin"
451
+ msgstr ""
452
+
453
+ #: admin/partials/wpvivid-admin-display.php:63
454
+ msgid "Warning: There is no default remote storage available for the scheduled backups, please set up it first."
455
+ msgstr ""
456
+
457
+ #: admin/partials/wpvivid-backup-restore-page-display.php:7
458
+ #: admin/partials/wpvivid-schedule-page-display.php:126
459
+ msgid "Database + Files (WordPress Files)"
460
+ msgstr ""
461
+
462
+ #: admin/partials/wpvivid-backup-restore-page-display.php:11
463
+ #: admin/partials/wpvivid-schedule-page-display.php:131
464
+ msgid "WordPress Files (Exclude Database)"
465
+ msgstr ""
466
+
467
+ #: admin/partials/wpvivid-backup-restore-page-display.php:15
468
+ #: admin/partials/wpvivid-schedule-page-display.php:136
469
+ msgid "Only Database"
470
+ msgstr ""
471
+
472
+ #: admin/partials/wpvivid-backup-restore-page-display.php:20
473
+ msgid "Create a staging site"
474
+ msgstr ""
475
+
476
+ #: admin/partials/wpvivid-backup-restore-page-display.php:23
477
+ #: admin/partials/wpvivid-backup-restore-page-display.php:32
478
+ #: admin/partials/wpvivid-schedule-page-display.php:24
479
+ #: admin/partials/wpvivid-schedule-page-display.php:36
480
+ #: admin/partials/wpvivid-schedule-page-display.php:98
481
+ #: admin/partials/wpvivid-schedule-page-display.php:146
482
+ msgid "Pro feature: learn more"
483
+ msgstr ""
484
+
485
+ #: admin/partials/wpvivid-backup-restore-page-display.php:29
486
+ #: admin/partials/wpvivid-schedule-page-display.php:142
487
+ msgid "Custom"
488
+ msgstr ""
489
+
490
+ #: admin/partials/wpvivid-backup-restore-page-display.php:100
491
+ msgid "About backup download"
492
+ msgstr ""
493
+
494
+ #: admin/partials/wpvivid-backup-restore-page-display.php:102
495
+ msgid "->If backups are stored in remote storage, our plugin will retrieve the backup to your web server first. This may take a little time depending on the size of backup files. Please be patient. Then you can download them to your PC."
496
+ msgstr ""
497
+
498
+ #: admin/partials/wpvivid-backup-restore-page-display.php:103
499
+ msgid "->If backups are stored in web server, the plugin will list all relevant files immediately."
500
+ msgstr ""
501
+
502
+ #: admin/partials/wpvivid-backup-restore-page-display.php:109
503
+ msgid "How to restore your website from a backup(scheduled, manual, uploaded and received backup)"
504
+ msgstr ""
505
+
506
+ #: admin/partials/wpvivid-backup-restore-page-display.php:123
507
+ msgid "Backups"
508
+ msgstr ""
509
+
510
+ #: admin/partials/wpvivid-backup-restore-page-display.php:141
511
+ #: admin/partials/wpvivid-backup-restore-page-display.php:179
512
+ #: admin/partials/wpvivid-backup-restore-page-display.php:892
513
+ msgid "Restore"
514
+ msgstr ""
515
+
516
+ #: admin/partials/wpvivid-backup-restore-page-display.php:176
517
+ msgid "Backup"
518
+ msgstr ""
519
+
520
+ #: admin/partials/wpvivid-backup-restore-page-display.php:177
521
+ msgid "Storage"
522
+ msgstr ""
523
+
524
+ #: admin/partials/wpvivid-backup-restore-page-display.php:180
525
+ msgid "Delete"
526
+ msgstr ""
527
+
528
+ #: admin/partials/wpvivid-backup-restore-page-display.php:193
529
+ msgid "Delete the selected backups"
530
+ msgstr ""
531
+
532
+ #: admin/partials/wpvivid-backup-restore-page-display.php:725
533
+ msgid "This backup is locked, are you sure to remove it? This backup will be deleted permanently from your hosting (localhost) and remote storages."
534
+ msgstr ""
535
+
536
+ #: admin/partials/wpvivid-backup-restore-page-display.php:729
537
+ msgid "Are you sure to remove this backup? This backup will be deleted permanently from your hosting (localhost) and remote storages."
538
+ msgstr ""
539
+
540
+ #: admin/partials/wpvivid-backup-restore-page-display.php:734
541
+ msgid "This request will delete the backup being downloaded, are you sure you want to continue?"
542
+ msgstr ""
543
+
544
+ #: admin/partials/wpvivid-backup-restore-page-display.php:773
545
+ msgid "Please select at least one item."
546
+ msgstr ""
547
+
548
+ #: admin/partials/wpvivid-backup-restore-page-display.php:778
549
+ msgid "This request might delete the backup being downloaded, are you sure you want to continue?"
550
+ msgstr ""
551
+
552
+ #: admin/partials/wpvivid-backup-restore-page-display.php:781
553
+ msgid "Are you sure to remove the selected backups? These backups will be deleted permanently from your hosting (localhost)."
554
+ msgstr ""
555
+
556
+ #: admin/partials/wpvivid-backup-restore-page-display.php:842
557
+ msgid "Step One: In the backup list, click the 'Restore' button on the backup you want to restore. This will bring up the restore tab"
558
+ msgstr ""
559
+
560
+ #: admin/partials/wpvivid-backup-restore-page-display.php:843
561
+ msgid "Step Two: Choose an option to complete restore, if any"
562
+ msgstr ""
563
+
564
+ #: admin/partials/wpvivid-backup-restore-page-display.php:844
565
+ msgid "Step Three: Click 'Restore' button"
566
+ msgstr ""
567
+
568
+ #: admin/partials/wpvivid-backup-restore-page-display.php:877
569
+ msgid "Restore backup from:"
570
+ msgstr ""
571
+
572
+ #: admin/partials/wpvivid-backup-restore-page-display.php:878
573
+ msgid "Please do not close the page or switch to other pages when a restore task is running, as it could trigger some unexpected errors."
574
+ msgstr ""
575
+
576
+ #: admin/partials/wpvivid-backup-restore-page-display.php:879
577
+ msgid "Restore function will replace the current site's themes, plugins, uploads, database and/or other content directories with the existing equivalents in the selected backup."
578
+ msgstr ""
579
+
580
+ #: admin/partials/wpvivid-backup-restore-page-display.php:882
581
+ #, php-format
582
+ msgid "Restore and replace the original domain (URL) with %s (migration)"
583
+ msgstr ""
584
+
585
+ #: admin/partials/wpvivid-backup-restore-page-display.php:885
586
+ msgid "Restore and keep the original domain (URL) unchanged"
587
+ msgstr ""
588
+
589
+ #: admin/partials/wpvivid-backup-restore-page-display.php:889
590
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1787
591
+ msgid "Tips:"
592
+ msgstr ""
593
+
594
+ #: admin/partials/wpvivid-backup-restore-page-display.php:889
595
+ msgid "The plugin detects automatically either site restoration or migration (replacing the domain name) based on the current domain name. If the domain name in backup file is same as the current one, it starts restoring. On the contrary, restoring backup means to replace with the current domain name. The precondition is that the backup is created by version 0.9.21 or later."
596
+ msgstr ""
597
+
598
+ #: admin/partials/wpvivid-backup-restore-page-display.php:893
599
+ msgid "Terminate"
600
+ msgstr ""
601
+
602
+ #: admin/partials/wpvivid-backup-restore-page-display.php:894
603
+ msgid "Rollback"
604
+ msgstr ""
605
+
606
+ #: admin/partials/wpvivid-backup-restore-page-display.php:896
607
+ msgid "Retrieve the backup to localhost"
608
+ msgstr ""
609
+
610
+ #: admin/partials/wpvivid-backup-restore-page-display.php:897
611
+ msgid "The backup is stored on the remote storage, click on the button to download it to localhost."
612
+ msgstr ""
613
+
614
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1489
615
+ msgid "Database Size:"
616
+ msgstr ""
617
+
618
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1490
619
+ msgid "File Size:"
620
+ msgstr ""
621
+
622
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1493
623
+ #: admin/partials/wpvivid-settings-page-display.php:291
624
+ msgid "Total Size:"
625
+ msgstr ""
626
+
627
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1494
628
+ msgid "Uploaded:"
629
+ msgstr ""
630
+
631
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1495
632
+ msgid "Speed:"
633
+ msgstr ""
634
+
635
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1498
636
+ msgid "Network Connection:"
637
+ msgstr ""
638
+
639
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1504
640
+ msgid "Cancel"
641
+ msgstr ""
642
+
643
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1557
644
+ msgid "Back Up Manually"
645
+ msgstr ""
646
+
647
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1559
648
+ msgid "Export Content"
649
+ msgstr ""
650
+
651
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1560
652
+ msgid "new feature"
653
+ msgstr ""
654
+
655
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1563
656
+ msgid "Local Storage Directory:"
657
+ msgstr ""
658
+
659
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1565
660
+ msgid "rename directory"
661
+ msgstr ""
662
+
663
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1594
664
+ msgid "Save Backups to Local"
665
+ msgstr ""
666
+
667
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1598
668
+ msgid "Send Backup to Remote Storage:"
669
+ msgstr ""
670
+
671
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1611
672
+ msgid "Backup Now"
673
+ msgstr ""
674
+
675
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1616
676
+ msgid "This backup can only be deleted manually"
677
+ msgstr ""
678
+
679
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1787
680
+ msgid "The settings are only for manual backup, which won't affect schedule settings."
681
+ msgstr ""
682
+
683
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1806
684
+ msgid "Backup Schedule"
685
+ msgstr ""
686
+
687
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1808
688
+ msgid "Schedule Status: "
689
+ msgstr ""
690
+
691
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1810
692
+ msgid "Server Time: "
693
+ msgstr ""
694
+
695
+ #: admin/partials/wpvivid-backup-restore-page-display.php:1812
696
+ msgid "Next Backup: "
697
+ msgstr ""
698
+
699
+ #: admin/partials/wpvivid-remote-storage-page-display.php:6
700
+ #: admin/partials/wpvivid-remote-storage-page-display.php:318
701
+ msgid "Storages"
702
+ msgstr ""
703
+
704
+ #: admin/partials/wpvivid-remote-storage-page-display.php:14
705
+ #: admin/partials/wpvivid-remote-storage-page-display.php:320
706
+ msgid "Storage Edit"
707
+ msgstr ""
708
+
709
+ #: admin/partials/wpvivid-remote-storage-page-display.php:26
710
+ #: admin/partials/wpvivid-remote-storage-page-display.php:327
711
+ msgid "Please choose one storage to save your backups (remote storage)"
712
+ msgstr ""
713
+
714
+ #: admin/partials/wpvivid-remote-storage-page-display.php:34
715
+ #: admin/partials/wpvivid-remote-storage-page-display.php:335
716
+ msgid "Storage Provider"
717
+ msgstr ""
718
+
719
+ #: admin/partials/wpvivid-remote-storage-page-display.php:35
720
+ #: admin/partials/wpvivid-remote-storage-page-display.php:336
721
+ msgid "Remote Storage Alias"
722
+ msgstr ""
723
+
724
+ #: admin/partials/wpvivid-remote-storage-page-display.php:36
725
+ #: admin/partials/wpvivid-remote-storage-page-display.php:337
726
+ msgid "Actions"
727
+ msgstr ""
728
+
729
+ #: admin/partials/wpvivid-schedule-page-display.php:7
730
+ msgid "Schedule Settings"
731
+ msgstr ""
732
+
733
+ #: admin/partials/wpvivid-schedule-page-display.php:15
734
+ msgid "Enable backup schedule"
735
+ msgstr ""
736
+
737
+ #: admin/partials/wpvivid-schedule-page-display.php:20
738
+ msgid "Enable Incremental Backup"
739
+ msgstr ""
740
+
741
+ #: admin/partials/wpvivid-schedule-page-display.php:32
742
+ msgid "Advanced Schedule"
743
+ msgstr ""
744
+
745
+ #: admin/partials/wpvivid-schedule-page-display.php:85
746
+ msgid "Highlighted icon illuminates that you have choosed a remote storage to store backups"
747
+ msgstr ""
748
+
749
+ #: admin/partials/wpvivid-schedule-page-display.php:95
750
+ msgid "+ Add another schedule"
751
+ msgstr ""
752
+
753
+ #: admin/partials/wpvivid-schedule-page-display.php:117
754
+ msgid "Scheduled job will start at <strong>UTC</strong> time:"
755
+ msgstr ""
756
+
757
+ #: admin/partials/wpvivid-schedule-page-display.php:118
758
+ msgid "Being subjected to mechanisms of PHP, a scheduled backup task for your site will be triggered only when the site receives at least a visit at any page."
759
+ msgstr ""
760
+
761
+ #: admin/partials/wpvivid-settings-page-display.php:88
762
+ msgid "backups retained"
763
+ msgstr ""
764
+
765
+ #: admin/partials/wpvivid-settings-page-display.php:88
766
+ msgid "Pro feature: Retain more backups"
767
+ msgstr ""
768
+
769
+ #: admin/partials/wpvivid-settings-page-display.php:93
770
+ msgid "Calculate the size of files, folder and database before backing up"
771
+ msgstr ""
772
+
773
+ #: admin/partials/wpvivid-settings-page-display.php:99
774
+ msgid "Show WPvivid backup plugin on top admin bar"
775
+ msgstr ""
776
+
777
+ #: admin/partials/wpvivid-settings-page-display.php:105
778
+ msgid "Merge all the backup files into single package when a backup completes. This will save great disk spaces, though takes longer time. We recommended you check the option especially on sites with insufficient server resources."
779
+ msgstr ""
780
+
781
+ #: admin/partials/wpvivid-settings-page-display.php:111
782
+ msgid "Keep storing the backups in localhost after uploading to remote storage"
783
+ msgstr ""
784
+
785
+ #: admin/partials/wpvivid-settings-page-display.php:116
786
+ msgid "Backup Folder"
787
+ msgstr ""
788
+
789
+ #: admin/partials/wpvivid-settings-page-display.php:118
790
+ msgid "Name your folder, this folder must be writable for creating backup files."
791
+ msgstr ""
792
+
793
+ #: admin/partials/wpvivid-settings-page-display.php:120
794
+ msgid "Local storage directory:"
795
+ msgstr ""
796
+
797
+ #: admin/partials/wpvivid-settings-page-display.php:125
798
+ msgid "Display domain(url) of current site in backup name. (e.g. domain_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)"
799
+ msgstr ""
800
+
801
+ #: admin/partials/wpvivid-settings-page-display.php:130
802
+ msgid "Remove out-of-date backups"
803
+ msgstr ""
804
+
805
+ #: admin/partials/wpvivid-settings-page-display.php:134
806
+ msgid "Web Server Directory:"
807
+ msgstr ""
808
+
809
+ #: admin/partials/wpvivid-settings-page-display.php:135
810
+ msgid "Remote Storage Directory:"
811
+ msgstr ""
812
+
813
+ #: admin/partials/wpvivid-settings-page-display.php:147
814
+ msgid "Remove"
815
+ msgstr ""
816
+
817
+ #: admin/partials/wpvivid-settings-page-display.php:148
818
+ msgid "The action is irreversible! It will remove all backups are out-of-date (including local web server and remote storage) if they exist."
819
+ msgstr ""
820
+
821
+ #: admin/partials/wpvivid-settings-page-display.php:208
822
+ msgid "In order to use this function, please install a <strong><a target=\"_blank\" href=\"https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html\" style=\"text-decoration: none;\">WordPress SMTP plugin</a></strong> 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."
823
+ msgstr ""
824
+
825
+ #: admin/partials/wpvivid-settings-page-display.php:213
826
+ msgid "Enable email report"
827
+ msgstr ""
828
+
829
+ #: admin/partials/wpvivid-settings-page-display.php:227
830
+ msgid "Test Email"
831
+ msgstr ""
832
+
833
+ #: admin/partials/wpvivid-settings-page-display.php:232
834
+ msgid "Always send an email notification when a backup is complete"
835
+ msgstr ""
836
+
837
+ #: admin/partials/wpvivid-settings-page-display.php:236
838
+ msgid "Only send an email notification when a backup fails"
839
+ msgstr ""
840
+
841
+ #: admin/partials/wpvivid-settings-page-display.php:240
842
+ msgid "Pro feature: Add another email address to get report"
843
+ msgstr ""
844
+
845
+ #: admin/partials/wpvivid-settings-page-display.php:287
846
+ msgid "Web-server disk space in use by WPvivid"
847
+ msgstr ""
848
+
849
+ #: admin/partials/wpvivid-settings-page-display.php:293
850
+ msgid "Calculate Sizes"
851
+ msgstr ""
852
+
853
+ #: admin/partials/wpvivid-settings-page-display.php:298
854
+ msgid "logs"
855
+ msgstr ""
856
+
857
+ #: admin/partials/wpvivid-settings-page-display.php:299
858
+ #: admin/partials/wpvivid-settings-page-display.php:310
859
+ #: admin/partials/wpvivid-settings-page-display.php:317
860
+ msgid "Path:"
861
+ msgstr ""
862
+
863
+ #: admin/partials/wpvivid-settings-page-display.php:305
864
+ msgid "Backup Cache"
865
+ msgstr ""
866
+
867
+ #: admin/partials/wpvivid-settings-page-display.php:309
868
+ msgid "Junk"
869
+ msgstr ""
870
+
871
+ #: admin/partials/wpvivid-settings-page-display.php:316
872
+ msgid "Temporary Files"
873
+ msgstr ""
874
+
875
+ #: admin/partials/wpvivid-settings-page-display.php:318
876
+ msgid "Temporary Files are created by wpvivid when restoring a website."
877
+ msgstr ""
878
+
879
+ #: admin/partials/wpvivid-settings-page-display.php:322
880
+ msgid "Empty"
881
+ msgstr ""
882
+
883
+ #: admin/partials/wpvivid-settings-page-display.php:424
884
+ msgid "Export"
885
+ msgstr ""
886
+
887
+ #: admin/partials/wpvivid-settings-page-display.php:425
888
+ msgid "Click 'Export' button to save WPvivid settings on your local computer."
889
+ msgstr ""
890
+
891
+ #: admin/partials/wpvivid-settings-page-display.php:429
892
+ msgid "Import"
893
+ msgstr ""
894
+
895
+ #: admin/partials/wpvivid-settings-page-display.php:430
896
+ msgid "Importing the json file can help you set WPvivid's configuration on another wordpress site quickly."
897
+ msgstr ""
898
+
899
+ #: admin/partials/wpvivid-settings-page-display.php:550
900
+ msgid "Enable the option when backup failed."
901
+ msgstr ""
902
+
903
+ #: admin/partials/wpvivid-settings-page-display.php:550
904
+ msgid "Special optimization for web hosting/shared hosting"
905
+ msgstr ""
906
+
907
+ #: admin/partials/wpvivid-settings-page-display.php:554
908
+ msgid "Enable optimization mode for web hosting/shared hosting"
909
+ msgstr ""
910
+
911
+ #: admin/partials/wpvivid-settings-page-display.php:557
912
+ msgid "Enabling this option can improve the backup success rate, but it will take more time for backup."
913
+ msgstr ""
914
+
915
+ #: admin/partials/wpvivid-settings-page-display.php:564
916
+ msgid "Database access method."
917
+ msgstr ""
918
+
919
+ #: admin/partials/wpvivid-settings-page-display.php:569
920
+ msgid "WPDB option has a better compatibility, but the speed of backup and restore is slower."
921
+ msgstr ""
922
+
923
+ #: admin/partials/wpvivid-settings-page-display.php:575
924
+ msgid "It is recommended to choose PDO option if pdo_mysql extension is installed on your server, which lets you backup and restore your site faster."
925
+ msgstr ""
926
+
927
+ #: admin/partials/wpvivid-settings-page-display.php:583
928
+ msgid "It will cause a lower CPU Usage and is recommended in a web hosting/ shared hosting environment."
929
+ msgstr ""
930
+
931
+ #: admin/partials/wpvivid-settings-page-display.php:583
932
+ msgid "Only Archive without compressing"
933
+ msgstr ""
934
+
935
+ #: admin/partials/wpvivid-settings-page-display.php:587
936
+ msgid "It will cause a higher CPU Usage and is recommended in a VPS/ dedicated hosting environment."
937
+ msgstr ""
938
+
939
+ #: admin/partials/wpvivid-settings-page-display.php:587
940
+ msgid "Compress and Archive"
941
+ msgstr ""
942
+
943
+ #: admin/partials/wpvivid-settings-page-display.php:596
944
+ msgid "Compress Files Every"
945
+ msgstr ""
946
+
947
+ #: admin/partials/wpvivid-settings-page-display.php:599
948
+ msgid "Some web hosting providers limit large zip files (e.g. 200MB), and therefore splitting your backup into many parts is an ideal way to avoid hitting the limitation if you are running a big website. Please try to adjust the value if you are encountering backup errors. If you use a value of 0 MB, any backup files won't be split."
949
+ msgstr ""
950
+
951
+ #: admin/partials/wpvivid-settings-page-display.php:601
952
+ msgid "Exclude the files which are larger than"
953
+ msgstr ""
954
+
955
+ #: admin/partials/wpvivid-settings-page-display.php:604
956
+ msgid "Using the option will ignore the file larger than the certain size in MB when backing up, '0' (zero) means unlimited."
957
+ msgstr ""
958
+
959
+ #: admin/partials/wpvivid-settings-page-display.php:606
960
+ msgid "PHP script execution timeout for backup"
961
+ msgstr ""
962
+
963
+ #: admin/partials/wpvivid-settings-page-display.php:609
964
+ msgid "The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of backup down. If the progress of backup encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger."
965
+ msgstr ""
966
+
967
+ #: admin/partials/wpvivid-settings-page-display.php:611
968
+ msgid "PHP script execution timeout for restore"
969
+ msgstr ""
970
+
971
+ #: admin/partials/wpvivid-settings-page-display.php:614
972
+ msgid "The time-out is not your server PHP time-out. With the execution time exhausted, our plugin will shut the process of restore down. If the progress of restore encounters a time-out, that means you have a medium or large sized website, please try to scale the value bigger."
973
+ msgstr ""
974
+
975
+ #: admin/partials/wpvivid-settings-page-display.php:616
976
+ msgid "PHP Memory Limit for backup"
977
+ msgstr ""
978
+
979
+ #: admin/partials/wpvivid-settings-page-display.php:619
980
+ msgid "Adjust this value to apply for a temporary PHP memory limit for WPvivid backup plugin to run a backup. We set this value to 256M by default. Increase the value if you encounter a memory exhausted error. Note: some web hosting providers may not support this."
981
+ msgstr ""
982
+
983
+ #: admin/partials/wpvivid-settings-page-display.php:621
984
+ msgid "PHP Memory Limit for restoration"
985
+ msgstr ""
986
+
987
+ #: admin/partials/wpvivid-settings-page-display.php:624
988
+ msgid "Adjust this value to apply for a temporary PHP memory limit for WPvivid backup plugin in restore process. We set this value to 256M by default. Increase the value if you encounter a memory exhausted error. Note: some web hosting providers may not support this."
989
+ msgstr ""
990
+
991
+ #: admin/partials/wpvivid-settings-page-display.php:626
992
+ msgid "Chunk Size"
993
+ msgstr ""
994
+
995
+ #: admin/partials/wpvivid-settings-page-display.php:629
996
+ msgid "e.g.  if you choose a chunk size of 2MB, a 8MB file will use 4 chunks. Decreasing this value will break the ISP's transmission limit, for example:512KB"
997
+ msgstr ""
998
+
999
+ #: admin/partials/wpvivid-settings-page-display.php:643
1000
+ #, php-format
1001
+ msgid "<strong>Retrying </strong>%s<strong> times when encountering a time-out error</strong>"
1002
+ msgstr ""
1003
+
1004
+ #: admin/partials/wpvivid-settings-page-display.php:659
1005
+ msgid "General Settings"
1006
+ msgstr ""
1007
+
1008
+ #: admin/partials/wpvivid-settings-page-display.php:665
1009
+ msgid "Advanced Settings"
1010
+ msgstr ""
1011
+
1012
+ #: includes/class-wpvivid-backup-uploader.php:493
1013
+ msgid "Tips: Click the button below to scan all uploaded or received backups in directory"
1014
+ msgstr ""
1015
+
1016
+ #: includes/class-wpvivid-backup-uploader.php:496
1017
+ msgid "Scan uploaded backup or received backup"
1018
+ msgstr ""
1019
+
1020
+ #: includes/class-wpvivid-backup-uploader.php:543
1021
+ msgid "Drop files here"
1022
+ msgstr ""
1023
+
1024
+ #: includes/class-wpvivid-backup-uploader.php:545
1025
+ msgid "Select Files"
1026
+ msgstr ""
1027
+
1028
+ #: includes/class-wpvivid-backup.php:1062
1029
+ msgid "Ready to backup. Progress: 0%, running time: 0second."
1030
+ msgstr ""
1031
+
1032
+ #: includes/class-wpvivid-backup.php:1097
1033
+ #: includes/class-wpvivid-backup.php:1110
1034
+ #: includes/class-wpvivid-export-import.php:1308
1035
+ msgid "Progress: "
1036
+ msgstr ""
1037
+
1038
+ #: includes/class-wpvivid-backup.php:1097
1039
+ #: includes/class-wpvivid-backup.php:1110
1040
+ #: includes/class-wpvivid-export-import.php:1308
1041
+ msgid "running time: "
1042
+ msgstr ""
1043
+
1044
+ #: includes/class-wpvivid-backup.php:1116
1045
+ #: includes/class-wpvivid-backup.php:1133
1046
+ #: includes/class-wpvivid-function-realize.php:42
1047
+ msgid "The backup will be canceled after backing up the current chunk ends."
1048
+ msgstr ""
1049
+
1050
+ #: includes/class-wpvivid-backup.php:2256
1051
+ #, php-format
1052
+ msgid "Start backing up %s."
1053
+ msgstr ""
1054
+
1055
+ #: includes/class-wpvivid-backup.php:2264
1056
+ #, php-format
1057
+ msgid "Backing up %s finished."
1058
+ msgstr ""
1059
+
1060
+ #: includes/class-wpvivid-export-import.php:65
1061
+ #: includes/class-wpvivid-export-import.php:78
1062
+ msgid "Export & Import"
1063
+ msgstr ""
1064
+
1065
+ #: includes/class-wpvivid-export-import.php:119
1066
+ msgid "Export posts or pages with images in bulk."
1067
+ msgstr ""
1068
+
1069
+ #: includes/class-wpvivid-export-import.php:121
1070
+ #: includes/class-wpvivid-export-import.php:1515
1071
+ msgid "Learn more"
1072
+ msgstr ""
1073
+
1074
+ #: includes/class-wpvivid-export-import.php:124
1075
+ msgid "This will contain all of your posts, pages, comments, terms and images (original images, featured images and thumbnails)."
1076
+ msgstr ""
1077
+
1078
+ #: includes/class-wpvivid-export-import.php:125
1079
+ #: includes/class-wpvivid-export-import.php:1518
1080
+ msgid "Note:"
1081
+ msgstr ""
1082
+
1083
+ #: includes/class-wpvivid-export-import.php:125
1084
+ msgid "Try to select fewer items when you are facing a shortage of server resources (typically presented as a timeout error)."
1085
+ msgstr ""
1086
+
1087
+ #: includes/class-wpvivid-export-import.php:135
1088
+ #, php-format
1089
+ msgid "Exported files will be temporarily stored in %s directory"
1090
+ msgstr ""
1091
+
1092
+ #: includes/class-wpvivid-export-import.php:141
1093
+ msgid "Choose post type"
1094
+ msgstr ""
1095
+
1096
+ #: includes/class-wpvivid-export-import.php:147
1097
+ msgid "Post"
1098
+ msgstr ""
1099
+
1100
+ #: includes/class-wpvivid-export-import.php:150
1101
+ msgid "Page"
1102
+ msgstr ""
1103
+
1104
+ #: includes/class-wpvivid-export-import.php:153
1105
+ msgid "More post types coming soon..."
1106
+ msgstr ""
1107
+
1108
+ #: includes/class-wpvivid-export-import.php:158
1109
+ #: includes/class-wpvivid-export-import.php:181
1110
+ msgid "Next Step"
1111
+ msgstr ""
1112
+
1113
+ #: includes/class-wpvivid-export-import.php:623
1114
+ msgid "Choose what to export"
1115
+ msgstr ""
1116
+
1117
+ #: includes/class-wpvivid-export-import.php:631
1118
+ msgid "Filter Posts/Pages"
1119
+ msgstr ""
1120
+
1121
+ #: includes/class-wpvivid-export-import.php:650
1122
+ msgid "All Categories"
1123
+ msgstr ""
1124
+
1125
+ #: includes/class-wpvivid-export-import.php:660
1126
+ #, php-format
1127
+ msgid "Export %s of all categories or a specific category."
1128
+ msgstr ""
1129
+
1130
+ #: includes/class-wpvivid-export-import.php:680
1131
+ msgid "All Authors"
1132
+ msgstr ""
1133
+
1134
+ #: includes/class-wpvivid-export-import.php:691
1135
+ #, php-format
1136
+ msgid "Export %s of all authors or a specific author."
1137
+ msgstr ""
1138
+
1139
+ #: includes/class-wpvivid-export-import.php:703
1140
+ #: includes/class-wpvivid-export-import.php:724
1141
+ msgid "&mdash; Select &mdash;"
1142
+ msgstr ""
1143
+
1144
+ #: includes/class-wpvivid-export-import.php:712
1145
+ #, php-format
1146
+ msgid "Export %s published after this date."
1147
+ msgstr ""
1148
+
1149
+ #: includes/class-wpvivid-export-import.php:733
1150
+ #, php-format
1151
+ msgid "Export %s published before this date."
1152
+ msgstr ""
1153
+
1154
+ #: includes/class-wpvivid-export-import.php:769
1155
+ msgid "Search"
1156
+ msgstr ""
1157
+
1158
+ #: includes/class-wpvivid-export-import.php:776
1159
+ #, php-format
1160
+ msgid "Search for %s according to the above rules."
1161
+ msgstr ""
1162
+
1163
+ #: includes/class-wpvivid-export-import.php:789
1164
+ msgid "Comment the export (optional)"
1165
+ msgstr ""
1166
+
1167
+ #: includes/class-wpvivid-export-import.php:794
1168
+ msgid "Comment the export: "
1169
+ msgstr ""
1170
+
1171
+ #: includes/class-wpvivid-export-import.php:798
1172
+ msgid "Only letters (except for wpvivid) and numbers are allowed."
1173
+ msgstr ""
1174
+
1175
+ #: includes/class-wpvivid-export-import.php:802
1176
+ msgid "Sample:"
1177
+ msgstr ""
1178
+
1179
+ #: includes/class-wpvivid-export-import.php:811
1180
+ msgid "Export and Download"
1181
+ msgstr ""
1182
+
1183
+ #: includes/class-wpvivid-export-import.php:1116
1184
+ msgid "Empty post id"
1185
+ msgstr ""
1186
+
1187
+ #: includes/class-wpvivid-export-import.php:1123
1188
+ #: includes/class-wpvivid-export-import.php:1159
1189
+ msgid "A task is already running. Please wait until the running task is complete, and try again."
1190
+ msgstr ""
1191
+
1192
+ #: includes/class-wpvivid-export-import.php:1149
1193
+ msgid "Error occurred while parsing the request data. Please try to run export task again."
1194
+ msgstr ""
1195
+
1196
+ #: includes/class-wpvivid-export-import.php:1304
1197
+ msgid "Ready to export. Progress: 0%, running time: 0second."
1198
+ msgstr ""
1199
+
1200
+ #: includes/class-wpvivid-export-import.php:1316
1201
+ msgid "The export task is not responding."
1202
+ msgstr ""
1203
+
1204
+ #: includes/class-wpvivid-export-import.php:1341
1205
+ msgid "Export error:"
1206
+ msgstr ""
1207
+
1208
+ #: includes/class-wpvivid-export-import.php:1375
1209
+ msgid "Task time out."
1210
+ msgstr ""
1211
+
1212
+ #: includes/class-wpvivid-export-import.php:1482
1213
+ msgid "File size not match. please retry again."
1214
+ msgstr ""
1215
+
1216
+ #: includes/class-wpvivid-export-import.php:1488
1217
+ msgid "File not found. please retry again."
1218
+ msgstr ""
1219
+
1220
+ #: includes/class-wpvivid-export-import.php:1513
1221
+ msgid "Import posts or pages with images in bulk."
1222
+ msgstr ""
1223
+
1224
+ #: includes/class-wpvivid-export-import.php:1519
1225
+ msgid "To properly display the imported content, please make sure that the importing and exporting sites have the same environment, for example, same theme or pages built with the same page builder."
1226
+ msgstr ""
1227
+
1228
+ #: includes/class-wpvivid-export-import.php:1528
1229
+ #, php-format
1230
+ msgid "Imported files will be temporarily stored in directory %s"
1231
+ msgstr ""
1232
+
1233
+ #: includes/class-wpvivid-export-import.php:1529
1234
+ msgid "Delete Exported Files In Folder"
1235
+ msgstr ""
1236
+
1237
+ #: includes/class-wpvivid-export-import.php:1534
1238
+ msgid "Choose an export from your computer to import: "
1239
+ msgstr ""
1240
+
1241
+ #: includes/class-wpvivid-export-import.php:1535
1242
+ msgid "Upload and Import"
1243
+ msgstr ""
1244
+
1245
+ #: includes/class-wpvivid-export-import.php:1538
1246
+ #, php-format
1247
+ msgid "Or you can use ftp to upload the export to the directory %s. Then click the button below to scan the file to import."
1248
+ msgstr ""
1249
+
1250
+ #: includes/class-wpvivid-export-import.php:1539
1251
+ msgid "Scan Uploaded Exports"
1252
+ msgstr ""
1253
+
1254
+ #: includes/class-wpvivid-export-import.php:1543
1255
+ msgid "The importing file info"
1256
+ msgstr ""
1257
+
1258
+ #: includes/class-wpvivid-export-import.php:1546
1259
+ msgid "Assign author"
1260
+ msgstr ""
1261
+
1262
+ #: includes/class-wpvivid-export-import.php:1548
1263
+ msgid "Select an existing author:"
1264
+ msgstr ""
1265
+
1266
+ #: includes/class-wpvivid-export-import.php:1549
1267
+ msgid "- Select -"
1268
+ msgstr ""
1269
+
1270
+ #: includes/class-wpvivid-export-import.php:1551
1271
+ msgid "Import Setting"
1272
+ msgstr ""
1273
+
1274
+ #: includes/class-wpvivid-export-import.php:1555
1275
+ msgid "Overwrite existing pages"
1276
+ msgstr ""
1277
+
1278
+ #: includes/class-wpvivid-export-import.php:1559
1279
+ msgid "With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import."
1280
+ msgstr ""
1281
+
1282
+ #: includes/class-wpvivid-export-import.php:1561
1283
+ msgid "Start to Import"
1284
+ msgstr ""
1285
+
1286
+ #: includes/class-wpvivid-export-import.php:1562
1287
+ msgid "Back to Import Page"
1288
+ msgstr ""
1289
+
1290
+ #: includes/class-wpvivid-exporter.php:71
1291
+ #: includes/class-wpvivid-importer.php:50
1292
+ msgid "Select All"
1293
+ msgstr ""
1294
+
1295
+ #: includes/class-wpvivid-exporter.php:118
1296
+ msgid "Author"
1297
+ msgstr ""
1298
+
1299
+ #: includes/class-wpvivid-exporter.php:150
1300
+ msgid "Comments"
1301
+ msgstr ""
1302
+
1303
+ #: includes/class-wpvivid-exporter.php:265
1304
+ msgid "Unpublished"
1305
+ msgstr ""
1306
+
1307
+ #: includes/class-wpvivid-exporter.php:275
1308
+ #, php-format
1309
+ msgid "%s ago"
1310
+ msgstr ""
1311
+
1312
+ #: includes/class-wpvivid-exporter.php:282
1313
+ msgid "Published"
1314
+ msgstr ""
1315
+
1316
+ #: includes/class-wpvivid-exporter.php:285
1317
+ msgid "Missed schedule"
1318
+ msgstr ""
1319
+
1320
+ #: includes/class-wpvivid-exporter.php:287
1321
+ msgid "Scheduled"
1322
+ msgstr ""
1323
+
1324
+ #: includes/class-wpvivid-exporter.php:290
1325
+ msgid "Last Modified"
1326
+ msgstr ""
1327
+
1328
+ #: includes/class-wpvivid-exporter.php:548
1329
+ #: includes/class-wpvivid-importer.php:304
1330
+ msgid "First page"
1331
+ msgstr ""
1332
+
1333
+ #: includes/class-wpvivid-exporter.php:559
1334
+ #: includes/class-wpvivid-importer.php:315
1335
+ msgid "Previous page"
1336
+ msgstr ""
1337
+
1338
+ #: includes/class-wpvivid-exporter.php:566
1339
+ #: includes/class-wpvivid-exporter.php:570
1340
+ #: includes/class-wpvivid-importer.php:322
1341
+ #: includes/class-wpvivid-importer.php:326
1342
+ msgid "Current Page"
1343
+ msgstr ""
1344
+
1345
+ #: includes/class-wpvivid-exporter.php:584
1346
+ #: includes/class-wpvivid-importer.php:340
1347
+ msgid "Next page"
1348
+ msgstr ""
1349
+
1350
+ #: includes/class-wpvivid-exporter.php:594
1351
+ #: includes/class-wpvivid-importer.php:350
1352
+ msgid "Last page"
1353
+ msgstr ""
1354
+
1355
+ #: includes/class-wpvivid-function-realize.php:65
1356
+ #: includes/class-wpvivid-function-realize.php:93
1357
+ msgid "Retrieving the backup information failed while showing log. Please try again later."
1358
+ msgstr ""
1359
+
1360
+ #: includes/class-wpvivid-function-realize.php:70
1361
+ #: includes/class-wpvivid-function-realize.php:82
1362
+ #: includes/class-wpvivid-function-realize.php:99
1363
+ msgid "The log not found."
1364
+ msgstr ""
1365
+
1366
+ #: includes/class-wpvivid-importer.php:86
1367
+ msgid "File Name"
1368
+ msgstr ""
1369
+
1370
+ #: includes/class-wpvivid-importer.php:87
1371
+ msgid "Post Types"
1372
+ msgstr ""
1373
+
1374
+ #: includes/class-wpvivid-importer.php:88
1375
+ msgid "Count"
1376
+ msgstr ""
1377
+
1378
+ #: includes/class-wpvivid-importer.php:89
1379
+ msgid "Media Files Size"
1380
+ msgstr ""
1381
+
1382
+ #: includes/class-wpvivid-importer.php:167
1383
+ msgid "Type: "
1384
+ msgstr ""
1385
+
1386
+ #: includes/class-wpvivid-importer.php:1669
1387
+ msgid "File not exist, file:"
1388
+ msgstr ""
1389
+
1390
+ #: includes/class-wpvivid-importer.php:1676
1391
+ #: includes/class-wpvivid-importer.php:1777
1392
+ msgid "Sorry, this file type is not permitted for security reasons."
1393
+ msgstr ""
1394
+
1395
+ #: includes/class-wpvivid-importer.php:1724
1396
+ msgid "Fetching attachments is not enabled"
1397
+ msgstr ""
1398
+
1399
+ #: includes/class-wpvivid-importer.php:1737
1400
+ msgid "Invalid file type"
1401
+ msgstr ""
1402
+
1403
+ #: includes/class-wpvivid-importer.php:1782
1404
+ msgid "File not exist file:"
1405
+ msgstr ""
1406
+
1407
+ #: includes/class-wpvivid-importer.php:1877
1408
+ #: includes/class-wpvivid-importer.php:1913
1409
+ #: includes/class-wpvivid-importer.php:1921
1410
+ msgid "There was an error when reading this WXR file"
1411
+ msgstr ""
1412
+
1413
+ #: includes/class-wpvivid-importer.php:1878
1414
+ msgid "Details are shown above. The importer will now try again with a different parser..."
1415
+ msgstr ""
1416
+
1417
+ #: includes/class-wpvivid-importer.php:1925
1418
+ #: includes/class-wpvivid-importer.php:1930
1419
+ #: includes/class-wpvivid-importer.php:2155
1420
+ #: includes/class-wpvivid-importer.php:2351
1421
+ msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
1422
+ msgstr ""
1423
+
1424
+ #: includes/class-wpvivid-interface-mainwp.php:138
1425
+ msgid "Error occurred while parsing the request data. Please try to run backup again."
1426
+ msgstr ""
1427
+
1428
+ #: includes/class-wpvivid-interface-mainwp.php:182
1429
+ #: includes/class-wpvivid-interface-mainwp.php:220
1430
+ #: includes/class-wpvivid-interface-mainwp.php:273
1431
+ msgid "Unable to open the log file."
1432
+ msgstr ""
1433
+
1434
+ #: includes/class-wpvivid-interface-mainwp.php:211
1435
+ msgid "Reading the log failed. Please try again."
1436
+ msgstr ""
1437
+
1438
+ #: includes/class-wpvivid-mail-report.php:558
1439
+ msgid "Unable to send email. Please check the configuration of email server."
1440
+ msgstr ""
1441
+
1442
+ #: includes/class-wpvivid-migrate.php:49
1443
+ msgid "Auto-Migration"
1444
+ msgstr ""
1445
+
1446
+ #: includes/class-wpvivid-migrate.php:55
1447
+ msgid "Key"
1448
+ msgstr ""
1449
+
1450
+ #: includes/class-wpvivid-migrate.php:390
1451
+ msgid "In order to allow another site to send a backup to this site, please generate a key below. Once the key is generated, this site is ready to receive a backup from another site. Then, please copy and paste the key in sending site and save it."
1452
+ msgstr ""
1453
+
1454
+ #: includes/class-wpvivid-migrate.php:392
1455
+ msgid "The key will expire in "
1456
+ msgstr ""
1457
+
1458
+ #: includes/class-wpvivid-migrate.php:399
1459
+ msgid "Tips: For security reason, please choose an appropriate expiration time for the key."
1460
+ msgstr ""
1461
+
1462
+ #: includes/class-wpvivid-migrate.php:401
1463
+ msgid "Generate"
1464
+ msgstr ""
1465
+
1466
+ #: includes/class-wpvivid-migrate.php:850
1467
+ msgid "Please paste the key below."
1468
+ msgstr ""
1469
+
1470
+ #: includes/class-wpvivid-migrate.php:850
1471
+ msgid "How to get a site key?"
1472
+ msgstr ""
1473
+
1474
+ #: includes/class-wpvivid-migrate.php:853
1475
+ msgid "Save"
1476
+ msgstr ""
1477
+
1478
+ #: includes/class-wpvivid-migrate.php:969
1479
+ msgid "1. Visit Key tab page of WPvivid backup plugin of destination site."
1480
+ msgstr ""
1481
+
1482
+ #: includes/class-wpvivid-migrate.php:970
1483
+ msgid "2. Generate a key by clicking Generate button and copy it."
1484
+ msgstr ""
1485
+
1486
+ #: includes/class-wpvivid-migrate.php:971
1487
+ msgid "3. Go back to this page and paste the key in key box below. Lastly, click Save button."
1488
+ msgstr ""
1489
+
1490
+ #: includes/class-wpvivid-migrate.php:985
1491
+ msgid "The feature can help you transfer a Wordpress site to a new domain(site). It would be a convenient way to migrate your WP site from dev environment to live server or from old server to the new."
1492
+ msgstr ""
1493
+
1494
+ #: includes/class-wpvivid-migrate.php:995
1495
+ msgid "Choose the content you want to transfer"
1496
+ msgstr ""
1497
+
1498
+ #: includes/class-wpvivid-migrate.php:1010
1499
+ msgid "Clone then Transfer"
1500
+ msgstr ""
1501
+
1502
+ #: includes/class-wpvivid-migrate.php:1090
1503
+ msgid "Note: "
1504
+ msgstr ""
1505
+
1506
+ #: includes/class-wpvivid-migrate.php:1091
1507
+ msgid "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."
1508
+ msgstr ""
1509
+
1510
+ #: includes/class-wpvivid-migrate.php:1092
1511
+ msgid "2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment."
1512
+ msgstr ""
1513
+
1514
+ #: includes/class-wpvivid-migrate.php:1098
1515
+ msgid "<strong>Tips: </strong>The unstable connection between sites could cause a failure of files transfer. In this case, uploading backups to destination site is a good alternative to the automatic website migration."
1516
+ msgstr ""
1517
+
1518
+ #: includes/class-wpvivid-migrate.php:1099
1519
+ msgid "How to migrate Wordpress site manually to a new domain(site) with WPvivid backup plugin?"
1520
+ msgstr ""
1521
+
1522
+ #: includes/class-wpvivid-migrate.php:1100
1523
+ msgid "1. Download a backup in backups list to your computer."
1524
+ msgstr ""
1525
+
1526
+ #: includes/class-wpvivid-migrate.php:1101
1527
+ msgid "2. Upload the backup to destination site. There are two ways available to use:"
1528
+ msgstr ""
1529
+
1530
+ #: includes/class-wpvivid-migrate.php:1102
1531
+ msgid "2.1 Upload the backup to the upload section of WPvivid backup plugin in destination site."
1532
+ msgstr ""
1533
+
1534
+ #: includes/class-wpvivid-migrate.php:1103
1535
+ #, php-format
1536
+ msgid "2.2 Upload the backup with FTP client to backup directory %s in destination site, then click <strong>Scan uploaded backup or received backup</strong> button."
1537
+ msgstr ""
1538
+
1539
+ #: includes/class-wpvivid-migrate.php:1104
1540
+ msgid "3. Once done, the backup appears in backups list. Then, restore the backup."
1541
+ msgstr ""
1542
+
1543
+ #: includes/class-wpvivid-migrate.php:1124
1544
+ msgid "Choose what to migrate"
1545
+ msgstr ""
1546
+
1547
+ #: includes/class-wpvivid-migrate.php:1185
1548
+ msgid "Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup."
1549
+ msgstr ""
1550
+
1551
+ #: includes/class-wpvivid-migrate.php:1245
1552
+ msgid "Upload"
1553
+ msgstr ""
1554
+
1555
+ #: includes/class-wpvivid-migrate.php:1255
1556
+ #, php-format
1557
+ msgid "The backups will be uploaded to %s directory."
1558
+ msgstr ""
1559
+
1560
+ #: includes/class-wpvivid-migrate.php:1258
1561
+ msgid "Note: The files you want to upload must be a backup created by WPvivid backup plugin. Make sure that uploading every part of a backup to the directory if the backup is split into many parts"
1562
+ msgstr ""
1563
+
1564
+ #: includes/class-wpvivid-schedule.php:34
1565
+ msgid "12 Hours"
1566
+ msgstr ""
1567
+
1568
+ #: includes/class-wpvivid-schedule.php:40
1569
+ #: includes/class-wpvivid-schedule.php:94
1570
+ msgid "Daily"
1571
+ msgstr ""
1572
+
1573
+ #: includes/class-wpvivid-schedule.php:46
1574
+ #: includes/class-wpvivid-schedule.php:97
1575
+ msgid "Weekly"
1576
+ msgstr ""
1577
+
1578
+ #: includes/class-wpvivid-schedule.php:52
1579
+ #: includes/class-wpvivid-schedule.php:100
1580
+ msgid "Fortnightly"
1581
+ msgstr ""
1582
+
1583
+ #: includes/class-wpvivid-schedule.php:58
1584
+ #: includes/class-wpvivid-schedule.php:103
1585
+ msgid "Monthly"
1586
+ msgstr ""
1587
+
1588
+ #: includes/class-wpvivid-schedule.php:91
1589
+ msgid "12Hours"
1590
+ msgstr ""
1591
+
1592
+ #: includes/class-wpvivid-schedule.php:282
1593
+ #: includes/class-wpvivid-schedule.php:296
1594
+ msgid "Creating scheduled tasks failed. Please try again later."
1595
+ msgstr ""
1596
+
1597
+ #: includes/class-wpvivid.php:507
1598
+ #: includes/class-wpvivid.php:515
1599
+ msgid "A backup type is required."
1600
+ msgstr ""
1601
+
1602
+ #: includes/class-wpvivid.php:521
1603
+ #: includes/class-wpvivid.php:530
1604
+ msgid "Choose at least one storage location for backups."
1605
+ msgstr ""
1606
+
1607
+ #: includes/class-wpvivid.php:541
1608
+ #: includes/class-wpvivid.php:4557
1609
+ msgid "There is no default remote storage configured. Please set it up first."
1610
+ msgstr ""
1611
+
1612
+ #: includes/class-wpvivid.php:1408
1613
+ #: includes/class-wpvivid.php:1430
1614
+ #: includes/class-wpvivid.php:1456
1615
+ #: includes/class-wpvivid.php:1581
1616
+ #: includes/class-wpvivid.php:1701
1617
+ msgid "Too many resumption attempts."
1618
+ msgstr ""
1619
+
1620
+ #: includes/class-wpvivid.php:1589
1621
+ #: includes/class-wpvivid.php:1709
1622
+ msgid "Task timed out."
1623
+ msgstr ""
1624
+
1625
+ #: includes/class-wpvivid.php:2479
1626
+ msgid "Retrieving the backup(s) information failed while deleting the selected backup(s). Please try again later."
1627
+ msgstr ""
1628
+
1629
+ #: includes/class-wpvivid.php:2489
1630
+ msgid "Unable to delete the locked backup. Please unlock it first and try again."
1631
+ msgstr ""
1632
+
1633
+ #: includes/class-wpvivid.php:2592
1634
+ msgid "You have successfully added a remote storage."
1635
+ msgstr ""
1636
+
1637
+ #: includes/class-wpvivid.php:2644
1638
+ msgid "Fail to delete the remote storage, can not retrieve the storage infomation. Please try again."
1639
+ msgstr ""
1640
+
1641
+ #: includes/class-wpvivid.php:2672
1642
+ msgid "Failed to get the remote storage information. Please try again later."
1643
+ msgstr ""
1644
+
1645
+ #: includes/class-wpvivid.php:3416
1646
+ msgid "restore failed error unknown"
1647
+ msgstr ""
1648
+
1649
+ #: includes/class-wpvivid.php:3449
1650
+ msgid "The restore file not found. Please verify the file exists."
1651
+ msgstr ""
1652
+
1653
+ #: includes/class-wpvivid.php:3561
1654
+ #: includes/class-wpvivid.php:3577
1655
+ msgid "The last backup message not found."
1656
+ msgstr ""
1657
+
1658
+ #: includes/class-wpvivid.php:3580
1659
+ msgid "Last Backup: "
1660
+ msgstr ""
1661
+
1662
+ #: includes/class-wpvivid.php:3677
1663
+ #, php-format
1664
+ msgid "%d backup tasks have been completed. Please switch to <a href=\"#\" onclick=\"wpvivid_click_switch_page('wrap', 'wpvivid_tab_log', true);\">Log</a> page to check the details."
1665
+ msgstr ""
1666
+
1667
+ #: includes/class-wpvivid.php:3770
1668
+ msgid "Getting backup directory failed. Please try again later."
1669
+ msgstr ""
1670
+
1671
+ #: includes/class-wpvivid.php:3965
1672
+ msgid "Choose at least one type of junk files for deleting."
1673
+ msgstr ""
1674
+
1675
+ #: includes/class-wpvivid.php:4039
1676
+ msgid "The selected junk flies have been deleted."
1677
+ msgstr ""
1678
+
1679
+ #: includes/class-wpvivid.php:4210
1680
+ msgid "Choose one storage from the list to be the default storage."
1681
+ msgstr ""
1682
+
1683
+ #: includes/class-wpvivid.php:4465
1684
+ #: includes/class-wpvivid.php:4473
1685
+ msgid "The maximum zip file size is required."
1686
+ msgstr ""
1687
+
1688
+ #: includes/class-wpvivid.php:4479
1689
+ #: includes/class-wpvivid.php:4486
1690
+ msgid "The size for excluded files is required."
1691
+ msgstr ""
1692
+
1693
+ #: includes/class-wpvivid.php:4492
1694
+ #: includes/class-wpvivid.php:4499
1695
+ msgid "The maximum execution time for PHP script is required."
1696
+ msgstr ""
1697
+
1698
+ #: includes/class-wpvivid.php:4505
1699
+ #: includes/class-wpvivid.php:4512
1700
+ msgid "The local storage path is required."
1701
+ msgstr ""
1702
+
1703
+ #: includes/class-wpvivid.php:4522
1704
+ msgid "An email address is required."
1705
+ msgstr ""
1706
+
1707
+ #: includes/class-wpvivid.php:4531
1708
+ #: includes/class-wpvivid.php:4535
1709
+ msgid "The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method."
1710
+ msgstr ""
1711
+
1712
+ #: includes/class-wpvivid.php:4654
1713
+ msgid "The selected file is not the setting file for WPvivid. Please upload the right file."
1714
+ msgstr ""
1715
+
1716
+ #: includes/class-wpvivid.php:4676
1717
+ msgid "Invalid email address"
1718
+ msgstr ""
1719
+
1720
+ #: includes/class-wpvivid.php:5248
1721
+ msgid "Type:"
1722
+ msgstr ""
1723
+
1724
+ #: includes/class-wpvivid.php:5402
1725
+ msgid "Save backups on localhost (web server)"
1726
+ msgstr ""
1727
+
1728
+ #: includes/class-wpvivid.php:5406
1729
+ msgid "Send backups to remote storage (choose this option, the local backup will be deleted after uploading to remote storage completely)"
1730
+ msgstr ""
1731
+
1732
+ #: includes/class-wpvivid.php:5571
1733
+ msgid "User's email address is required."
1734
+ msgstr ""
1735
+
1736
+ #: includes/class-wpvivid.php:5576
1737
+ msgid "Please enter a valid email address."
1738
+ msgstr ""
1739
+
1740
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:44
1741
+ msgid "Amazon S3"
1742
+ msgstr ""
1743
+
1744
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:62
1745
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:200
1746
+ msgid "Enter Your Amazon S3 Account"
1747
+ msgstr ""
1748
+
1749
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:70
1750
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:208
1751
+ msgid "Enter a unique alias: e.g. Amazon S3-001"
1752
+ msgstr ""
1753
+
1754
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:75
1755
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:213
1756
+ #: includes/customclass/class-wpvivid-dropbox.php:477
1757
+ #: includes/customclass/class-wpvivid-dropbox.php:602
1758
+ #: includes/customclass/class-wpvivid-ftpclass.php:57
1759
+ #: includes/customclass/class-wpvivid-ftpclass.php:184
1760
+ #: includes/customclass/class-wpvivid-google-drive.php:319
1761
+ #: includes/customclass/class-wpvivid-google-drive.php:447
1762
+ msgid "A name to help you identify the storage if you have multiple remote storage connected."
1763
+ msgstr ""
1764
+
1765
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:82
1766
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:220
1767
+ msgid "Amazon S3 access key"
1768
+ msgstr ""
1769
+
1770
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:87
1771
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:225
1772
+ msgid "Enter your Amazon S3 access key."
1773
+ msgstr ""
1774
+
1775
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:87
1776
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:225
1777
+ msgid "How to get an AmazonS3 access key."
1778
+ msgstr ""
1779
+
1780
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:94
1781
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:232
1782
+ msgid "Amazon S3 secret key"
1783
+ msgstr ""
1784
+
1785
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:99
1786
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:237
1787
+ msgid "Enter your Amazon S3 secret key."
1788
+ msgstr ""
1789
+
1790
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:99
1791
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:237
1792
+ msgid "How to get an AmazonS3 secret key."
1793
+ msgstr ""
1794
+
1795
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:106
1796
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:244
1797
+ msgid "Amazon S3 Bucket Name(e.g. test)"
1798
+ msgstr ""
1799
+
1800
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:111
1801
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:249
1802
+ msgid "Enter an existed Bucket to create a custom backup storage directory."
1803
+ msgstr ""
1804
+
1805
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:118
1806
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:256
1807
+ msgid "Custom Path"
1808
+ msgstr ""
1809
+
1810
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:123
1811
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:261
1812
+ msgid "Customize the directory where you want to store backups within the Bucket."
1813
+ msgstr ""
1814
+
1815
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:131
1816
+ #: includes/customclass/class-wpvivid-dropbox.php:509
1817
+ #: includes/customclass/class-wpvivid-ftpclass.php:125
1818
+ #: includes/customclass/class-wpvivid-google-drive.php:351
1819
+ msgid "Set as the default remote storage."
1820
+ msgstr ""
1821
+
1822
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:137
1823
+ #: includes/customclass/class-wpvivid-dropbox.php:515
1824
+ #: includes/customclass/class-wpvivid-ftpclass.php:131
1825
+ #: includes/customclass/class-wpvivid-google-drive.php:357
1826
+ msgid "Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default."
1827
+ msgstr ""
1828
+
1829
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:145
1830
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:269
1831
+ msgid "Storage class: Standard (infrequent access)."
1832
+ msgstr ""
1833
+
1834
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:151
1835
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:275
1836
+ msgid "Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer."
1837
+ msgstr ""
1838
+
1839
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:159
1840
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:283
1841
+ msgid "Server-side encryption."
1842
+ msgstr ""
1843
+
1844
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:165
1845
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:289
1846
+ msgid "Check the option to use Amazon S3 server-side encryption to protect data."
1847
+ msgstr ""
1848
+
1849
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:173
1850
+ #: includes/customclass/class-wpvivid-ftpclass.php:153
1851
+ msgid "Test and Add"
1852
+ msgstr ""
1853
+
1854
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:178
1855
+ msgid "Click the button to connect to Amazon S3 storage and add it to the storage list below."
1856
+ msgstr ""
1857
+
1858
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:187
1859
+ msgid "The simplexml extension is not detected. Please install the extension first."
1860
+ msgstr ""
1861
+
1862
+ #: includes/customclass/class-wpvivid-amazons3-plus.php:302
1863
+ #: includes/customclass/class-wpvivid-dropbox.php:614
1864
+ #: includes/customclass/class-wpvivid-ftpclass.php:259
1865
+ #: includes/customclass/class-wpvivid-google-drive.php:459
1866
+ msgid "Click the button to save the changes."
1867
+ msgstr ""
1868
+
1869
+ #: includes/customclass/class-wpvivid-dropbox.php:433
1870
+ msgid "You have authenticated the Dropbox account as your remote storage."
1871
+ msgstr ""
1872
+
1873
+ #: includes/customclass/class-wpvivid-dropbox.php:441
1874
+ #: includes/customclass/class-wpvivid-google-drive.php:280
1875
+ msgid "You have successfully updated the storage alias."
1876
+ msgstr ""
1877
+
1878
+ #: includes/customclass/class-wpvivid-dropbox.php:452
1879
+ msgid "Dropbox"
1880
+ msgstr ""
1881
+
1882
+ #: includes/customclass/class-wpvivid-dropbox.php:462
1883
+ msgid "Please read <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)."
1884
+ msgstr ""
1885
+
1886
+ #: includes/customclass/class-wpvivid-dropbox.php:465
1887
+ #: includes/customclass/class-wpvivid-dropbox.php:590
1888
+ msgid "Enter Your Dropbox Information"
1889
+ msgstr ""
1890
+
1891
+ #: includes/customclass/class-wpvivid-dropbox.php:472
1892
+ #: includes/customclass/class-wpvivid-dropbox.php:597
1893
+ msgid "Enter a unique alias: e.g. Dropbox-001"
1894
+ msgstr ""
1895
+
1896
+ #: includes/customclass/class-wpvivid-dropbox.php:489
1897
+ #: includes/customclass/class-wpvivid-google-drive.php:331
1898
+ msgid "All backups will be uploaded to this directory."
1899
+ msgstr ""
1900
+
1901
+ #: includes/customclass/class-wpvivid-dropbox.php:501
1902
+ #: includes/customclass/class-wpvivid-google-drive.php:343
1903
+ msgid "Pro feature: Create a directory for storing the backups of the site"
1904
+ msgstr ""
1905
+
1906
+ #: includes/customclass/class-wpvivid-dropbox.php:522
1907
+ msgid "Authenticate with Dropbox"
1908
+ msgstr ""
1909
+
1910
+ #: includes/customclass/class-wpvivid-dropbox.php:527
1911
+ msgid "Click the button to get Dropbox authentication and add it to the storage list below."
1912
+ msgstr ""
1913
+
1914
+ #: includes/customclass/class-wpvivid-ftpclass.php:36
1915
+ msgid "FTP"
1916
+ msgstr ""
1917
+
1918
+ #: includes/customclass/class-wpvivid-ftpclass.php:45
1919
+ #: includes/customclass/class-wpvivid-ftpclass.php:172
1920
+ msgid "Enter Your FTP Account"
1921
+ msgstr ""
1922
+
1923
+ #: includes/customclass/class-wpvivid-ftpclass.php:52
1924
+ #: includes/customclass/class-wpvivid-ftpclass.php:179
1925
+ msgid "Enter an unique alias: e.g. FTP-001"
1926
+ msgstr ""
1927
+
1928
+ #: includes/customclass/class-wpvivid-ftpclass.php:64
1929
+ #: includes/customclass/class-wpvivid-ftpclass.php:191
1930
+ msgid "FTP server (server's port 21)"
1931
+ msgstr ""
1932
+
1933
+ #: includes/customclass/class-wpvivid-ftpclass.php:69
1934
+ #: includes/customclass/class-wpvivid-ftpclass.php:196
1935
+ msgid "Enter the FTP server."
1936
+ msgstr ""
1937
+
1938
+ #: includes/customclass/class-wpvivid-ftpclass.php:81
1939
+ msgid "Pro feature: Change the FTP default port number"
1940
+ msgstr ""
1941
+
1942
+ #: includes/customclass/class-wpvivid-ftpclass.php:88
1943
+ #: includes/customclass/class-wpvivid-ftpclass.php:203
1944
+ msgid "FTP login"
1945
+ msgstr ""
1946
+
1947
+ #: includes/customclass/class-wpvivid-ftpclass.php:93
1948
+ #: includes/customclass/class-wpvivid-ftpclass.php:208
1949
+ msgid "Enter your FTP server user name."
1950
+ msgstr ""
1951
+
1952
+ #: includes/customclass/class-wpvivid-ftpclass.php:100
1953
+ #: includes/customclass/class-wpvivid-ftpclass.php:215
1954
+ msgid "FTP password"
1955
+ msgstr ""
1956
+
1957
+ #: includes/customclass/class-wpvivid-ftpclass.php:105
1958
+ #: includes/customclass/class-wpvivid-ftpclass.php:220
1959
+ msgid "Enter the FTP server password."
1960
+ msgstr ""
1961
+
1962
+ #: includes/customclass/class-wpvivid-ftpclass.php:112
1963
+ #: includes/customclass/class-wpvivid-ftpclass.php:227
1964
+ msgid "Absolute path must exist(e.g. /home/username)"
1965
+ msgstr ""
1966
+
1967
+ #: includes/customclass/class-wpvivid-ftpclass.php:117
1968
+ #: includes/customclass/class-wpvivid-ftpclass.php:232
1969
+ msgid "Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder"
1970
+ msgstr ""
1971
+
1972
+ #: includes/customclass/class-wpvivid-ftpclass.php:139
1973
+ #: includes/customclass/class-wpvivid-ftpclass.php:240
1974
+ msgid "Uncheck this to enable FTP active mode."
1975
+ msgstr ""
1976
+
1977
+ #: includes/customclass/class-wpvivid-ftpclass.php:145
1978
+ #: includes/customclass/class-wpvivid-ftpclass.php:246
1979
+ msgid "Uncheck the option to use FTP active mode when transferring files. Make sure the FTP server you are configuring supports the active FTP mode."
1980
+ msgstr ""
1981
+
1982
+ #: includes/customclass/class-wpvivid-ftpclass.php:158
1983
+ msgid "Click the button to connect to FTP server and add it to the storage list below."
1984
+ msgstr ""
1985
+
1986
+ #: includes/customclass/class-wpvivid-google-drive.php:111
1987
+ #: includes/customclass/class-wpvivid-google-drive.php:207
1988
+ msgid "Authentication failed, the client_secrets.json file is missing. Please make sure the client_secrets.json file is in wpvivid-backuprestore\\includes\\customclass directory."
1989
+ msgstr ""
1990
+
1991
+ #: includes/customclass/class-wpvivid-google-drive.php:115
1992
+ #: includes/customclass/class-wpvivid-google-drive.php:211
1993
+ msgid "Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file."
1994
+ msgstr ""
1995
+
1996
+ #: includes/customclass/class-wpvivid-google-drive.php:272
1997
+ msgid "You have authenticated the Google Drive account as your remote storage."
1998
+ msgstr ""
1999
+
2000
+ #: includes/customclass/class-wpvivid-google-drive.php:292
2001
+ msgid "Google Drive"
2002
+ msgstr ""
2003
+
2004
+ #: includes/customclass/class-wpvivid-google-drive.php:304
2005
+ msgid "Please read <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)."
2006
+ msgstr ""
2007
+
2008
+ #: includes/customclass/class-wpvivid-google-drive.php:307
2009
+ #: includes/customclass/class-wpvivid-google-drive.php:435
2010
+ msgid "Enter Your Google Drive Information"
2011
+ msgstr ""
2012
+
2013
+ #: includes/customclass/class-wpvivid-google-drive.php:314
2014
+ #: includes/customclass/class-wpvivid-google-drive.php:442
2015
+ msgid "Enter a unique alias: e.g. Google Drive-001"
2016
+ msgstr ""
2017
+
2018
+ #: includes/customclass/class-wpvivid-google-drive.php:364
2019
+ msgid "Authenticate with Google Drive"
2020
+ msgstr ""
2021
+
2022
+ #: includes/customclass/class-wpvivid-google-drive.php:369
2023
+ msgid "Click the button to get Google authentication and add it to the storage list below."
2024
+ msgstr ""
2025
+
2026
+ #: includes/customclass/class-wpvivid-one-drive.php:240
2027
+ msgid "You have authenticated the Microsoft OneDrive account as your remote storage."
2028
+ msgstr ""
2029
+
2030
+ #: includes/customclass/class-wpvivid-one-drive.php:260
2031
+ msgid "Microsoft OneDrive"
2032
+ msgstr ""
2033
+
2034
+ #: includes/customclass/class-wpvivid-one-drive.php:272
2035
+ msgid "Please read <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)."
2036
+ msgstr ""
2037
+
2038
+ #: includes/customclass/class-wpvivid-one-drive.php:275
2039
+ #: includes/customclass/class-wpvivid-one-drive.php:403
2040
+ msgid "Enter Your Microsoft OneDrive Information"
2041
+ msgstr ""
2042
+
2043
+ #: includes/customclass/class-wpvivid-one-drive.php:282
2044
+ #: includes/customclass/class-wpvivid-one-drive.php:410
2045
+ msgid "Enter a unique alias: e.g. OneDrive-001"
2046
+ msgstr ""
2047
+
2048
+ #: includes/customclass/class-wpvivid-one-drive.php:332
2049
+ msgid "Authenticate with Microsoft OneDrive"
2050
+ msgstr ""
2051
+
2052
+ #: includes/customclass/class-wpvivid-one-drive.php:337
2053
+ msgid "Click the button to get Microsoft authentication and add it to the storage list below."
2054
+ msgstr ""
2055
+
2056
+ #: includes/customclass/class-wpvivid-s3compat.php:403
2057
+ msgid "DigitalOcean Spaces"
2058
+ msgstr ""
2059
+
2060
+ #: includes/customclass/class-wpvivid-s3compat.php:412
2061
+ #: includes/customclass/class-wpvivid-s3compat.php:527
2062
+ msgid "Enter Your DigitalOcean Spaces Account"
2063
+ msgstr ""
2064
+
2065
+ #: includes/customclass/class-wpvivid-s3compat.php:420
2066
+ #: includes/customclass/class-wpvivid-s3compat.php:535
2067
+ msgid "Enter a unique alias: e.g. DOS-001"
2068
+ msgstr ""
2069
+
2070
+ #: includes/customclass/class-wpvivid-s3compat.php:432
2071
+ #: includes/customclass/class-wpvivid-s3compat.php:547
2072
+ msgid "DigitalOcean Spaces access key"
2073
+ msgstr ""
2074
+
2075
+ #: includes/customclass/class-wpvivid-s3compat.php:437
2076
+ #: includes/customclass/class-wpvivid-s3compat.php:552
2077
+ msgid "Enter your DigitalOcean Spaces access key"
2078
+ msgstr ""
2079
+
2080
+ #: includes/customclass/class-wpvivid-s3compat.php:444
2081
+ #: includes/customclass/class-wpvivid-s3compat.php:559
2082
+ msgid "DigitalOcean Spaces secret key"
2083
+ msgstr ""
2084
+
2085
+ #: includes/customclass/class-wpvivid-s3compat.php:449
2086
+ #: includes/customclass/class-wpvivid-s3compat.php:564
2087
+ msgid "Enter your DigitalOcean Spaces secret key"
2088
+ msgstr ""
2089
+
2090
+ #: includes/customclass/class-wpvivid-s3compat.php:456
2091
+ #: includes/customclass/class-wpvivid-s3compat.php:571
2092
+ msgid "Space Name(e.g. test)"
2093
+ msgstr ""
2094
+
2095
+ #: includes/customclass/class-wpvivid-s3compat.php:461
2096
+ #: includes/customclass/class-wpvivid-s3compat.php:576
2097
+ msgid "Enter an existed Space to create a custom backup storage directory."
2098
+ msgstr ""
2099
+
2100
+ #: includes/customclass/class-wpvivid-s3compat.php:473
2101
+ #: includes/customclass/class-wpvivid-s3compat.php:588
2102
+ msgid "Customize the directory where you want to store backups within the Space."
2103
+ msgstr ""
2104
+
2105
+ #: includes/customclass/class-wpvivid-s3compat.php:480
2106
+ #: includes/customclass/class-wpvivid-s3compat.php:595
2107
+ msgid "region.digitaloceanspaces.com"
2108
+ msgstr ""
2109
+
2110
+ #: includes/customclass/class-wpvivid-s3compat.php:485
2111
+ #: includes/customclass/class-wpvivid-s3compat.php:600
2112
+ msgid "Enter the DigitalOcean Endpoint for the storage"
2113
+ msgstr ""
2114
+
2115
+ #: includes/customclass/class-wpvivid-s3compat.php:512
2116
+ msgid "Click the button to connect to DigitalOcean Spaces storage and add it to the storage list below."
2117
+ msgstr ""
2118
+
2119
+ #: includes/customclass/class-wpvivid-sftpclass.php:38
2120
+ msgid "SFTP"
2121
+ msgstr ""
2122
+
2123
+ #: includes/customclass/class-wpvivid-sftpclass.php:48
2124
+ #: includes/customclass/class-wpvivid-sftpclass.php:163
2125
+ msgid "Enter Your SFTP Account"
2126
+ msgstr ""
2127
+
2128
+ #: includes/customclass/class-wpvivid-sftpclass.php:56
2129
+ #: includes/customclass/class-wpvivid-sftpclass.php:171
2130
+ msgid "Enter a unique alias: e.g. SFTP-001"
2131
+ msgstr ""
2132
+
2133
+ #: includes/customclass/class-wpvivid-sftpclass.php:68
2134
+ #: includes/customclass/class-wpvivid-sftpclass.php:183
2135
+ msgid "Server Address"
2136
+ msgstr ""
2137
+
2138
+ #: includes/customclass/class-wpvivid-sftpclass.php:73
2139
+ #: includes/customclass/class-wpvivid-sftpclass.php:188
2140
+ msgid "Enter the server address."
2141
+ msgstr ""
2142
+
2143
+ #: includes/customclass/class-wpvivid-sftpclass.php:80
2144
+ #: includes/customclass/class-wpvivid-sftpclass.php:195
2145
+ msgid "User Name"
2146
+ msgstr ""
2147
+
2148
+ #: includes/customclass/class-wpvivid-sftpclass.php:85
2149
+ #: includes/customclass/class-wpvivid-sftpclass.php:200
2150
+ msgid "Enter the user name."
2151
+ msgstr ""
2152
+
2153
+ #: includes/customclass/class-wpvivid-sftpclass.php:92
2154
+ #: includes/customclass/class-wpvivid-sftpclass.php:207
2155
+ msgid "User Password"
2156
+ msgstr ""
2157
+
2158
+ #: includes/customclass/class-wpvivid-sftpclass.php:97
2159
+ #: includes/customclass/class-wpvivid-sftpclass.php:212
2160
+ msgid "Enter the user password."
2161
+ msgstr ""
2162
+
2163
+ #: includes/customclass/class-wpvivid-sftpclass.php:104
2164
+ #: includes/customclass/class-wpvivid-sftpclass.php:219
2165
+ msgid "Port"
2166
+ msgstr ""
2167
+
2168
+ #: includes/customclass/class-wpvivid-sftpclass.php:109
2169
+ #: includes/customclass/class-wpvivid-sftpclass.php:224
2170
+ msgid "Enter the server port."
2171
+ msgstr ""
2172
+
2173
+ #: includes/customclass/class-wpvivid-sftpclass.php:116
2174
+ #: includes/customclass/class-wpvivid-sftpclass.php:231
2175
+ msgid "Absolute path must exist(e.g. /var)"
2176
+ msgstr ""
2177
+
2178
+ #: includes/customclass/class-wpvivid-sftpclass.php:121
2179
+ #: includes/customclass/class-wpvivid-sftpclass.php:236
2180
+ msgid "Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/"
2181
+ msgstr ""
2182
+
2183
+ #: includes/customclass/class-wpvivid-sftpclass.php:148
2184
+ msgid "Click the button to connect to SFTP server and add it to the storage list below."
2185
+ msgstr ""
2186
+
readme.txt CHANGED
@@ -2,13 +2,13 @@
2
  Contributors: wpvivid
3
  Tags: move, clone, migrate, copy, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
- Tested up to: 5.3.2
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.37
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
11
- Migrate a backup of WP site to a new host (a new domain),schedule and send a backup to leading remote storage. All in one backup&migration plugin
12
 
13
  == Description ==
14
  WPvivid Backup Plugin is the only free all-in-one backup, restore and migration WordPress plugin.
@@ -177,6 +177,9 @@ Thank you for translating WPvivid Backup Plugin to your languages!
177
  * [Shohei OKADA](https://ja.gravatar.com/silversword0630)(Japanese)
178
 
179
  == Changelog ==
 
 
 
180
  = 0.9.37 =
181
  - Changed the time in the name of the backup zip to the sites local time.
182
  - Changed the time showed in the backup list and log list to the sites local time.
2
  Contributors: wpvivid
3
  Tags: move, clone, migrate, copy, backup, restore, auto backup, cloud backup
4
  Requires at least: 4.5
5
+ Tested up to: 5.4
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.38
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
11
+ Migrate a backup of WP site to a new host (or domain),schedule and send a backup to leading remote storage. All in one backup & migration plugin
12
 
13
  == Description ==
14
  WPvivid Backup Plugin is the only free all-in-one backup, restore and migration WordPress plugin.
177
  * [Shohei OKADA](https://ja.gravatar.com/silversword0630)(Japanese)
178
 
179
  == Changelog ==
180
+ = 0.9.38 =
181
+ - Successfully tested with WordPress 5.4.
182
+ - Added a new language template for translators.
183
  = 0.9.37 =
184
  - Changed the time in the name of the backup zip to the sites local time.
185
  - Changed the time showed in the backup list and log list to the sites local time.
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.37
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.37' );
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.38
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.38' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');