Migration, Backup, Staging – WPvivid - Version 0.9.43

Version Description

  • Optimized migration process.
  • Fixed some bugs in the plugin code.
  • Optimized the plugin code.
Download this release

Release Info

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

Code changes from version 0.9.42 to 0.9.43

Files changed (45) hide show
  1. admin/class-wpvivid-admin.php +104 -112
  2. admin/partials/wpvivid-admin-display.php +2 -2
  3. admin/partials/wpvivid-backup-restore-page-display.php +62 -62
  4. admin/partials/wpvivid-remote-storage-page-display.php +14 -14
  5. admin/partials/wpvivid-schedule-page-display.php +16 -16
  6. admin/partials/wpvivid-settings-page-display.php +76 -76
  7. includes/class-wpvivid-backup-database.php +35 -5
  8. includes/class-wpvivid-backup-uploader.php +4 -4
  9. includes/class-wpvivid-backup.php +20 -15
  10. includes/class-wpvivid-backuplist.php +4 -4
  11. includes/class-wpvivid-crypt.php +146 -0
  12. includes/class-wpvivid-export-import.php +61 -61
  13. includes/class-wpvivid-exporter.php +7 -7
  14. includes/class-wpvivid-function-realize.php +6 -6
  15. includes/class-wpvivid-i18n.php +1 -1
  16. includes/class-wpvivid-importer.php +19 -19
  17. includes/class-wpvivid-interface-mainwp.php +5 -5
  18. includes/class-wpvivid-mail-report.php +1 -1
  19. includes/class-wpvivid-migrate.php +45 -44
  20. includes/class-wpvivid-mysqldump-wpdb.php +0 -770
  21. includes/class-wpvivid-mysqldump.php +11 -14
  22. includes/class-wpvivid-public-interface.php +5 -5
  23. includes/class-wpvivid-restore-database.php +91 -7
  24. includes/class-wpvivid-restore-site.php +19 -5
  25. includes/class-wpvivid-restore.php +87 -1
  26. includes/class-wpvivid-schedule.php +9 -9
  27. includes/class-wpvivid-tab-page-container.php +2 -2
  28. includes/class-wpvivid-taskmanager.php +1 -1
  29. includes/class-wpvivid-zipclass.php +1 -1
  30. includes/class-wpvivid.php +116 -95
  31. includes/customclass/class-wpvivid-amazons3-plus.php +38 -38
  32. includes/customclass/class-wpvivid-dropbox.php +22 -22
  33. includes/customclass/class-wpvivid-ftpclass.php +36 -36
  34. includes/customclass/class-wpvivid-google-drive.php +26 -26
  35. includes/customclass/class-wpvivid-one-drive.php +22 -22
  36. includes/customclass/class-wpvivid-s3compat.php +33 -33
  37. includes/customclass/class-wpvivid-sftpclass.php +33 -33
  38. languages/{wpvivid-bg_BG.mo → wpvivid-backuprestore-bg_BG.mo} +0 -0
  39. languages/{wpvivid-bg_BG.po → wpvivid-backuprestore-bg_BG.po} +2 -2
  40. languages/wpvivid-backuprestore-it_IT.mo +0 -0
  41. languages/{wpvivid-it_IT.po → wpvivid-backuprestore-it_IT.po} +299 -859
  42. languages/{wpvivid.pot → wpvivid-backuprestore.pot} +0 -0
  43. languages/wpvivid-it_IT.mo +0 -0
  44. readme.txt +7 -3
  45. wpvivid-backuprestore.php +3 -3
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', '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';
@@ -111,7 +111,7 @@ class WPvivid_Admin {
111
  {
112
  $submenu['parent_slug']=$this->plugin_name;
113
  $submenu['page_title']='WPvivid Backup';
114
- $submenu['menu_title']=__('Backup & Restore', 'wpvivid');
115
  $submenu['capability']='administrator';
116
  $submenu['menu_slug']=$this->plugin_name;
117
  $submenu['function']=array($this, 'display_plugin_setup_page');
@@ -120,7 +120,7 @@ class WPvivid_Admin {
120
 
121
  $submenu['parent_slug']=$this->plugin_name;
122
  $submenu['page_title']='WPvivid Backup';
123
- $submenu['menu_title']=__('Settings', 'wpvivid');
124
  $submenu['capability']='administrator';
125
  $submenu['menu_slug']='wpvivid-setting';
126
  $submenu['function']=array($this, 'display_plugin_setup_page');
@@ -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').' '.$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>
@@ -206,11 +206,11 @@ class WPvivid_Admin {
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');
@@ -358,7 +358,7 @@ class WPvivid_Admin {
358
  if($need_review=='not')
359
  {
360
  WPvivid_Setting::update_option('wpvivid_need_review','show');
361
- $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.', 'wpvivid');
362
  WPvivid_Setting::update_option('wpvivid_review_msg',$msg);
363
  }
364
  else{
@@ -451,10 +451,10 @@ class WPvivid_Admin {
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
- <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid').'" /></span>
458
  </div>
459
  </div>';
460
  }
@@ -469,10 +469,10 @@ class WPvivid_Admin {
469
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
470
  <p>' . $review_msg . '</p>
471
  <div style="padding-bottom: 10px;">
472
- <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid').'" /></span>
473
- <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid').'" /></span>
474
- <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid').'" /></span>
475
- <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid').'" /></span>
476
  </div>
477
  </div>';
478
  }
@@ -508,7 +508,7 @@ class WPvivid_Admin {
508
  $amazons3_notice = WPvivid_Setting::get_option('wpvivid_amazons3_notice', 'not init');
509
  if($amazons3_notice === 'not init')
510
  {
511
- $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');
512
  echo '<div class="notice notice-warning" id="wpvivid_amazons3_notice">
513
  <p>' . $notice_message . '</p>
514
  <div style="padding-bottom: 10px;">
@@ -560,21 +560,21 @@ class WPvivid_Admin {
560
  }
561
  }
562
  if($figure == 1){
563
- echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extension is not detected. Please install the extension first.', 'wpvivid'), $msg).'</p></div>';
564
  }
565
  else{
566
- echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extensions are not detected. Please install the extensions first.', 'wpvivid'), $msg).'</p></div>';
567
  }
568
  }
569
 
570
  if (!class_exists('PclZip')) include_once(ABSPATH.'/wp-admin/includes/class-pclzip.php');
571
  if (!class_exists('PclZip')) {
572
- echo '<div class="notice notice-error"><p>'.__('Class PclZip is not detected. Please update or reinstall your WordPress.', 'wpvivid').'</p></div>';
573
  }
574
 
575
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
576
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
577
- 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>';
578
  }
579
  }
580
 
@@ -600,17 +600,17 @@ class WPvivid_Admin {
600
  echo WPVIVID_PLUGIN_URL;
601
  ?>';
602
  var wpvivid_log_count = '<?php
603
- _e(sizeof($loglist['log_list']['file']), 'wpvivid');
604
  ?>';
605
  var wpvivid_log_array = '<?php
606
- _e(json_encode($loglist), 'wpvivid');
607
  ?>';
608
  var wpvivid_page_request = '<?php
609
  $page_request = WPvivid_Admin::wpvivid_get_page_request();
610
- _e($page_request, 'wpvivid');
611
  ?>';
612
  var wpvivid_default_remote_storage = '<?php
613
- _e($default_remote_storage, 'wpvivid');
614
  ?>';
615
  </script>
616
  <?php
@@ -634,44 +634,44 @@ class WPvivid_Admin {
634
 
635
  public function wpvivid_add_tab_backup_restore(){
636
  ?>
637
- <a href="#" id="wpvivid_tab_general" class="nav-tab wrap-nav-tab nav-tab-active" onclick="switchTabs(event,'general-page')"><?php _e('Backup & Restore', 'wpvivid'); ?></a>
638
  <?php
639
  }
640
 
641
  public function wpvivid_add_tab_schedule(){
642
  ?>
643
- <a href="#" id="wpvivid_tab_schedule" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'schedule-page')"><?php _e('Schedule', 'wpvivid'); ?></a>
644
  <?php
645
  }
646
 
647
  public function wpvivid_add_tab_remote_storage(){
648
  ?>
649
- <a href="#" id="wpvivid_tab_remote_storage" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'storage-page')"><?php _e('Remote Storage', 'wpvivid'); ?></a>
650
  <?php
651
  }
652
 
653
  public function wpvivid_add_tab_setting(){
654
  ?>
655
- <a href="#" id="wpvivid_tab_setting" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'settings-page')"><?php _e('Settings', 'wpvivid'); ?></a>
656
  <?php
657
  }
658
 
659
  public function wpvivid_add_tab_website_info(){
660
  ?>
661
- <a href="#" id="wpvivid_tab_debug" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'debug-page')"><?php _e('Debug', 'wpvivid'); ?></a>
662
  <?php
663
  }
664
 
665
  public function wpvivid_add_tab_log(){
666
  ?>
667
- <a href="#" id="wpvivid_tab_log" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'logs-page')"><?php _e('Logs', 'wpvivid'); ?></a>
668
  <?php
669
  }
670
 
671
  public function wpvivid_add_tab_read_log(){
672
  ?>
673
  <a href="#" id="wpvivid_tab_read_log" class="nav-tab wrap-nav-tab delete" onclick="switchTabs(event,'log-read-page')" style="display: none;">
674
- <div style="margin-right: 15px;"><?php _e('Log', 'wpvivid'); ?></div>
675
  <div class="nav-tab-delete-img">
676
  <img src="<?php echo esc_url( WPVIVID_PLUGIN_URL.'/admin/partials/images/delete-tab.png' ); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_read_log', 'wrap', 'wpvivid_tab_log');" />
677
  </div>
@@ -682,7 +682,7 @@ class WPvivid_Admin {
682
  public function wpvivid_add_tab_mwp(){
683
  ?>
684
  <a href="#" id="wpvivid_tab_mainwp" class="nav-tab wrap-nav-tab delete" onclick="switchTabs(event, 'mwp-page')">
685
- <div style="margin-right: 15px;"><?php _e('MainWP', 'wpvivid'); ?></div>
686
  <div class="nav-tab-delete-img">
687
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/delete-tab.png'); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_mainwp', 'wrap', 'wpvivid_tab_general');" />
688
  </div>
@@ -692,7 +692,7 @@ class WPvivid_Admin {
692
 
693
  public function wpvivid_add_tab_premium(){
694
  ?>
695
- <a href="#" id="wpvivid_tab_premium" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'premium-page')"><?php _e('Premium', 'wpvivid'); ?></a>
696
  <?php
697
  }
698
 
@@ -734,7 +734,7 @@ class WPvivid_Admin {
734
  <?php do_action('wpvivid_schedule_add_cell'); ?>
735
  <tfoot>
736
  <tr>
737
- <th class="row-title"><input class="button-primary storage-account-button" id="wpvivid_schedule_save" type="submit" name="" value="<?php esc_attr_e( 'Save Changes', 'wpvivid' ); ?>" /></th>
738
  <th></th>
739
  </tr>
740
  </tfoot>
@@ -821,7 +821,7 @@ class WPvivid_Admin {
821
  ?>
822
  </h2>
823
  <?php do_action('wpvivid_settingpage_add_page'); ?>
824
- <div><input class="button-primary" id="wpvivid_setting_general_save" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid' ); ?>" /></div>
825
  </div>
826
  </div>
827
  <script>
@@ -869,18 +869,18 @@ class WPvivid_Admin {
869
  ?>
870
  <div id="debug-page" class="wrap-tab-content wpvivid_tab_debug" name="tab-debug" style="display:none;">
871
  <table class="widefat">
872
- <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>
873
  <div style="padding-left: 10px;">
874
- <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'); ?>
875
  </div>
876
  <div style="padding:10px 10px 0">
877
- <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 />
878
- <span class="wpvivid-element-space-right"><?php _e('Your email:', 'wpvivid'); ?></span><input type="text" id="wpvivid_user_mail" />
879
  </div>
880
  <div style="padding:10px 10px 0">
881
  <div style="float: left;">
882
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
883
- <?php _e('I am using:', 'wpvivid'); ?>
884
  </div>
885
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
886
  <select id="wpvivid_debug_type">
@@ -892,7 +892,7 @@ class WPvivid_Admin {
892
  </div>
893
  <div id="wpvivid_debug_host" style="float: left;">
894
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
895
- <?php _e('My web hosting provider is:', 'wpvivid'); ?>
896
  </div>
897
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
898
  <input type="text" id="wpvivid_host_provider"/></div>
@@ -901,22 +901,22 @@ class WPvivid_Admin {
901
  <div style="clear: both;"></div>
902
  </div>
903
  <div style="padding:0 10px;">
904
- <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>
905
  </div>
906
  <div class="schedule-tab-block">
907
- <input class="button-primary" type="submit" value="<?php esc_attr_e( 'Send Debug Information to Us', 'wpvivid' ); ?>" onclick="wpvivid_click_send_debug_info();" />
908
  </div>
909
  <div style="clear:both;"></div>
910
  <div style="padding-left: 10px;">
911
- <strong><?php _e('Method 2.'); ?></strong> <?php _e('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.', 'wpvivid'); ?>
912
  </div>
913
  <div class="schedule-tab-block">
914
- <input class="button-primary" id="wpvivid_download_website_info" type="submit" name="download-website-info" value="<?php esc_attr_e( 'Download', 'wpvivid' ); ?>" />
915
  </div>
916
  <thead class="website-info-head">
917
  <tr>
918
- <th class="row-title" style="min-width: 260px;"><?php _e( 'Website Info Key', 'wpvivid' ); ?></th>
919
- <th><?php _e( 'Website Info Value', 'wpvivid' ); ?></th>
920
  </tr>
921
  </thead>
922
  <tbody class="wpvivid-websiteinfo-list" id="wpvivid_websiteinfo_list">
@@ -951,8 +951,8 @@ class WPvivid_Admin {
951
  }
952
  ?>
953
  <tr>
954
- <td class="row-title tablelistcolumn"><label for="tablecell"><?php _e($key, 'wpvivid'); ?></label></td>
955
- <td class="tablelistcolumn"><?php _e($website_value, 'wpvivid'); ?></td>
956
  </tr>
957
  <?php }} ?>
958
  </tbody>
@@ -1029,10 +1029,10 @@ class WPvivid_Admin {
1029
  <table class="wp-list-table widefat plugins">
1030
  <thead class="log-head">
1031
  <tr>
1032
- <th class="row-title"><?php _e( 'Date', 'wpvivid' ); ?></th>
1033
- <th><?php _e( 'Log Type', 'wpvivid' ); ?></th>
1034
- <th><?php _e( 'Log File Name', 'wpvivid' ); ?></th>
1035
- <th><?php _e( 'Action', 'wpvivid' ); ?></th>
1036
  </tr>
1037
  </thead>
1038
  <tbody class="wpvivid-loglist" id="wpvivid_loglist">
@@ -1044,7 +1044,7 @@ class WPvivid_Admin {
1044
  </tbody>
1045
  </table>
1046
  <div style="padding-top: 10px; text-align: center;">
1047
- <input class="button-secondary log-page" id="wpvivid_pre_log_page" type="submit" value="<?php esc_attr_e( ' < Pre page ', 'wpvivid' ); ?>" />
1048
  <div style="font-size: 12px; display: inline-block; padding-left: 10px;">
1049
  <span id="wpvivid_log_page_info" style="line-height: 35px;">
1050
  <?php
@@ -1055,7 +1055,7 @@ class WPvivid_Admin {
1055
  ?>
1056
  </span>
1057
  </div>
1058
- <input class="button-secondary log-page" id="wpvivid_next_log_page" type="submit" value="<?php esc_attr_e( ' Next page > ', 'wpvivid' ); ?>" />
1059
  <div style="float: right;">
1060
  <select name="" id="wpvivid_display_log_count">
1061
  <?php
@@ -1163,40 +1163,32 @@ class WPvivid_Admin {
1163
  <div id="mwp-page" class="wrap-tab-content wpvivid_tab_mainwp" name="tab-mwp" style="display:none;">
1164
  <div style="padding: 10px; background-color: #fff;">
1165
  <div style="margin-bottom: 10px;">
1166
- <?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'); ?>
1167
  </div>
1168
  <div style="margin-bottom: 10px;">
1169
- <input type="button" class="button-primary" id="wpvivid_download_mainwp_extension" value="<?php esc_attr_e('Download WPvivid Backup for MainWP', 'wpvivid'); ?>" />
1170
  </div>
1171
  <div style="margin-bottom: 10px;">
1172
- <?php _e('1. Create and download backups for a specific child site', 'wpvivid'); ?>
1173
  </div>
1174
  <div style="margin-bottom: 10px;">
1175
- <?php _e('2. Set backup schedules for all child sites', 'wpvivid'); ?>
1176
  </div>
1177
  <div style="margin-bottom: 10px;">
1178
  <?php
1179
- echo __('3. Set WPvivid Backup Free and Pro settings for all child sites', 'wpvivid');
1180
  ?>
1181
  </div>
1182
  <div style="margin-bottom: 10px;">
1183
  <?php
1184
- echo __('4. Install, claim and update WPvivid Backup Pro for child sites in bulk', 'wpvivid');
1185
  ?>
1186
  </div>
1187
- <div style="margin-bottom: 10px;">
1188
- <?php
1189
- echo __('5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)', 'wpvivid');
1190
- ?>
1191
- </div>
1192
- <div style="margin-bottom: 10px;">
1193
  <?php
1194
- echo __('We also offer a 40% off discount on WPvivid Backup Pro for MainWP users.', 'wpvivid');
1195
  ?>
1196
  </div>
1197
- <div>
1198
- <input type="button" class="button-primary" id="wpvivid_ask_for_discount" value="<?php esc_attr_e('Ask For A 40% OFF Discount', 'wpvivid'); ?>" />
1199
- </div>
1200
  </div>
1201
  </div>
1202
  <script>
@@ -1218,38 +1210,38 @@ class WPvivid_Admin {
1218
  <table class="wp-list-table widefat plugins" style="border-collapse: collapse;">
1219
  <thead>
1220
  <tr class="backup-list-head" style="border-bottom: 0;">
1221
- <th><?php _e('Pro Version Features', 'wpvivid'); ?></th>
1222
- <th style="text-align:center;"><?php _e('Basic', 'wpvivid'); ?></th>
1223
- <th style="text-align:center;"><?php _e('Freelancer', 'wpvivid'); ?></th>
1224
- <th style="text-align:center;"><?php _e('Ultimate', 'wpvivid'); ?></th>
1225
  </tr>
1226
  </thead>
1227
  <tbody class="wpvivid-backuplist">
1228
  <tr style="">
1229
  <td>
1230
- <p><strong><?php _e('Websites', 'wpvivid'); ?></strong></p>
1231
- <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid'); ?></p>
1232
- <p style="color: #dd9933;"><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Incremental Backup', 'wpvivid'); ?></p>
1233
- <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Create a restore point', 'wpvivid'); ?></p>
1234
- <p><strong><?php _e('Backup:', 'wpvivid'); ?></strong>&nbsp<?php _e('Include/exclude files/folders', 'wpvivid'); ?></p>
1235
- <p><strong><?php _e('Migration:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid'); ?></p>
1236
- <p><strong><?php _e('Migration:', 'wpvivid'); ?></strong>&nbsp<?php _e('Migration via remote storage', 'wpvivid'); ?></p>
1237
- <p><strong><?php _e('Remote Storage:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Directory (leading cloud storage providers)', 'wpvivid'); ?></p>
1238
- <p><strong><?php _e('Remote Storage:', 'wpvivid'); ?></strong>&nbsp<?php _e('WASABI/Pcloud (Only Pro)', 'wpvivid'); ?></p>
1239
- <p style="color: #dd9933;"><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Incremental Backup Schedule', 'wpvivid'); ?></p>
1240
- <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom Timezone', 'wpvivid'); ?></p>
1241
- <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom content for each schedule', 'wpvivid'); ?></p>
1242
- <p><strong><?php _e('Schedule:', 'wpvivid'); ?></strong>&nbsp<?php _e('Custom start time of schedule', 'wpvivid'); ?></p>
1243
- <p><strong><?php _e('Restore:', 'wpvivid'); ?></strong>&nbsp<?php _e('Restore a website from remote storage', 'wpvivid'); ?></p>
1244
- <p><strong><?php _e('Restore:', 'wpvivid'); ?></strong>&nbsp<?php _e('Restore what you want from a backup', 'wpvivid'); ?></p>
1245
- <p><strong><?php _e('Email Reports:', 'wpvivid'); ?></strong>&nbsp<?php _e('Send email reports to multiple email addresses', 'wpvivid'); ?></p>
1246
- <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>
1247
- <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>
1248
- <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>
1249
- <p><strong><?php _e('Support:', 'wpvivid'); ?></strong>&nbsp<?php _e('Ticket 7x24 support', 'wpvivid'); ?></p>
1250
  </td>
1251
  <td style="text-align:center;">
1252
- <p><?php _e('Up to 3 sites', 'wpvivid'); ?></p>
1253
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1254
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1255
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1271,7 +1263,7 @@ class WPvivid_Admin {
1271
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1272
  </td>
1273
  <td style="text-align:center;">
1274
- <p><?php _e('Up to 100 sites', 'wpvivid'); ?></p>
1275
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1276
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1277
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1293,7 +1285,7 @@ class WPvivid_Admin {
1293
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1294
  </td>
1295
  <td style="text-align:center;">
1296
- <p><?php _e('Unlimited', 'wpvivid'); ?></p>
1297
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1298
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1299
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
@@ -1318,8 +1310,8 @@ class WPvivid_Admin {
1318
  </tbody>
1319
  <tfoot>
1320
  <tr>
1321
- <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>
1322
- <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>
1323
  </tr>
1324
  </tfoot>
1325
  </table>
97
 
98
  $menu['id']='wpvivid_admin_menu_backup';
99
  $menu['parent']='wpvivid_admin_menu';
100
+ $menu['title']=__('Backup & Restore', 'wpvivid-backuprestore');
101
  $menu['tab']='admin.php?page=WPvivid&tab-backup';
102
  $menu['href']=$admin_url . 'admin.php?page=WPvivid&tab-backup';
103
  $menu['capability']='administrator';
111
  {
112
  $submenu['parent_slug']=$this->plugin_name;
113
  $submenu['page_title']='WPvivid Backup';
114
+ $submenu['menu_title']=__('Backup & Restore', 'wpvivid-backuprestore');
115
  $submenu['capability']='administrator';
116
  $submenu['menu_slug']=$this->plugin_name;
117
  $submenu['function']=array($this, 'display_plugin_setup_page');
120
 
121
  $submenu['parent_slug']=$this->plugin_name;
122
  $submenu['page_title']='WPvivid Backup';
123
+ $submenu['menu_title']=__('Settings', 'wpvivid-backuprestore');
124
  $submenu['capability']='administrator';
125
  $submenu['menu_slug']='wpvivid-setting';
126
  $submenu['function']=array($this, 'display_plugin_setup_page');
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-backuprestore').' '.$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-backuprestore').'</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-backuprestore').'</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-backuprestore').'</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-backuprestore').'</td>
158
  </tr>
159
  </tbody>
160
  </table>
161
  </div>
162
  </div>
163
  <div class="postbox">
164
+ <h2><span>'.__('How-to', 'wpvivid-backuprestore').'</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-backuprestore').'</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-backuprestore').'</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-backuprestore').'</a></td></tr>
171
+ <tr><td class="row-title"><a href="https://wpvivid.com/get-started-transfer-site.html" target="_blank">'.__('Migrate WordPress', 'wpvivid-backuprestore').'</a></td></tr>
172
  </tbody>
173
  </table>
174
  </div>
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-backuprestore'),
210
+ 'error' => __('Error:', 'wpvivid-backuprestore'),
211
+ 'remotealias' => __('Warning: An alias for remote storage is required.', 'wpvivid-backuprestore'),
212
+ 'remoteexist' => __('Warning: The alias already exists in storage list.', 'wpvivid-backuprestore'),
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-backuprestore'),
214
  ));
215
 
216
  wp_enqueue_script('plupload-all');
358
  if($need_review=='not')
359
  {
360
  WPvivid_Setting::update_option('wpvivid_need_review','show');
361
+ $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.', 'wpvivid-backuprestore');
362
  WPvivid_Setting::update_option('wpvivid_review_msg',$msg);
363
  }
364
  else{
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-backuprestore').'" /></span>
455
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid-backuprestore').'" /></span>
456
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid-backuprestore').'" /></span>
457
+ <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid-backuprestore').'" /></span>
458
  </div>
459
  </div>';
460
  }
469
  echo '<div class="notice notice-info is-dismissible" id="wpvivid_notice_rate">
470
  <p>' . $review_msg . '</p>
471
  <div style="padding-bottom: 10px;">
472
+ <span><input type="button" class="button-primary" option="review" name="rate-now" value="'.esc_attr('Rate Us', 'wpvivid-backuprestore').'" /></span>
473
+ <span><input type="button" class="button-secondary" option="review" name="ask-later" value="'.esc_attr('Maybe Later', 'wpvivid-backuprestore').'" /></span>
474
+ <span><input type="button" class="button-secondary" option="review" name="never-ask" value="'.esc_attr('Never', 'wpvivid-backuprestore').'" /></span>
475
+ <span><input type="button" class="button-secondary" option="review" name="already-done" value="'.esc_attr('Already Done', 'wpvivid-backuprestore').'" /></span>
476
  </div>
477
  </div>';
478
  }
508
  $amazons3_notice = WPvivid_Setting::get_option('wpvivid_amazons3_notice', 'not init');
509
  if($amazons3_notice === 'not init')
510
  {
511
+ $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-backuprestore');
512
  echo '<div class="notice notice-warning" id="wpvivid_amazons3_notice">
513
  <p>' . $notice_message . '</p>
514
  <div style="padding-bottom: 10px;">
560
  }
561
  }
562
  if($figure == 1){
563
+ echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extension is not detected. Please install the extension first.', 'wpvivid-backuprestore'), $msg).'</p></div>';
564
  }
565
  else{
566
+ echo '<div class="notice notice-error"><p>'.sprintf(__('The %s extensions are not detected. Please install the extensions first.', 'wpvivid-backuprestore'), $msg).'</p></div>';
567
  }
568
  }
569
 
570
  if (!class_exists('PclZip')) include_once(ABSPATH.'/wp-admin/includes/class-pclzip.php');
571
  if (!class_exists('PclZip')) {
572
+ echo '<div class="notice notice-error"><p>'.__('Class PclZip is not detected. Please update or reinstall your WordPress.', 'wpvivid-backuprestore').'</p></div>';
573
  }
574
 
575
  $hide_notice = get_option('wpvivid_hide_wp_cron_notice', false);
576
  if(defined( 'DISABLE_WP_CRON' ) && DISABLE_WP_CRON && $hide_notice === false){
577
+ echo '<div class="notice notice-error notice-wp-cron is-dismissible"><p>'.__('In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false.', 'wpvivid-backuprestore').'</p></div>';
578
  }
579
  }
580
 
600
  echo WPVIVID_PLUGIN_URL;
601
  ?>';
602
  var wpvivid_log_count = '<?php
603
+ _e(sizeof($loglist['log_list']['file']), 'wpvivid-backuprestore');
604
  ?>';
605
  var wpvivid_log_array = '<?php
606
+ _e(json_encode($loglist), 'wpvivid-backuprestore');
607
  ?>';
608
  var wpvivid_page_request = '<?php
609
  $page_request = WPvivid_Admin::wpvivid_get_page_request();
610
+ _e($page_request, 'wpvivid-backuprestore');
611
  ?>';
612
  var wpvivid_default_remote_storage = '<?php
613
+ _e($default_remote_storage, 'wpvivid-backuprestore');
614
  ?>';
615
  </script>
616
  <?php
634
 
635
  public function wpvivid_add_tab_backup_restore(){
636
  ?>
637
+ <a href="#" id="wpvivid_tab_general" class="nav-tab wrap-nav-tab nav-tab-active" onclick="switchTabs(event,'general-page')"><?php _e('Backup & Restore', 'wpvivid-backuprestore'); ?></a>
638
  <?php
639
  }
640
 
641
  public function wpvivid_add_tab_schedule(){
642
  ?>
643
+ <a href="#" id="wpvivid_tab_schedule" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'schedule-page')"><?php _e('Schedule', 'wpvivid-backuprestore'); ?></a>
644
  <?php
645
  }
646
 
647
  public function wpvivid_add_tab_remote_storage(){
648
  ?>
649
+ <a href="#" id="wpvivid_tab_remote_storage" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'storage-page')"><?php _e('Remote Storage', 'wpvivid-backuprestore'); ?></a>
650
  <?php
651
  }
652
 
653
  public function wpvivid_add_tab_setting(){
654
  ?>
655
+ <a href="#" id="wpvivid_tab_setting" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'settings-page')"><?php _e('Settings', 'wpvivid-backuprestore'); ?></a>
656
  <?php
657
  }
658
 
659
  public function wpvivid_add_tab_website_info(){
660
  ?>
661
+ <a href="#" id="wpvivid_tab_debug" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'debug-page')"><?php _e('Debug', 'wpvivid-backuprestore'); ?></a>
662
  <?php
663
  }
664
 
665
  public function wpvivid_add_tab_log(){
666
  ?>
667
+ <a href="#" id="wpvivid_tab_log" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'logs-page')"><?php _e('Logs', 'wpvivid-backuprestore'); ?></a>
668
  <?php
669
  }
670
 
671
  public function wpvivid_add_tab_read_log(){
672
  ?>
673
  <a href="#" id="wpvivid_tab_read_log" class="nav-tab wrap-nav-tab delete" onclick="switchTabs(event,'log-read-page')" style="display: none;">
674
+ <div style="margin-right: 15px;"><?php _e('Log', 'wpvivid-backuprestore'); ?></div>
675
  <div class="nav-tab-delete-img">
676
  <img src="<?php echo esc_url( WPVIVID_PLUGIN_URL.'/admin/partials/images/delete-tab.png' ); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_read_log', 'wrap', 'wpvivid_tab_log');" />
677
  </div>
682
  public function wpvivid_add_tab_mwp(){
683
  ?>
684
  <a href="#" id="wpvivid_tab_mainwp" class="nav-tab wrap-nav-tab delete" onclick="switchTabs(event, 'mwp-page')">
685
+ <div style="margin-right: 15px;"><?php _e('MainWP', 'wpvivid-backuprestore'); ?></div>
686
  <div class="nav-tab-delete-img">
687
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/delete-tab.png'); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_mainwp', 'wrap', 'wpvivid_tab_general');" />
688
  </div>
692
 
693
  public function wpvivid_add_tab_premium(){
694
  ?>
695
+ <a href="#" id="wpvivid_tab_premium" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'premium-page')"><?php _e('Premium', 'wpvivid-backuprestore'); ?></a>
696
  <?php
697
  }
698
 
734
  <?php do_action('wpvivid_schedule_add_cell'); ?>
735
  <tfoot>
736
  <tr>
737
+ <th class="row-title"><input class="button-primary storage-account-button" id="wpvivid_schedule_save" type="submit" name="" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></th>
738
  <th></th>
739
  </tr>
740
  </tfoot>
821
  ?>
822
  </h2>
823
  <?php do_action('wpvivid_settingpage_add_page'); ?>
824
+ <div><input class="button-primary" id="wpvivid_setting_general_save" type="submit" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></div>
825
  </div>
826
  </div>
827
  <script>
869
  ?>
870
  <div id="debug-page" class="wrap-tab-content wpvivid_tab_debug" name="tab-debug" style="display:none;">
871
  <table class="widefat">
872
+ <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-backuprestore'); ?></div>
873
  <div style="padding-left: 10px;">
874
+ <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-backuprestore'); ?>
875
  </div>
876
  <div style="padding:10px 10px 0">
877
+ <span class="wpvivid-element-space-right"><?php echo __('WPvivid support email:', 'wpvivid-backuprestore'); ?></span><input type="text" id="wpvivid_support_mail" value="support@wpvivid.com" readonly />
878
+ <span class="wpvivid-element-space-right"><?php _e('Your email:', 'wpvivid-backuprestore'); ?></span><input type="text" id="wpvivid_user_mail" />
879
  </div>
880
  <div style="padding:10px 10px 0">
881
  <div style="float: left;">
882
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
883
+ <?php _e('I am using:', 'wpvivid-backuprestore'); ?>
884
  </div>
885
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
886
  <select id="wpvivid_debug_type">
892
  </div>
893
  <div id="wpvivid_debug_host" style="float: left;">
894
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right wpvivid-debug-text-fix" style="float: left;">
895
+ <?php _e('My web hosting provider is:', 'wpvivid-backuprestore'); ?>
896
  </div>
897
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
898
  <input type="text" id="wpvivid_host_provider"/></div>
901
  <div style="clear: both;"></div>
902
  </div>
903
  <div style="padding:0 10px;">
904
+ <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-backuprestore'); ?>" ></textarea>
905
  </div>
906
  <div class="schedule-tab-block">
907
+ <input class="button-primary" type="submit" value="<?php esc_attr_e( 'Send Debug Information to Us', 'wpvivid-backuprestore' ); ?>" onclick="wpvivid_click_send_debug_info();" />
908
  </div>
909
  <div style="clear:both;"></div>
910
  <div style="padding-left: 10px;">
911
+ <strong><?php _e('Method 2.'); ?></strong> <?php _e('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.', 'wpvivid-backuprestore'); ?>
912
  </div>
913
  <div class="schedule-tab-block">
914
+ <input class="button-primary" id="wpvivid_download_website_info" type="submit" name="download-website-info" value="<?php esc_attr_e( 'Download', 'wpvivid-backuprestore' ); ?>" />
915
  </div>
916
  <thead class="website-info-head">
917
  <tr>
918
+ <th class="row-title" style="min-width: 260px;"><?php _e( 'Website Info Key', 'wpvivid-backuprestore' ); ?></th>
919
+ <th><?php _e( 'Website Info Value', 'wpvivid-backuprestore' ); ?></th>
920
  </tr>
921
  </thead>
922
  <tbody class="wpvivid-websiteinfo-list" id="wpvivid_websiteinfo_list">
951
  }
952
  ?>
953
  <tr>
954
+ <td class="row-title tablelistcolumn"><label for="tablecell"><?php _e($key, 'wpvivid-backuprestore'); ?></label></td>
955
+ <td class="tablelistcolumn"><?php _e($website_value, 'wpvivid-backuprestore'); ?></td>
956
  </tr>
957
  <?php }} ?>
958
  </tbody>
1029
  <table class="wp-list-table widefat plugins">
1030
  <thead class="log-head">
1031
  <tr>
1032
+ <th class="row-title"><?php _e( 'Date', 'wpvivid-backuprestore' ); ?></th>
1033
+ <th><?php _e( 'Log Type', 'wpvivid-backuprestore' ); ?></th>
1034
+ <th><?php _e( 'Log File Name', 'wpvivid-backuprestore' ); ?></th>
1035
+ <th><?php _e( 'Action', 'wpvivid-backuprestore' ); ?></th>
1036
  </tr>
1037
  </thead>
1038
  <tbody class="wpvivid-loglist" id="wpvivid_loglist">
1044
  </tbody>
1045
  </table>
1046
  <div style="padding-top: 10px; text-align: center;">
1047
+ <input class="button-secondary log-page" id="wpvivid_pre_log_page" type="submit" value="<?php esc_attr_e( ' < Pre page ', 'wpvivid-backuprestore' ); ?>" />
1048
  <div style="font-size: 12px; display: inline-block; padding-left: 10px;">
1049
  <span id="wpvivid_log_page_info" style="line-height: 35px;">
1050
  <?php
1055
  ?>
1056
  </span>
1057
  </div>
1058
+ <input class="button-secondary log-page" id="wpvivid_next_log_page" type="submit" value="<?php esc_attr_e( ' Next page > ', 'wpvivid-backuprestore' ); ?>" />
1059
  <div style="float: right;">
1060
  <select name="" id="wpvivid_display_log_count">
1061
  <?php
1163
  <div id="mwp-page" class="wrap-tab-content wpvivid_tab_mainwp" name="tab-mwp" style="display:none;">
1164
  <div style="padding: 10px; background-color: #fff;">
1165
  <div style="margin-bottom: 10px;">
1166
+ <?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-backuprestore'); ?>
1167
  </div>
1168
  <div style="margin-bottom: 10px;">
1169
+ <input type="button" class="button-primary" id="wpvivid_download_mainwp_extension" value="<?php esc_attr_e('Download WPvivid Backup for MainWP', 'wpvivid-backuprestore'); ?>" />
1170
  </div>
1171
  <div style="margin-bottom: 10px;">
1172
+ <?php _e('1. Create and download backups for a specific child site', 'wpvivid-backuprestore'); ?>
1173
  </div>
1174
  <div style="margin-bottom: 10px;">
1175
+ <?php _e('2. Set backup schedules for all child sites', 'wpvivid-backuprestore'); ?>
1176
  </div>
1177
  <div style="margin-bottom: 10px;">
1178
  <?php
1179
+ echo __('3. Set WPvivid Backup Free and Pro settings for all child sites', 'wpvivid-backuprestore');
1180
  ?>
1181
  </div>
1182
  <div style="margin-bottom: 10px;">
1183
  <?php
1184
+ echo __('4. Install, claim and update WPvivid Backup Pro for child sites in bulk', 'wpvivid-backuprestore');
1185
  ?>
1186
  </div>
1187
+ <div>
 
 
 
 
 
1188
  <?php
1189
+ echo __('5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)', 'wpvivid-backuprestore');
1190
  ?>
1191
  </div>
 
 
 
1192
  </div>
1193
  </div>
1194
  <script>
1210
  <table class="wp-list-table widefat plugins" style="border-collapse: collapse;">
1211
  <thead>
1212
  <tr class="backup-list-head" style="border-bottom: 0;">
1213
+ <th><?php _e('Pro Version Features', 'wpvivid-backuprestore'); ?></th>
1214
+ <th style="text-align:center;"><?php _e('Basic', 'wpvivid-backuprestore'); ?></th>
1215
+ <th style="text-align:center;"><?php _e('Freelancer', 'wpvivid-backuprestore'); ?></th>
1216
+ <th style="text-align:center;"><?php _e('Ultimate', 'wpvivid-backuprestore'); ?></th>
1217
  </tr>
1218
  </thead>
1219
  <tbody class="wpvivid-backuplist">
1220
  <tr style="">
1221
  <td>
1222
+ <p><strong><?php _e('Websites', 'wpvivid-backuprestore'); ?></strong></p>
1223
+ <p><strong><?php _e('Backup:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid-backuprestore'); ?></p>
1224
+ <p style="color: #dd9933;"><strong><?php _e('Backup:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Incremental Backup', 'wpvivid-backuprestore'); ?></p>
1225
+ <p><strong><?php _e('Backup:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Create a restore point', 'wpvivid-backuprestore'); ?></p>
1226
+ <p><strong><?php _e('Backup:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Include/exclude files/folders', 'wpvivid-backuprestore'); ?></p>
1227
+ <p><strong><?php _e('Migration:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom Content', 'wpvivid-backuprestore'); ?></p>
1228
+ <p><strong><?php _e('Migration:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Migration via remote storage', 'wpvivid-backuprestore'); ?></p>
1229
+ <p><strong><?php _e('Remote Storage:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom Directory (leading cloud storage providers)', 'wpvivid-backuprestore'); ?></p>
1230
+ <p><strong><?php _e('Remote Storage:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('WASABI/Pcloud (Only Pro)', 'wpvivid-backuprestore'); ?></p>
1231
+ <p style="color: #dd9933;"><strong><?php _e('Schedule:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Incremental Backup Schedule', 'wpvivid-backuprestore'); ?></p>
1232
+ <p><strong><?php _e('Schedule:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom Timezone', 'wpvivid-backuprestore'); ?></p>
1233
+ <p><strong><?php _e('Schedule:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom content for each schedule', 'wpvivid-backuprestore'); ?></p>
1234
+ <p><strong><?php _e('Schedule:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Custom start time of schedule', 'wpvivid-backuprestore'); ?></p>
1235
+ <p><strong><?php _e('Restore:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Restore a website from remote storage', 'wpvivid-backuprestore'); ?></p>
1236
+ <p><strong><?php _e('Restore:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Restore what you want from a backup', 'wpvivid-backuprestore'); ?></p>
1237
+ <p><strong><?php _e('Email Reports:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Send email reports to multiple email addresses', 'wpvivid-backuprestore'); ?></p>
1238
+ <p style="color: #dd9933;"><strong><?php _e('Staging (add-on):', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Create a sub-directory staging site with one-click', 'wpvivid-backuprestore'); ?></p>
1239
+ <p style="color: #dd9933;"><strong><?php _e('Staging (add-on):', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Publish a staging site to a live site with one-click', 'wpvivid-backuprestore'); ?></p>
1240
+ <p style="color: #dd9933;"><strong><?php _e('Roles & Capabilities (add-on):', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Display the individual sections according to user roles & capabilities', 'wpvivid-backuprestore'); ?></p>
1241
+ <p><strong><?php _e('Support:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Ticket 7x24 support', 'wpvivid-backuprestore'); ?></p>
1242
  </td>
1243
  <td style="text-align:center;">
1244
+ <p><?php _e('Up to 3 sites', 'wpvivid-backuprestore'); ?></p>
1245
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1246
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1247
  <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
  </td>
1265
  <td style="text-align:center;">
1266
+ <p><?php _e('Up to 100 sites', 'wpvivid-backuprestore'); ?></p>
1267
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1268
  <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>
1285
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1286
  </td>
1287
  <td style="text-align:center;">
1288
+ <p><?php _e('Unlimited', 'wpvivid-backuprestore'); ?></p>
1289
  <p><span style="height: 12px;width: 12px;background-color: #81d742;border-radius: 50%;display: inline-block;"></span></p>
1290
  <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>
1310
  </tbody>
1311
  <tfoot>
1312
  <tr>
1313
+ <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-backuprestore'); ?></th>
1314
+ <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-backuprestore'); ?></a></p></th>
1315
  </tr>
1316
  </tfoot>
1317
  </table>
admin/partials/wpvivid-admin-display.php CHANGED
@@ -46,7 +46,7 @@ foreach ($page_array as $page_name){
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,7 +60,7 @@ foreach ($page_array as $page_name){
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
  }
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-backuprestore');
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-backuprestore').'</p></div>';
64
  }
65
  }
66
  }
admin/partials/wpvivid-backup-restore-page-display.php CHANGED
@@ -4,32 +4,32 @@ function wpvivid_add_backup_type($html, $type_name)
4
  {
5
  $html .= '<label>
6
  <input type="radio" option="backup" name="'.$type_name.'" value="files+db" checked />
7
- <span>'.__( 'Database + Files (WordPress Files)', 'wpvivid' ).'</span>
8
  </label><br>
9
  <label>
10
  <input type="radio" option="backup" name="'.$type_name.'" value="files" />
11
- <span>'.__( 'WordPress Files (Exclude Database)', 'wpvivid' ).'</span>
12
  </label><br>
13
  <label>
14
  <input type="radio" option="backup" name="'.$type_name.'" value="db" />
15
- <span>'.__( 'Only Database', 'wpvivid' ).'</span>
16
  </label><br>
17
  <label>
18
  <div style="float: left;">
19
  <input type="radio" disabled />
20
- <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Create a staging site', 'wpvivid').'</span>
21
  </div>
22
  <span class="wpvivid-feature-pro">
23
- <a href="https://wpvivid.com/wpvivid-backup-pro-create-staging-site" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>
24
  </span>
25
  </label><br>
26
  <label>
27
  <div style="float: left;">
28
  <input type="radio" disabled />
29
- <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>
30
  </div>
31
  <span class="wpvivid-feature-pro">
32
- <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>
33
  </span>
34
  </label><br>';
35
  return $html;
@@ -97,16 +97,16 @@ function wpvivid_backup_do_js(){
97
  }
98
 
99
  function wpvivid_download_backup_descript($html){
100
- $html = '<p><strong>'.__('About backup download', 'wpvivid').'</strong></p>';
101
  $html .= '<ul>';
102
- $html .= '<li>'.__('->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.', 'wpvivid').'</li>';
103
- $html .= '<li>'.__('->If backups are stored in web server, the plugin will list all relevant files immediately.', 'wpvivid').'</li>';
104
  $html .= '</ul>';
105
  return $html;
106
  }
107
 
108
  function wpvivid_restore_website_descript($html){
109
- $html = '<p><a href="#" id="wpvivid_how_to_restore_backup_describe" onclick="wpvivid_click_how_to_restore_backup();" style="text-decoration: none;">'.__('How to restore your website from a backup(scheduled, manual, uploaded and received backup)', 'wpvivid').'</a></p>';
110
  $html .= '<div id="wpvivid_how_to_restore_backup"></div>';
111
  return $html;
112
  }
@@ -120,14 +120,14 @@ function wpvivid_backuppage_load_backuplist($backuplist_array){
120
 
121
  function wpvivid_backuppage_add_tab_backup(){
122
  ?>
123
- <a href="#" id="wpvivid_tab_backup" class="nav-tab backup-nav-tab nav-tab-active" onclick="switchrestoreTabs(event,'page-backups')"><?php _e('Backups', 'wpvivid'); ?></a>
124
  <?php
125
  }
126
 
127
  function wpvivid_backuppage_add_tab_log(){
128
  ?>
129
  <a href="#" id="wpvivid_tab_backup_log" class="nav-tab backup-nav-tab delete" onclick="switchrestoreTabs(event,'page-log')" style="display: none;">
130
- <div style="margin-right: 15px;"><?php _e('Log', 'wpvivid'); ?></div>
131
  <div class="nav-tab-delete-img">
132
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_backup_log', 'backup', 'wpvivid_tab_backup');" />
133
  </div>
@@ -138,7 +138,7 @@ function wpvivid_backuppage_add_tab_log(){
138
  function wpvivid_backuppage_add_tab_restore(){
139
  ?>
140
  <a href="#" id="wpvivid_tab_restore" class="nav-tab backup-nav-tab delete" onclick="switchrestoreTabs(event,'page-restore')" style="display: none;">
141
- <div style="margin-right: 15px;"><?php _e('Restore', 'wpvivid'); ?></div>
142
  <div class="nav-tab-delete-img">
143
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_restore', 'backup', 'wpvivid_tab_backup');" />
144
  </div>
@@ -173,11 +173,11 @@ function wpvivid_backuppage_add_page_backup(){
173
  <thead>
174
  <tr class="backup-list-head" style="border-bottom: 0;">
175
  <td></td>
176
- <th><?php _e( 'Backup','wpvivid'); ?></th>
177
- <th><?php _e( 'Storage','wpvivid'); ?></th>
178
- <th><?php _e( 'Download','wpvivid'); ?></th>
179
- <th><?php _e( 'Restore', 'wpvivid'); ?></th>
180
- <th><?php _e( 'Delete','wpvivid'); ?></th>
181
  </tr>
182
  </thead>
183
  <tbody class="wpvivid-backuplist" id="wpvivid_backup_list">
@@ -190,7 +190,7 @@ function wpvivid_backuppage_add_page_backup(){
190
  <tfoot>
191
  <tr>
192
  <th><input name="" type="checkbox" id="backup_list_all_check" value="1" /></th>
193
- <th class="row-title" colspan="5"><a onclick="wpvivid_delete_backups_inbatches();" style="cursor: pointer;"><?php _e('Delete the selected backups', 'wpvivid'); ?></a></th>
194
  </tr>
195
  </tfoot>
196
  </table>
@@ -722,16 +722,16 @@ function wpvivid_backuppage_add_page_backup(){
722
  var force_del = 0;
723
  var bdownloading = false;
724
  if(name === 'lock') {
725
- descript = '<?php _e('This backup is locked, are you sure to remove it? This backup will be deleted permanently from your hosting (localhost) and remote storages.', 'wpvivid'); ?>';
726
  force_del = 1;
727
  }
728
  else{
729
- descript = '<?php _e('Are you sure to remove this backup? This backup will be deleted permanently from your hosting (localhost) and remote storages.', 'wpvivid'); ?>';
730
  force_del = 0;
731
  }
732
  if(m_downloading_id === backup_id){
733
  bdownloading = true;
734
- descript = '<?php _e('This request will delete the backup being downloaded, are you sure you want to continue?', 'wpvivid'); ?>';
735
  force_del = 1;
736
  }
737
  var ret = confirm(descript);
@@ -770,15 +770,15 @@ function wpvivid_backuppage_add_page_backup(){
770
  });
771
  });
772
  if( count === 0 ){
773
- alert('<?php _e('Please select at least one item.','wpvivid'); ?>');
774
  }
775
  else {
776
  var descript = '';
777
  if(bdownloading) {
778
- descript = '<?php _e('This request might delete the backup being downloaded, are you sure you want to continue?', 'wpvivid'); ?>';
779
  }
780
  else{
781
- descript = '<?php _e('Are you sure to remove the selected backups? These backups will be deleted permanently from your hosting (localhost).', 'wpvivid'); ?>';
782
  }
783
  var ret = confirm(descript);
784
  if (ret === true) {
@@ -839,9 +839,9 @@ function wpvivid_backuppage_add_page_backup(){
839
  var top = jQuery('#wpvivid_how_to_restore_backup_describe').offset().top-jQuery('#wpvivid_how_to_restore_backup_describe').height();
840
  jQuery('html, body').animate({scrollTop:top}, 'slow');
841
  var div = "<div class='notice notice-info is-dismissible inline'>" +
842
- "<p><?php _e('Step One: In the backup list, click the \'Restore\' button on the backup you want to restore. This will bring up the restore tab', 'wpvivid'); ?></p>" +
843
- "<p><?php _e('Step Two: Choose an option to complete restore, if any', 'wpvivid'); ?></p>" +
844
- "<p><?php _e('Step Three: Click \'Restore\' button', 'wpvivid'); ?></p>" +
845
  "<button type='button' class='notice-dismiss' onclick='click_dismiss_restore_notice(this);'>" +
846
  "<span class='screen-reader-text'>Dismiss this notice.</span>" +
847
  "</button>" +
@@ -874,27 +874,27 @@ function wpvivid_backuppage_add_page_restore(){
874
  ?>
875
  <div class="backup-tab-content wpvivid_tab_restore" id="page-restore" style="display:none;">
876
  <div>
877
- <h3><?php _e('Restore backup from:', 'wpvivid'); ?><span id="wpvivid_restore_backup_time"></span></h3>
878
- <p><strong><?php _e('Please do not close the page or switch to other pages when a restore task is running, as it could trigger some unexpected errors.', 'wpvivid'); ?></strong></p>
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>
893
- <div class="restore-button-position" id="wpvivid_clean_part"><input class="button-primary" id="wpvivid_clean_restore" type="submit" name="clear_restore" value="<?php esc_attr_e( 'Terminate', 'wpvivid' ); ?>" /></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>
@@ -1486,23 +1486,23 @@ function wpvivid_backuppage_add_progress_module(){
1486
  <div class="action-progress-bar-percent" id="wpvivid_action_progress_bar_percent" style="height:24px;width:0;"></div>
1487
  </div>
1488
  <div id="wpvivid_estimate_backup_info" style="float: left;">
1489
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Database Size:', 'wpvivid'); ?></span><span id="wpvivid_backup_database_size">N/A</span></div>
1490
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('File Size:', 'wpvivid'); ?></span><span id="wpvivid_backup_file_size">N/A</span></div>
1491
  </div>
1492
  <div id="wpvivid_estimate_upload_info" style="float: left;">
1493
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Total Size:', 'wpvivid'); ?></span><span>N/A</span></div>
1494
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Uploaded:', 'wpvivid'); ?></span><span>N/A</span></div>
1495
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Speed:', 'wpvivid'); ?></span><span>N/A</span></div>
1496
  </div>
1497
  <div style="float: left;">
1498
- <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Network Connection:', 'wpvivid'); ?></span><span>N/A</span></div>
1499
  </div>
1500
  <div style="clear:both;"></div>
1501
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_current_doing"></p></div>
1502
  <div style="clear: both;"></div>
1503
  <div>
1504
- <div id="wpvivid_backup_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_cancel_btn" type="submit" value="<?php esc_attr_e( 'Cancel', 'wpvivid' ); ?>" /></div>
1505
- <div id="wpvivid_backup_log" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_log_btn" type="submit" value="<?php esc_attr_e( 'Log', 'wpvivid' ); ?>" /></div>
1506
  </div>
1507
  <div style="clear: both;"></div>
1508
  </div>
@@ -1554,15 +1554,15 @@ function wpvivid_backup_module_add_descript(){
1554
  $backupdir=WPvivid_Setting::get_backupdir();
1555
  ?>
1556
  <div style="font-size: 14px; padding: 8px 12px; margin: 0; line-height: 1.4; font-weight: 600;">
1557
- <span style="margin-right: 5px;"><?php _e( 'Back Up Manually','wpvivid'); ?></span>
1558
  <span style="margin-right: 5px;">|</span>
1559
- <span style="margin-right: 0;"><a href="<?php echo esc_url(admin_url().'admin.php?page=wpvivid-export-import'); ?>" style="text-decoration: none;"><?php _e('Export Content', 'wpvivid'); ?></a></span>
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>
1567
  <?php
1568
  }
@@ -1591,11 +1591,11 @@ function wpvivid_backup_module_add_send_remote(){
1591
  <legend class="screen-reader-text"><span>input type="checkbox"</span></legend>
1592
  <label>
1593
  <input type="radio" id="wpvivid_backup_local" option="backup_ex" name="local_remote" value="local" checked />
1594
- <span><?php _e( 'Save Backups to Local', 'wpvivid' ); ?></span>
1595
  </label><br>
1596
  <label>
1597
  <input type="radio" id="wpvivid_backup_remote" option="backup_ex" name="local_remote" value="remote" />
1598
- <span><?php _e( 'Send Backup to Remote Storage:', 'wpvivid' ); ?></span>
1599
  </label><br>
1600
  <div id="upload_storage" style="cursor:pointer;" title="Highlighted icon illuminates that you have choosed a remote storage to store backups">
1601
  <?php echo apply_filters('wpvivid_schedule_add_remote_pic',$pic); ?>
@@ -1608,12 +1608,12 @@ function wpvivid_backup_module_add_send_remote(){
1608
  function wpvivid_backup_module_add_exec(){
1609
  ?>
1610
  <div class="quickstart-btn" style="padding-top:20px;">
1611
- <input class="button-primary quickbackup-btn" id="wpvivid_quickbackup_btn" type="submit" value="<?php esc_attr_e( 'Backup Now', 'wpvivid'); ?>" />
1612
  <div class="schedule-tab-block" style="text-align:center;">
1613
  <fieldset>
1614
  <label>
1615
  <input type="checkbox" id="wpvivid_backup_lock" option="backup" name="lock" />
1616
- <span><?php _e( 'This backup can only be deleted manually', 'wpvivid' ); ?></span>
1617
  </label>
1618
  </fieldset>
1619
  </div>
@@ -1784,7 +1784,7 @@ function wpvivid_backup_module_add_exec(){
1784
  function wpvivid_backup_module_add_tips(){
1785
  ?>
1786
  <div class="custom-info" style="float:left; width:100%;">
1787
- <strong><?php _e('Tips:', 'wpvivid'); ?></strong>&nbsp<?php _e('The settings are only for manual backup, which won\'t affect schedule settings.', 'wpvivid'); ?>
1788
  </div>
1789
  <?php
1790
  }
@@ -1803,13 +1803,13 @@ function wpvivid_backuppage_add_schedule_module(){
1803
  $last_message = apply_filters('wpvivid_get_last_backup_message', $last_message);
1804
  ?>
1805
  <div class="postbox qucikbackup-schedule" id="wpvivid_postbox_backup_schedule">
1806
- <h2><span><?php _e( 'Backup Schedule','wpvivid'); ?></span></h2>
1807
  <div class="schedule-block">
1808
- <p id="wpvivid_schedule_status"><strong><?php _e('Schedule Status: ', 'wpvivid'); ?></strong><?php _e($schedule_status); ?></p>
1809
  <div id="wpvivid_schedule_info">
1810
- <p><strong><?php _e('Server Time: ', 'wpvivid'); ?></strong><?php _e(date("l, F d, Y H:i",time())); ?></p>
1811
  <p><span id="wpvivid_last_backup_msg"><?php _e($last_message); ?></span></p>
1812
- <p id="wpvivid_next_backup"><strong><?php _e('Next Backup: ', 'wpvivid'); ?></strong><?php _e($next_backup_time); ?></p>
1813
  </div>
1814
  </div>
1815
  </div>
4
  {
5
  $html .= '<label>
6
  <input type="radio" option="backup" name="'.$type_name.'" value="files+db" checked />
7
+ <span>'.__( 'Database + Files (WordPress Files)', 'wpvivid-backuprestore' ).'</span>
8
  </label><br>
9
  <label>
10
  <input type="radio" option="backup" name="'.$type_name.'" value="files" />
11
+ <span>'.__( 'WordPress Files (Exclude Database)', 'wpvivid-backuprestore' ).'</span>
12
  </label><br>
13
  <label>
14
  <input type="radio" option="backup" name="'.$type_name.'" value="db" />
15
+ <span>'.__( 'Only Database', 'wpvivid-backuprestore' ).'</span>
16
  </label><br>
17
  <label>
18
  <div style="float: left;">
19
  <input type="radio" disabled />
20
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Create a staging site', 'wpvivid-backuprestore').'</span>
21
  </div>
22
  <span class="wpvivid-feature-pro">
23
+ <a href="https://wpvivid.com/wpvivid-backup-pro-create-staging-site" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid-backuprestore').'</a>
24
  </span>
25
  </label><br>
26
  <label>
27
  <div style="float: left;">
28
  <input type="radio" disabled />
29
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid-backuprestore').'</span>
30
  </div>
31
  <span class="wpvivid-feature-pro">
32
+ <a href="https://wpvivid.com/backup-migration-overview?utm_source=client_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid-backuprestore').'</a>
33
  </span>
34
  </label><br>';
35
  return $html;
97
  }
98
 
99
  function wpvivid_download_backup_descript($html){
100
+ $html = '<p><strong>'.__('About backup download', 'wpvivid-backuprestore').'</strong></p>';
101
  $html .= '<ul>';
102
+ $html .= '<li>'.__('->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.', 'wpvivid-backuprestore').'</li>';
103
+ $html .= '<li>'.__('->If backups are stored in web server, the plugin will list all relevant files immediately.', 'wpvivid-backuprestore').'</li>';
104
  $html .= '</ul>';
105
  return $html;
106
  }
107
 
108
  function wpvivid_restore_website_descript($html){
109
+ $html = '<p><a href="#" id="wpvivid_how_to_restore_backup_describe" onclick="wpvivid_click_how_to_restore_backup();" style="text-decoration: none;">'.__('How to restore your website from a backup(scheduled, manual, uploaded and received backup)', 'wpvivid-backuprestore').'</a></p>';
110
  $html .= '<div id="wpvivid_how_to_restore_backup"></div>';
111
  return $html;
112
  }
120
 
121
  function wpvivid_backuppage_add_tab_backup(){
122
  ?>
123
+ <a href="#" id="wpvivid_tab_backup" class="nav-tab backup-nav-tab nav-tab-active" onclick="switchrestoreTabs(event,'page-backups')"><?php _e('Backups', 'wpvivid-backuprestore'); ?></a>
124
  <?php
125
  }
126
 
127
  function wpvivid_backuppage_add_tab_log(){
128
  ?>
129
  <a href="#" id="wpvivid_tab_backup_log" class="nav-tab backup-nav-tab delete" onclick="switchrestoreTabs(event,'page-log')" style="display: none;">
130
+ <div style="margin-right: 15px;"><?php _e('Log', 'wpvivid-backuprestore'); ?></div>
131
  <div class="nav-tab-delete-img">
132
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_backup_log', 'backup', 'wpvivid_tab_backup');" />
133
  </div>
138
  function wpvivid_backuppage_add_tab_restore(){
139
  ?>
140
  <a href="#" id="wpvivid_tab_restore" class="nav-tab backup-nav-tab delete" onclick="switchrestoreTabs(event,'page-restore')" style="display: none;">
141
+ <div style="margin-right: 15px;"><?php _e('Restore', 'wpvivid-backuprestore'); ?></div>
142
  <div class="nav-tab-delete-img">
143
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_restore', 'backup', 'wpvivid_tab_backup');" />
144
  </div>
173
  <thead>
174
  <tr class="backup-list-head" style="border-bottom: 0;">
175
  <td></td>
176
+ <th><?php _e( 'Backup','wpvivid-backuprestore'); ?></th>
177
+ <th><?php _e( 'Storage','wpvivid-backuprestore'); ?></th>
178
+ <th><?php _e( 'Download','wpvivid-backuprestore'); ?></th>
179
+ <th><?php _e( 'Restore', 'wpvivid-backuprestore'); ?></th>
180
+ <th><?php _e( 'Delete','wpvivid-backuprestore'); ?></th>
181
  </tr>
182
  </thead>
183
  <tbody class="wpvivid-backuplist" id="wpvivid_backup_list">
190
  <tfoot>
191
  <tr>
192
  <th><input name="" type="checkbox" id="backup_list_all_check" value="1" /></th>
193
+ <th class="row-title" colspan="5"><a onclick="wpvivid_delete_backups_inbatches();" style="cursor: pointer;"><?php _e('Delete the selected backups', 'wpvivid-backuprestore'); ?></a></th>
194
  </tr>
195
  </tfoot>
196
  </table>
722
  var force_del = 0;
723
  var bdownloading = false;
724
  if(name === 'lock') {
725
+ descript = '<?php _e('This backup is locked, are you sure to remove it? This backup will be deleted permanently from your hosting (localhost) and remote storages.', 'wpvivid-backuprestore'); ?>';
726
  force_del = 1;
727
  }
728
  else{
729
+ descript = '<?php _e('Are you sure to remove this backup? This backup will be deleted permanently from your hosting (localhost) and remote storages.', 'wpvivid-backuprestore'); ?>';
730
  force_del = 0;
731
  }
732
  if(m_downloading_id === backup_id){
733
  bdownloading = true;
734
+ descript = '<?php _e('This request will delete the backup being downloaded, are you sure you want to continue?', 'wpvivid-backuprestore'); ?>';
735
  force_del = 1;
736
  }
737
  var ret = confirm(descript);
770
  });
771
  });
772
  if( count === 0 ){
773
+ alert('<?php _e('Please select at least one item.','wpvivid-backuprestore'); ?>');
774
  }
775
  else {
776
  var descript = '';
777
  if(bdownloading) {
778
+ descript = '<?php _e('This request might delete the backup being downloaded, are you sure you want to continue?', 'wpvivid-backuprestore'); ?>';
779
  }
780
  else{
781
+ descript = '<?php _e('Are you sure to remove the selected backups? These backups will be deleted permanently from your hosting (localhost).', 'wpvivid-backuprestore'); ?>';
782
  }
783
  var ret = confirm(descript);
784
  if (ret === true) {
839
  var top = jQuery('#wpvivid_how_to_restore_backup_describe').offset().top-jQuery('#wpvivid_how_to_restore_backup_describe').height();
840
  jQuery('html, body').animate({scrollTop:top}, 'slow');
841
  var div = "<div class='notice notice-info is-dismissible inline'>" +
842
+ "<p><?php _e('Step One: In the backup list, click the \'Restore\' button on the backup you want to restore. This will bring up the restore tab', 'wpvivid-backuprestore'); ?></p>" +
843
+ "<p><?php _e('Step Two: Choose an option to complete restore, if any', 'wpvivid-backuprestore'); ?></p>" +
844
+ "<p><?php _e('Step Three: Click \'Restore\' button', 'wpvivid-backuprestore'); ?></p>" +
845
  "<button type='button' class='notice-dismiss' onclick='click_dismiss_restore_notice(this);'>" +
846
  "<span class='screen-reader-text'>Dismiss this notice.</span>" +
847
  "</button>" +
874
  ?>
875
  <div class="backup-tab-content wpvivid_tab_restore" id="page-restore" style="display:none;">
876
  <div>
877
+ <h3><?php _e('Restore backup from:', 'wpvivid-backuprestore'); ?><span id="wpvivid_restore_backup_time"></span></h3>
878
+ <p><strong><?php _e('Please do not close the page or switch to other pages when a restore task is running, as it could trigger some unexpected errors.', 'wpvivid-backuprestore'); ?></strong></p>
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-backuprestore'); ?></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-backuprestore'), 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-backuprestore'); ?>
886
  </label><br>
887
  </div>
888
  <div>
889
+ <p><strong><?php _e('Tips:', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore' ); ?>" onclick="wpvivid_start_restore();" /></div>
893
+ <div class="restore-button-position" id="wpvivid_clean_part"><input class="button-primary" id="wpvivid_clean_restore" type="submit" name="clear_restore" value="<?php esc_attr_e( 'Terminate', 'wpvivid-backuprestore' ); ?>" /></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-backuprestore' ); ?>" /></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-backuprestore' ); ?>" />
897
+ <span><?php _e('The backup is stored on the remote storage, click on the button to download it to localhost.', 'wpvivid-backuprestore'); ?></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>
1486
  <div class="action-progress-bar-percent" id="wpvivid_action_progress_bar_percent" style="height:24px;width:0;"></div>
1487
  </div>
1488
  <div id="wpvivid_estimate_backup_info" style="float: left;">
1489
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Database Size:', 'wpvivid-backuprestore'); ?></span><span id="wpvivid_backup_database_size">N/A</span></div>
1490
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('File Size:', 'wpvivid-backuprestore'); ?></span><span id="wpvivid_backup_file_size">N/A</span></div>
1491
  </div>
1492
  <div id="wpvivid_estimate_upload_info" style="float: left;">
1493
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Total Size:', 'wpvivid-backuprestore'); ?></span><span>N/A</span></div>
1494
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Uploaded:', 'wpvivid-backuprestore'); ?></span><span>N/A</span></div>
1495
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Speed:', 'wpvivid-backuprestore'); ?></span><span>N/A</span></div>
1496
  </div>
1497
  <div style="float: left;">
1498
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right"><?php _e('Network Connection:', 'wpvivid-backuprestore'); ?></span><span>N/A</span></div>
1499
  </div>
1500
  <div style="clear:both;"></div>
1501
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_current_doing"></p></div>
1502
  <div style="clear: both;"></div>
1503
  <div>
1504
+ <div id="wpvivid_backup_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_cancel_btn" type="submit" value="<?php esc_attr_e( 'Cancel', 'wpvivid-backuprestore' ); ?>" /></div>
1505
+ <div id="wpvivid_backup_log" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_log_btn" type="submit" value="<?php esc_attr_e( 'Log', 'wpvivid-backuprestore' ); ?>" /></div>
1506
  </div>
1507
  <div style="clear: both;"></div>
1508
  </div>
1554
  $backupdir=WPvivid_Setting::get_backupdir();
1555
  ?>
1556
  <div style="font-size: 14px; padding: 8px 12px; margin: 0; line-height: 1.4; font-weight: 600;">
1557
+ <span style="margin-right: 5px;"><?php _e( 'Back Up Manually','wpvivid-backuprestore'); ?></span>
1558
  <span style="margin-right: 5px;">|</span>
1559
+ <span style="margin-right: 0;"><a href="<?php echo esc_url(admin_url().'admin.php?page=wpvivid-export-import'); ?>" style="text-decoration: none;"><?php _e('Export Content', 'wpvivid-backuprestore'); ?></a></span>
1560
+ <span style="font-size: 10px; color: #FFA500; line-height: 10px;">(<?php _e('new feature', 'wpvivid-backuprestore'); ?>)</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-backuprestore'); ?></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-backuprestore'); ?></a></span>
1566
  </div>
1567
  <?php
1568
  }
1591
  <legend class="screen-reader-text"><span>input type="checkbox"</span></legend>
1592
  <label>
1593
  <input type="radio" id="wpvivid_backup_local" option="backup_ex" name="local_remote" value="local" checked />
1594
+ <span><?php _e( 'Save Backups to Local', 'wpvivid-backuprestore' ); ?></span>
1595
  </label><br>
1596
  <label>
1597
  <input type="radio" id="wpvivid_backup_remote" option="backup_ex" name="local_remote" value="remote" />
1598
+ <span><?php _e( 'Send Backup to Remote Storage:', 'wpvivid-backuprestore' ); ?></span>
1599
  </label><br>
1600
  <div id="upload_storage" style="cursor:pointer;" title="Highlighted icon illuminates that you have choosed a remote storage to store backups">
1601
  <?php echo apply_filters('wpvivid_schedule_add_remote_pic',$pic); ?>
1608
  function wpvivid_backup_module_add_exec(){
1609
  ?>
1610
  <div class="quickstart-btn" style="padding-top:20px;">
1611
+ <input class="button-primary quickbackup-btn" id="wpvivid_quickbackup_btn" type="submit" value="<?php esc_attr_e( 'Backup Now', 'wpvivid-backuprestore'); ?>" />
1612
  <div class="schedule-tab-block" style="text-align:center;">
1613
  <fieldset>
1614
  <label>
1615
  <input type="checkbox" id="wpvivid_backup_lock" option="backup" name="lock" />
1616
+ <span><?php _e( 'This backup can only be deleted manually', 'wpvivid-backuprestore' ); ?></span>
1617
  </label>
1618
  </fieldset>
1619
  </div>
1784
  function wpvivid_backup_module_add_tips(){
1785
  ?>
1786
  <div class="custom-info" style="float:left; width:100%;">
1787
+ <strong><?php _e('Tips:', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('The settings are only for manual backup, which won\'t affect schedule settings.', 'wpvivid-backuprestore'); ?>
1788
  </div>
1789
  <?php
1790
  }
1803
  $last_message = apply_filters('wpvivid_get_last_backup_message', $last_message);
1804
  ?>
1805
  <div class="postbox qucikbackup-schedule" id="wpvivid_postbox_backup_schedule">
1806
+ <h2><span><?php _e( 'Backup Schedule','wpvivid-backuprestore'); ?></span></h2>
1807
  <div class="schedule-block">
1808
+ <p id="wpvivid_schedule_status"><strong><?php _e('Schedule Status: ', 'wpvivid-backuprestore'); ?></strong><?php _e($schedule_status); ?></p>
1809
  <div id="wpvivid_schedule_info">
1810
+ <p><strong><?php _e('Server Time: ', 'wpvivid-backuprestore'); ?></strong><?php _e(date("l, F d, Y H:i",time())); ?></p>
1811
  <p><span id="wpvivid_last_backup_msg"><?php _e($last_message); ?></span></p>
1812
+ <p id="wpvivid_next_backup"><strong><?php _e('Next Backup: ', 'wpvivid-backuprestore'); ?></strong><?php _e($next_backup_time); ?></p>
1813
  </div>
1814
  </div>
1815
  </div>
admin/partials/wpvivid-remote-storage-page-display.php CHANGED
@@ -3,7 +3,7 @@
3
  function wpvivid_add_tab_storage_list()
4
  {
5
  ?>
6
- <a href="#" id="wpvivid_tab_storage_list" class="nav-tab storage-nav-tab nav-tab-active" onclick="switchstorageTabs(event,'page-storage-list','page-storage-list')"><?php _e('Storages', 'wpvivid'); ?></a>
7
  <?php
8
  }
9
 
@@ -11,7 +11,7 @@ function wpvivid_add_tab_storage_edit()
11
  {
12
  ?>
13
  <a href="#" id="wpvivid_tab_storage_edit" class="nav-tab storage-nav-tab delete" onclick="switchstorageTabs(event,'page-storage_edit','page-storage_edit')" style="display: none;">
14
- <div id="wpvivid_tab_storage_edit_text" style="margin-right: 15px;"><?php _e('Storage Edit', 'wpvivid'); ?></div>
15
  <div class="nav-tab-delete-img">
16
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_storage_edit', 'storage', 'wpvivid_tab_storage_list');" />
17
  </div>
@@ -23,7 +23,7 @@ function wpvivid_add_page_storage_list()
23
  {
24
  ?>
25
  <div class="storage-tab-content wpvivid_tab_storage_list" id="page-storage-list">
26
- <div style="margin-top:10px;"><p><strong><?php _e('Please choose one storage to save your backups (remote storage)', 'wpvivid'); ?></strong></p></div>
27
  <div class="schedule-tab-block"></div>
28
  <div class="">
29
  <table class="widefat">
@@ -31,9 +31,9 @@ function wpvivid_add_page_storage_list()
31
  <tr>
32
  <th></th>
33
  <th></th>
34
- <th><?php _e( 'Storage Provider', 'wpvivid' ); ?></th>
35
- <th class="row-title"><?php _e( 'Remote Storage Alias', 'wpvivid' ); ?></th>
36
- <th><?php _e( 'Actions', 'wpvivid' ); ?></th>
37
  </tr>
38
  </thead>
39
  <tbody class="wpvivid-remote-storage-list" id="wpvivid_remote_storage_list">
@@ -45,7 +45,7 @@ function wpvivid_add_page_storage_list()
45
  </tbody>
46
  <tfoot>
47
  <tr>
48
- <th colspan="5" class="row-title"><input class="button-primary" id="wpvivid_set_default_remote_storage" type="submit" name="choose-remote-storage" value="<?php esc_attr_e( 'Save Changes', 'wpvivid' ); ?>" /></th>
49
  </tr>
50
  </tfoot>
51
  </table>
@@ -315,16 +315,16 @@ function wpvivid_add_page_storage_edit()
315
  function wpvivid_storage_list($html)
316
  {
317
  $html='<h2 class="nav-tab-wrapper" style="padding-bottom:0!important;">';
318
- $html.='<a href="#" id="wpvivid_tab_storage_list" class="nav-tab storage-nav-tab nav-tab-active" onclick="switchstorageTabs(event,\'page-storage-list\',\'page-storage-list\')">'. __('Storages', 'wpvivid').'</a>';
319
  $html.='<a href="#" id="wpvivid_tab_storage_edit" class="nav-tab storage-nav-tab delete" onclick="switchstorageTabs(event,\'page-storage_edit\',\'page-storage_edit\')" style="display: none;">
320
- <div id="wpvivid_tab_storage_edit_text" style="margin-right: 15px;">'.__('Storage Edit', 'wpvivid').'</div>
321
  <div class="nav-tab-delete-img">
322
  <img src="'.esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )).'" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, \'wpvivid_tab_storage_edit\', \'storage\', \'wpvivid_tab_storage_list\');" />
323
  </div>
324
  </a>';
325
  $html.='</h2>';
326
  $html.='<div class="storage-tab-content wpvivid_tab_storage_list" id="page-storage-list">
327
- <div style="margin-top:10px;"><p><strong>'.__('Please choose one storage to save your backups (remote storage)', 'wpvivid').'</strong></p></div>
328
  <div class="schedule-tab-block"></div>
329
  <div class="">
330
  <table class="widefat">
@@ -332,9 +332,9 @@ function wpvivid_storage_list($html)
332
  <tr>
333
  <th></th>
334
  <th></th>
335
- <th>'. __( 'Storage Provider', 'wpvivid' ).'</th>
336
- <th class="row-title">'. __( 'Remote Storage Alias', 'wpvivid' ).'</th>
337
- <th>'. __( 'Actions', 'wpvivid' ).'</th>
338
  </tr>
339
  </thead>
340
  <tbody class="wpvivid-remote-storage-list" id="wpvivid_remote_storage_list">
@@ -342,7 +342,7 @@ function wpvivid_storage_list($html)
342
  $html_list='';
343
  $html.= apply_filters('wpvivid_add_remote_storage_list', $html_list);
344
  $html.='</tbody><tfoot><tr>
345
- <th colspan="5" class="row-title"><input class="button-primary" id="wpvivid_set_default_remote_storage" type="submit" name="choose-remote-storage" value="'.esc_attr__( 'Save Changes', 'wpvivid' ).'" /></th>
346
  </tr></tfoot></table></div></div>';
347
 
348
  $html .= '<script>
3
  function wpvivid_add_tab_storage_list()
4
  {
5
  ?>
6
+ <a href="#" id="wpvivid_tab_storage_list" class="nav-tab storage-nav-tab nav-tab-active" onclick="switchstorageTabs(event,'page-storage-list','page-storage-list')"><?php _e('Storages', 'wpvivid-backuprestore'); ?></a>
7
  <?php
8
  }
9
 
11
  {
12
  ?>
13
  <a href="#" id="wpvivid_tab_storage_edit" class="nav-tab storage-nav-tab delete" onclick="switchstorageTabs(event,'page-storage_edit','page-storage_edit')" style="display: none;">
14
+ <div id="wpvivid_tab_storage_edit_text" style="margin-right: 15px;"><?php _e('Storage Edit', 'wpvivid-backuprestore'); ?></div>
15
  <div class="nav-tab-delete-img">
16
  <img src="<?php echo esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )); ?>" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, 'wpvivid_tab_storage_edit', 'storage', 'wpvivid_tab_storage_list');" />
17
  </div>
23
  {
24
  ?>
25
  <div class="storage-tab-content wpvivid_tab_storage_list" id="page-storage-list">
26
+ <div style="margin-top:10px;"><p><strong><?php _e('Please choose one storage to save your backups (remote storage)', 'wpvivid-backuprestore'); ?></strong></p></div>
27
  <div class="schedule-tab-block"></div>
28
  <div class="">
29
  <table class="widefat">
31
  <tr>
32
  <th></th>
33
  <th></th>
34
+ <th><?php _e( 'Storage Provider', 'wpvivid-backuprestore' ); ?></th>
35
+ <th class="row-title"><?php _e( 'Remote Storage Alias', 'wpvivid-backuprestore' ); ?></th>
36
+ <th><?php _e( 'Actions', 'wpvivid-backuprestore' ); ?></th>
37
  </tr>
38
  </thead>
39
  <tbody class="wpvivid-remote-storage-list" id="wpvivid_remote_storage_list">
45
  </tbody>
46
  <tfoot>
47
  <tr>
48
+ <th colspan="5" class="row-title"><input class="button-primary" id="wpvivid_set_default_remote_storage" type="submit" name="choose-remote-storage" value="<?php esc_attr_e( 'Save Changes', 'wpvivid-backuprestore' ); ?>" /></th>
49
  </tr>
50
  </tfoot>
51
  </table>
315
  function wpvivid_storage_list($html)
316
  {
317
  $html='<h2 class="nav-tab-wrapper" style="padding-bottom:0!important;">';
318
+ $html.='<a href="#" id="wpvivid_tab_storage_list" class="nav-tab storage-nav-tab nav-tab-active" onclick="switchstorageTabs(event,\'page-storage-list\',\'page-storage-list\')">'. __('Storages', 'wpvivid-backuprestore').'</a>';
319
  $html.='<a href="#" id="wpvivid_tab_storage_edit" class="nav-tab storage-nav-tab delete" onclick="switchstorageTabs(event,\'page-storage_edit\',\'page-storage_edit\')" style="display: none;">
320
+ <div id="wpvivid_tab_storage_edit_text" style="margin-right: 15px;">'.__('Storage Edit', 'wpvivid-backuprestore').'</div>
321
  <div class="nav-tab-delete-img">
322
  <img src="'.esc_url(plugins_url( 'images/delete-tab.png', __FILE__ )).'" style="vertical-align:middle; cursor:pointer;" onclick="wpvivid_close_tab(event, \'wpvivid_tab_storage_edit\', \'storage\', \'wpvivid_tab_storage_list\');" />
323
  </div>
324
  </a>';
325
  $html.='</h2>';
326
  $html.='<div class="storage-tab-content wpvivid_tab_storage_list" id="page-storage-list">
327
+ <div style="margin-top:10px;"><p><strong>'.__('Please choose one storage to save your backups (remote storage)', 'wpvivid-backuprestore').'</strong></p></div>
328
  <div class="schedule-tab-block"></div>
329
  <div class="">
330
  <table class="widefat">
332
  <tr>
333
  <th></th>
334
  <th></th>
335
+ <th>'. __( 'Storage Provider', 'wpvivid-backuprestore' ).'</th>
336
+ <th class="row-title">'. __( 'Remote Storage Alias', 'wpvivid-backuprestore' ).'</th>
337
+ <th>'. __( 'Actions', 'wpvivid-backuprestore' ).'</th>
338
  </tr>
339
  </thead>
340
  <tbody class="wpvivid-remote-storage-list" id="wpvivid_remote_storage_list">
342
  $html_list='';
343
  $html.= apply_filters('wpvivid_add_remote_storage_list', $html_list);
344
  $html.='</tbody><tfoot><tr>
345
+ <th colspan="5" class="row-title"><input class="button-primary" id="wpvivid_set_default_remote_storage" type="submit" name="choose-remote-storage" value="'.esc_attr__( 'Save Changes', 'wpvivid-backuprestore' ).'" /></th>
346
  </tr></tfoot></table></div></div>';
347
 
348
  $html .= '<script>
admin/partials/wpvivid-schedule-page-display.php CHANGED
@@ -4,7 +4,7 @@ function wpvivid_schedule_settings()
4
  {
5
  ?>
6
  <tr>
7
- <td class="row-title wpvivid-backup-settings-table tablelistcolumn"><label for="tablecell"><?php _e('Schedule Settings', 'wpvivid'); ?></label></td>
8
  <td class="tablelistcolumn">
9
  <div id="storage-brand-3">
10
  <div>
@@ -12,16 +12,16 @@ function wpvivid_schedule_settings()
12
  <div class="postbox schedule-tab-block">
13
  <label for="wpvivid_schedule_enable">
14
  <input option="schedule" name="enable" type="checkbox" id="wpvivid_schedule_enable" />
15
- <span><?php _e( 'Enable backup schedule', 'wpvivid' ); ?></span>
16
  </label><br>
17
  <label>
18
  <div style="float: left;">
19
  <input type="checkbox" disabled />
20
- <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Enable Incremental Backup', 'wpvivid'); ?></span>
21
  </div>
22
  <div style="float: left; height: 32px; line-height: 32px;">
23
  <span class="wpvivid-feature-pro">
24
- <a href="https://wpvivid.com/wpvivid-backup-pro-incremental-backup"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
25
  </span>
26
  </div>
27
  <div style="clear: both;"></div>
@@ -29,11 +29,11 @@ function wpvivid_schedule_settings()
29
  <label>
30
  <div style="float: left;">
31
  <input type="checkbox" disabled />
32
- <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Advanced Schedule', 'wpvivid'); ?></span>
33
  </div>
34
  <div style="float: left; height: 32px; line-height: 32px;">
35
  <span class="wpvivid-feature-pro">
36
- <a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
37
  </span>
38
  </div>
39
  <div style="clear: both;"></div>
@@ -82,7 +82,7 @@ function wpvivid_schedule_settings()
82
  echo $html;
83
  ?>
84
  </div>
85
- <div id="schedule_upload_storage" style="cursor:pointer;" title="<?php _e('Highlighted icon illuminates that you have choosed a remote storage to store backups', 'wpvivid'); ?>">
86
  <?php
87
  $pic='';
88
  $pic= apply_filters('wpvivid_schedule_add_remote_pic',$pic);
@@ -92,10 +92,10 @@ function wpvivid_schedule_settings()
92
  </div>
93
  <div class="postbox schedule-tab-block">
94
  <div style="float:left; color: #ddd; margin-right: 10px;">
95
- <?php _e('+ Add another schedule', 'wpvivid'); ?>
96
  </div>
97
  <span class="wpvivid-feature-pro">
98
- <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid'); ?></a>
99
  </span>
100
  </div>
101
  </div>
@@ -114,8 +114,8 @@ function wpvivid_schedule_notice($html)
114
  $offset=get_option('gmt_offset');
115
  $time = '00:00:00';
116
  $utime = strtotime($time) + $offset * 60 * 60;
117
- $html='<p>1) '.__('Scheduled job will start at <strong>UTC</strong> time:', 'wpvivid').'&nbsp'.date('H:i:s', $utime).'</p>';
118
- $html.='<p>2) '.__('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.', 'wpvivid').'</p>';
119
  return $html;
120
  }
121
 
@@ -123,27 +123,27 @@ function wpvivid_schedule_backup_type($html)
123
  {
124
  $html='<label>';
125
  $html.='<input type="radio" option="schedule" name="backup_type" value="files+db"/>';
126
- $html.='<span>'.__('Database + Files (WordPress Files)', 'wpvivid').'</span>';
127
  $html.='</label><br>';
128
 
129
  $html.='<label>';
130
  $html.='<input type="radio" option="schedule" name="backup_type" value="files"/>';
131
- $html.='<span>'.__('WordPress Files (Exclude Database)', 'wpvivid').'</span>';
132
  $html.='</label><br>';
133
 
134
  $html.='<label>';
135
  $html.='<input type="radio" option="schedule" name="backup_type" value="db"/>';
136
- $html.='<span>'.__('Only Database', 'wpvivid').'</span>';
137
  $html.='</label><br>';
138
 
139
  $html.='<label>';
140
  $html.='<div style="float: left;">';
141
  $html.='<input type="radio" disabled />';
142
- $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>';
143
  $html.='</div>';
144
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
145
  $html.='<span class="wpvivid-feature-pro">';
146
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid').'</a>';
147
  $html.='</span>';
148
  $html.='</div>';
149
  $html.='</label><br>';
4
  {
5
  ?>
6
  <tr>
7
+ <td class="row-title wpvivid-backup-settings-table tablelistcolumn"><label for="tablecell"><?php _e('Schedule Settings', 'wpvivid-backuprestore'); ?></label></td>
8
  <td class="tablelistcolumn">
9
  <div id="storage-brand-3">
10
  <div>
12
  <div class="postbox schedule-tab-block">
13
  <label for="wpvivid_schedule_enable">
14
  <input option="schedule" name="enable" type="checkbox" id="wpvivid_schedule_enable" />
15
+ <span><?php _e( 'Enable backup schedule', 'wpvivid-backuprestore' ); ?></span>
16
  </label><br>
17
  <label>
18
  <div style="float: left;">
19
  <input type="checkbox" disabled />
20
+ <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Enable Incremental Backup', 'wpvivid-backuprestore'); ?></span>
21
  </div>
22
  <div style="float: left; height: 32px; line-height: 32px;">
23
  <span class="wpvivid-feature-pro">
24
+ <a href="https://wpvivid.com/wpvivid-backup-pro-incremental-backup"><?php _e('Pro feature: learn more', 'wpvivid-backuprestore'); ?></a>
25
  </span>
26
  </div>
27
  <div style="clear: both;"></div>
29
  <label>
30
  <div style="float: left;">
31
  <input type="checkbox" disabled />
32
+ <span class="wpvivid-element-space-right" style="color: #ddd;"><?php _e('Advanced Schedule', 'wpvivid-backuprestore'); ?></span>
33
  </div>
34
  <div style="float: left; height: 32px; line-height: 32px;">
35
  <span class="wpvivid-feature-pro">
36
+ <a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_advanced_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid-backuprestore'); ?></a>
37
  </span>
38
  </div>
39
  <div style="clear: both;"></div>
82
  echo $html;
83
  ?>
84
  </div>
85
+ <div id="schedule_upload_storage" style="cursor:pointer;" title="<?php _e('Highlighted icon illuminates that you have choosed a remote storage to store backups', 'wpvivid-backuprestore'); ?>">
86
  <?php
87
  $pic='';
88
  $pic= apply_filters('wpvivid_schedule_add_remote_pic',$pic);
92
  </div>
93
  <div class="postbox schedule-tab-block">
94
  <div style="float:left; color: #ddd; margin-right: 10px;">
95
+ <?php _e('+ Add another schedule', 'wpvivid-backuprestore'); ?>
96
  </div>
97
  <span class="wpvivid-feature-pro">
98
+ <a href="https://wpvivid.com/wpvivid-backup-pro-creating-schedules?utm_source=client_multi_schedule&utm_medium=inner_link&utm_campaign=access"><?php _e('Pro feature: learn more', 'wpvivid-backuprestore'); ?></a>
99
  </span>
100
  </div>
101
  </div>
114
  $offset=get_option('gmt_offset');
115
  $time = '00:00:00';
116
  $utime = strtotime($time) + $offset * 60 * 60;
117
+ $html='<p>1) '.__('Scheduled job will start at <strong>UTC</strong> time:', 'wpvivid-backuprestore').'&nbsp'.date('H:i:s', $utime).'</p>';
118
+ $html.='<p>2) '.__('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.', 'wpvivid-backuprestore').'</p>';
119
  return $html;
120
  }
121
 
123
  {
124
  $html='<label>';
125
  $html.='<input type="radio" option="schedule" name="backup_type" value="files+db"/>';
126
+ $html.='<span>'.__('Database + Files (WordPress Files)', 'wpvivid-backuprestore').'</span>';
127
  $html.='</label><br>';
128
 
129
  $html.='<label>';
130
  $html.='<input type="radio" option="schedule" name="backup_type" value="files"/>';
131
+ $html.='<span>'.__('WordPress Files (Exclude Database)', 'wpvivid-backuprestore').'</span>';
132
  $html.='</label><br>';
133
 
134
  $html.='<label>';
135
  $html.='<input type="radio" option="schedule" name="backup_type" value="db"/>';
136
+ $html.='<span>'.__('Only Database', 'wpvivid-backuprestore').'</span>';
137
  $html.='</label><br>';
138
 
139
  $html.='<label>';
140
  $html.='<div style="float: left;">';
141
  $html.='<input type="radio" disabled />';
142
+ $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid-backuprestore').'</span>';
143
  $html.='</div>';
144
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
145
  $html.='<span class="wpvivid-feature-pro">';
146
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-customize-what-to-backup-for-schedule?utm_source=client_schedule_custom_backup&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none;">'.__('Pro feature: learn more', 'wpvivid-backuprestore').'</a>';
147
  $html.='</span>';
148
  $html.='</div>';
149
  $html.='</label><br>';
admin/partials/wpvivid-settings-page-display.php CHANGED
@@ -97,60 +97,60 @@ function wpvivid_general_settings()
97
  }
98
  }
99
  ?>
100
- </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>
101
  </div>
102
  <div>
103
  <label for="wpvivid_estimate_backup">
104
  <input type="checkbox" option="setting" name="estimate_backup" id="wpvivid_estimate_backup" value="1" <?php esc_attr_e($wpvivid_setting_estimate_backup); ?> />
105
- <span><?php _e('Calculate the size of files, folder and database before backing up', 'wpvivid' ); ?></span>
106
  </label>
107
  </div>
108
  <div>
109
  <label>
110
  <input type="checkbox" option="setting" name="show_admin_bar" <?php esc_attr_e($show_admin_bar); ?> />
111
- <span><?php _e('Show WPvivid backup plugin on top admin bar', 'wpvivid'); ?></span>
112
  </label>
113
  </div>
114
  <div>
115
  <label>
116
  <input type="checkbox" option="setting" name="ismerge" <?php esc_attr_e($wpvivid_ismerge); ?> />
117
- <span><?php _e('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.', 'wpvivid'); ?></span>
118
  </label>
119
  </div>
120
  <div>
121
  <label>
122
  <input type="checkbox" option="setting" name="retain_local" <?php esc_attr_e($wpvivid_retain_local); ?> />
123
- <span><?php _e('Keep storing the backups in localhost after uploading to remote storage', 'wpvivid'); ?></span>
124
  </label>
125
  </div>
126
  <div>
127
  <label>
128
  <input type="checkbox" option="setting" name="uninstall_clear_folder" <?php esc_attr_e($uninstall_clear_folder); ?> />
129
- <span><?php _e(sprintf('Delete the /%s folder and all backups in it when deleting WPvivid Backup plugin.', $general_setting['options']['wpvivid_local_setting']['path']), 'wpvivid'); ?></span>
130
  </label>
131
  </div>
132
  </div>
133
  <div class="postbox schedule-tab-block">
134
- <div><strong><?php _e('Backup Folder', 'wpvivid'); ?></strong></div>
135
  <div class="setting-tab-block">
136
- <div><p><?php _e('Name your folder, this folder must be writable for creating backup files.', 'wpvivid' ); ?><p> </div>
137
- <input type="text" placeholder="wpvividbackups" option="setting" name="path" id="wpvivid_option_backup_dir" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_local_setting']['path'], 'wpvivid'); ?>" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" />
138
- <p><span class="wpvivid-element-space-right"><?php _e('Local storage directory:', 'wpvivid'); ?></span><span><?php echo WP_CONTENT_DIR.'/'; ?><span id="wpvivid_setting_local_storage_path"><?php _e($general_setting['options']['wpvivid_local_setting']['path'], 'wpvivid'); ?></span></span></p>
139
  </div>
140
  <div>
141
  <label>
142
  <input type="checkbox" option="setting" name="domain_include" <?php esc_attr_e($wpvivid_domain_include); ?> />
143
- <span><?php _e('Display domain(url) of current site in backup name. (e.g. domain_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)', 'wpvivid'); ?></span>
144
  </label>
145
  </div>
146
  </div>
147
  <div class="postbox schedule-tab-block">
148
- <div><strong><?php _e('Remove out-of-date backups', 'wpvivid'); ?></strong></div>
149
  <div class="setting-tab-block" style="padding-bottom: 0;">
150
  <fieldset>
151
  <label for="users_can_register">
152
- <p><span class="wpvivid-element-space-right"><?php _e('Web Server Directory:', 'wpvivid'); ?></span><span id="wpvivid_out_of_date_local_path"><?php _e($out_of_date['web_server'], 'wpvivid'); ?></span></p>
153
- <p><span style="margin-right: 2px;"><?php _e('Remote Storage Directory:', 'wpvivid'); ?></span><span id="wpvivid_out_of_date_remote_path">
154
  <?php
155
  $wpvivid_get_remote_directory = '';
156
  $wpvivid_get_remote_directory = apply_filters('wpvivid_get_remote_directory', $wpvivid_get_remote_directory);
@@ -162,8 +162,8 @@ function wpvivid_general_settings()
162
  </fieldset>
163
  </div>
164
  <div class="setting-tab-block" style="padding: 10px 10px 0 0;">
165
- <input class="button-primary" id="wpvivid_delete_out_of_backup" style="margin-right:10px;" type="submit" name="delete-out-of-backup" value="<?php esc_attr_e( 'Remove', 'wpvivid' ); ?>" />
166
- <p><?php _e('The action is irreversible! It will remove all backups are out-of-date (including local web server and remote storage) if they exist.', 'wpvivid'); ?> </p>
167
  </div>
168
  </div>
169
  <script>
@@ -223,39 +223,39 @@ function wpvivid_email_report()
223
  }
224
  ?>
225
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
226
- <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>
227
  </div>
228
  <div>
229
  <label for="wpvivid_general_email_enable">
230
- <input type="checkbox" option="setting" name="email_enable" id="wpvivid_general_email_enable" value="1" <?php esc_attr_e($setting_email_enable, 'wpvivid'); ?> />
231
- <span><strong><?php _e( 'Enable email report', 'wpvivid' ); ?></strong></span>
232
  </label>
233
  </div>
234
- <div id="wpvivid_general_email_setting" style="<?php esc_attr_e($setting_email_display, 'wpvivid'); ?>" >
235
  <input type="text" placeholder="example@yourdomain.com" option="setting" name="send_to" class="regular-text" id="wpvivid_mail" value="<?php
236
  if(!empty($general_setting['options']['wpvivid_email_setting']['send_to'])) {
237
  foreach ($general_setting['options']['wpvivid_email_setting']['send_to'] as $mail) {
238
  if(!empty($mail) && !is_array($mail)) {
239
- _e($mail, 'wpvivid');
240
  break;
241
  }
242
  }
243
  }
244
  ?>" />
245
- <input class="button-secondary" id="wpvivid_send_email_test" style="margin-top:10px;" type="submit" name="" value="<?php esc_attr_e( 'Test Email', 'wpvivid' ); ?>" title="Send an email for testing mail function"/>
246
  <div id="wpvivid_send_email_res"></div>
247
  <fieldset class="setting-tab-block">
248
  <label >
249
- <input type="radio" option="setting" name="always" value="1" <?php esc_attr_e($wpvivid_setting_email_always, 'wpvivid'); ?> />
250
- <span><?php _e( 'Always send an email notification when a backup is complete', 'wpvivid' ); ?></span>
251
  </label><br>
252
  <label >
253
- <input type="radio" option="setting" name="always" value="0" <?php esc_attr_e($wpvivid_setting_email_failed, 'wpvivid'); ?> />
254
- <span><?php _e( 'Only send an email notification when a backup fails', 'wpvivid' ); ?></span>
255
  </label><br>
256
  </fieldset>
257
  <div style="margin-bottom: 10px;">
258
- <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>
259
  </div>
260
  </div>
261
  </div>
@@ -302,42 +302,42 @@ function wpvivid_clean_junk()
302
  ?>
303
  <div class="postbox schedule-tab-block" id="wpvivid_clean_junk">
304
  <div>
305
- <strong><?php _e('Web-server disk space in use by WPvivid', 'wpvivid'); ?></strong>
306
  </div>
307
  <div class="setting-tab-block">
308
  <div class="setting-tab-block">
309
- <span class="wpvivid-element-space-right"><?php _e('Total Size:', 'wpvivid'); ?></span>
310
- <span id="wpvivid_junk_sum_size"><?php _e($junk_file['sum_size'], 'wpvivid'); ?></span>
311
- <input class="button-secondary" id="wpvivid_calculate_size" style="margin-left:10px;" type="submit" name="Calculate-Sizes" value="<?php esc_attr_e( 'Calculate Sizes', 'wpvivid' ); ?>" />
312
  </div>
313
  <fieldset>
314
  <label for="wpvivid_junk_log">
315
  <input type="checkbox" id="wpvivid_junk_log" option="junk-files" name="log" value="junk-log" />
316
- <span class="wpvivid-element-space-right"><?php _e( 'logs', 'wpvivid' ); ?></span>
317
- <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid' ); ?></span><span id="wpvivid_junk_log_path"><?php _e($junk_file['log_path'], 'wpvivid'); ?></span>
318
  </label>
319
  </fieldset>
320
  <fieldset>
321
  <label for="wpvivid_junk_backup_cache">
322
  <input type="checkbox" id="wpvivid_junk_backup_cache" option="junk-files" name="backup_cache" value="junk-backup-cache" />
323
- <span class="wpvivid-element-space-right"><?php _e( 'Backup Cache', 'wpvivid' ); ?></span>
324
  </label>
325
  <label for="wpvivid_junk_file">
326
  <input type="checkbox" id="wpvivid_junk_file" option="junk-files" name="junk_files" value="junk-files" />
327
- <span class="wpvivid-element-space-right"><?php _e( 'Junk', 'wpvivid' ); ?></span>
328
- <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid' ); ?></span><span id="wpvivid_junk_file_path"><?php _e($junk_file['junk_path'], 'wpvivid'); ?></span>
329
  </label>
330
  </fieldset>
331
  <fieldset>
332
  <label for="wpvivid_junk_temporary_file">
333
  <input type="checkbox" id="wpvivid_junk_temporary_file" option="junk-files" name="old_files" value="junk-temporary-files" />
334
- <span class="wpvivid-element-space-right"><?php _e( 'Temporary Files', 'wpvivid' ); ?></span>
335
- <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>
336
- <p><?php echo __('Temporary Files are created by wpvivid when restoring a website.', 'wpvivid'); ?></p>
337
  </label>
338
  </fieldset>
339
  </div>
340
- <div><input class="button-primary" id="wpvivid_clean_junk_file" type="submit" name="Empty-all-files" value="<?php esc_attr_e( 'Empty', 'wpvivid' ); ?>" /></div>
341
  <div style="clear:both;"></div>
342
  </div>
343
  <script>
@@ -439,13 +439,13 @@ function wpvivid_export_import_settings()
439
  ?>
440
  <div class="postbox schedule-tab-block" id="wpvivid_export_import">
441
  <div class="setting-tab-block" style="padding-bottom: 0;">
442
- <input class="button-primary" id="wpvivid_setting_export" type="button" name="" value="<?php esc_attr_e( 'Export', 'wpvivid' ); ?>" />
443
- <p><?php echo __('Click \'Export\' button to save WPvivid settings on your local computer.', 'wpvivid'); ?> </p>
444
  </div>
445
  <div class="setting-tab-block" style="padding: 0 10px 0 0;">
446
  <input type="file" name="fileTrans" id="wpvivid_select_import_file"></br>
447
- <input class="button-primary" id="wpvivid_setting_import" type="button" name="" value="<?php esc_attr_e( 'Import', 'wpvivid' ); ?>" />
448
- <p><?php echo __('Importing the json file can help you set WPvivid\'s configuration on another wordpress site quickly.', 'wpvivid'); ?></p>
449
  </div>
450
  <div style="clear:both;"></div>
451
  </div>
@@ -565,44 +565,44 @@ function wpvivid_advanced_settings()
565
  ?>
566
  <div class="postbox schedule-tab-block setting-page-content">
567
  <div>
568
- <p><strong><?php _e('Enable the option when backup failed.', 'wpvivid'); ?></strong>&nbsp<?php _e('Special optimization for web hosting/shared hosting', 'wpvivid'); ?></p>
569
  <div>
570
  <label>
571
  <input type="checkbox" option="setting" name="subpackage_plugin_upload" <?php esc_attr_e($subpackage_plugin_upload); ?> />
572
- <span><strong><?php _e('Enable optimization mode for web hosting/shared hosting', 'wpvivid'); ?></strong></span>
573
  </label>
574
  <div>
575
- <p><?php _e('Enabling this option can improve the backup success rate, but it will take more time for backup.', 'wpvivid'); ?></p>
576
  </div>
577
  </div>
578
  </div>
579
  </div>
580
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
581
  <div class="wpvivid-element-space-bottom">
582
- <strong><?php _e('Database access method.', 'wpvivid'); ?></strong>
583
  </div>
584
  <div class="wpvivid-element-space-bottom">
585
  <label>
586
  <input type="radio" option="setting" name="db_connect_method" value="wpdb" <?php esc_attr_e($db_method_wpdb); ?> />
587
- <span class="wpvivid-element-space-right"><strong>WPDB</strong></span><span><?php _e('WPDB option has a better compatibility, but the speed of backup and restore is slower.', 'wpvivid'); ?></span>
588
  </label>
589
  </div>
590
  <div class="wpvivid-element-space-bottom">
591
  <label>
592
  <input type="radio" option="setting" name="db_connect_method" value="pdo" <?php esc_attr_e($db_method_pdo); ?> />
593
- <span class="wpvivid-element-space-right"><strong>PDO</strong></span><span><?php _e('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.', 'wpvivid'); ?></span>
594
  </label>
595
  </div>
596
  </div>
597
  <div class="postbox schedule-tab-block setting-page-content">
598
  <fieldset>
599
  <label>
600
- <input type="radio" option="setting" name="no_compress" value="1" <?php esc_attr_e($wpvivid_setting_no_compress, 'wpvivid'); ?> />
601
- <span class="wpvivid-element-space-right" title="<?php _e( 'It will cause a lower CPU Usage and is recommended in a web hosting/ shared hosting environment.', 'wpvivid' ); ?>"><?php _e( 'Only Archive without compressing', 'wpvivid' ); ?></span>
602
  </label>
603
  <label>
604
- <input type="radio" option="setting" name="no_compress" value="0" <?php esc_attr_e($wpvivid_setting_compress, 'wpvivid'); ?> />
605
- <span class="wpvivid-element-space-right" title="<?php _e( 'It will cause a higher CPU Usage and is recommended in a VPS/ dedicated hosting environment.', 'wpvivid' ); ?>"><?php _e( 'Compress and Archive', 'wpvivid' ); ?></span>
606
  </label>
607
  <label style="display: none;">
608
  <input type="radio" option="setting" name="compress_type" value="zip" checked />
@@ -611,40 +611,40 @@ function wpvivid_advanced_settings()
611
  </label>
612
  </fieldset>
613
  <div style="padding-top: 10px;">
614
- <div><strong><?php _e('Compress Files Every', 'wpvivid'); ?></strong></div>
615
  <div class="setting-tab-block">
616
- <input type="text" placeholder="400" option="setting" name="max_file_size" id="wpvivid_max_zip" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_compress_setting']['max_file_size']), 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
617
- <div><p><?php _e( '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.', 'wpvivid' ); ?></div></p>
618
  </div>
619
- <div><strong><?php _e('Exclude the files which are larger than', 'wpvivid'); ?></strong></div>
620
  <div class="setting-tab-block">
621
- <input type="text" placeholder="400" option="setting" name="exclude_file_size" id="wpvivid_ignore_large" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_compress_setting']['exclude_file_size'], 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
622
- <div><p><?php _e( 'Using the option will ignore the file larger than the certain size in MB when backing up, \'0\' (zero) means unlimited.', 'wpvivid' ); ?></p></div>
623
  </div>
624
- <div><strong><?php _e('PHP script execution timeout for backup', 'wpvivid'); ?></strong></div>
625
  <div class="setting-tab-block">
626
- <input type="text" placeholder="600" option="setting" name="max_execution_time" id="wpvivid_option_timeout" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['max_execution_time'], 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
627
- <div><p><?php _e( '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.', 'wpvivid' ); ?></p></div>
628
  </div>
629
- <div><strong><?php _e('PHP script execution timeout for restore', 'wpvivid'); ?></strong></div>
630
  <div class="setting-tab-block">
631
  <input type="text" placeholder="1800" option="setting" name="restore_max_execution_time" class="all-options" value="<?php esc_attr_e($restore_max_execution_time); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
632
- <div><p><?php _e( '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.', 'wpvivid' ); ?></p></div>
633
  </div>
634
- <div><strong><?php _e('PHP Memory Limit for backup', 'wpvivid'); ?></strong></div>
635
  <div class="setting-tab-block">
636
- <input type="text" placeholder="256" option="setting" name="memory_limit" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_common_setting']['memory_limit']), 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
637
- <div><p><?php _e('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.', 'wpvivid'); ?></p></div>
638
  </div>
639
- <div><strong><?php _e('PHP Memory Limit for restoration', 'wpvivid'); ?></strong></div>
640
  <div class="setting-tab-block">
641
- <input type="text" placeholder="256" option="setting" name="restore_memory_limit" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_common_setting']['restore_memory_limit']), 'wpvivid'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
642
- <div><p><?php _e('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.', 'wpvivid'); ?></p></div>
643
  </div>
644
- <div><strong><?php _e('Chunk Size', 'wpvivid'); ?></strong></div>
645
  <div class="setting-tab-block">
646
  <input type="text" placeholder="2" option="setting" name="migrate_size" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['migrate_size']); ?>" onkeyup="value=value.replace(/\D/g,'')" />KB
647
- <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>
648
  </div>
649
  <div>
650
  <?php
@@ -658,7 +658,7 @@ function wpvivid_advanced_settings()
658
  }
659
  }
660
  $max_count_select = '<select option="setting" name="max_resume_count">'.$max_count_option.'</select>';
661
- echo sprintf(__('<strong>Retrying </strong>%s<strong> times when encountering a time-out error</strong>', 'wpvivid'), $max_count_select);
662
  ?>
663
  </div>
664
  </div>
@@ -674,13 +674,13 @@ function wpvivid_add_setting_tab_page($setting_array){
674
 
675
  function wpvivid_settingpage_add_tab_general(){
676
  ?>
677
- <a href="#" id="wpvivid_tab_general_setting" class="nav-tab setting-nav-tab nav-tab-active" onclick="switchsettingTabs(event,'page-general-setting')"><?php _e('General Settings', 'wpvivid'); ?></a>
678
  <?php
679
  }
680
 
681
  function wpvivid_settingpage_add_tab_advance(){
682
  ?>
683
- <a href="#" id="wpvivid_tab_advance_setting" class="nav-tab setting-nav-tab" onclick="switchsettingTabs(event,'page-advance-setting')"><?php _e('Advanced Settings', 'wpvivid'); ?></a>
684
  <?php
685
  }
686
 
97
  }
98
  }
99
  ?>
100
+ </select><strong style="margin-right: 10px;"><?php _e('backups retained', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?></a>
101
  </div>
102
  <div>
103
  <label for="wpvivid_estimate_backup">
104
  <input type="checkbox" option="setting" name="estimate_backup" id="wpvivid_estimate_backup" value="1" <?php esc_attr_e($wpvivid_setting_estimate_backup); ?> />
105
+ <span><?php _e('Calculate the size of files, folder and database before backing up', 'wpvivid-backuprestore' ); ?></span>
106
  </label>
107
  </div>
108
  <div>
109
  <label>
110
  <input type="checkbox" option="setting" name="show_admin_bar" <?php esc_attr_e($show_admin_bar); ?> />
111
+ <span><?php _e('Show WPvivid backup plugin on top admin bar', 'wpvivid-backuprestore'); ?></span>
112
  </label>
113
  </div>
114
  <div>
115
  <label>
116
  <input type="checkbox" option="setting" name="ismerge" <?php esc_attr_e($wpvivid_ismerge); ?> />
117
+ <span><?php _e('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.', 'wpvivid-backuprestore'); ?></span>
118
  </label>
119
  </div>
120
  <div>
121
  <label>
122
  <input type="checkbox" option="setting" name="retain_local" <?php esc_attr_e($wpvivid_retain_local); ?> />
123
+ <span><?php _e('Keep storing the backups in localhost after uploading to remote storage', 'wpvivid-backuprestore'); ?></span>
124
  </label>
125
  </div>
126
  <div>
127
  <label>
128
  <input type="checkbox" option="setting" name="uninstall_clear_folder" <?php esc_attr_e($uninstall_clear_folder); ?> />
129
+ <span><?php _e(sprintf('Delete the /%s folder and all backups in it when deleting WPvivid Backup plugin.', $general_setting['options']['wpvivid_local_setting']['path']), 'wpvivid-backuprestore'); ?></span>
130
  </label>
131
  </div>
132
  </div>
133
  <div class="postbox schedule-tab-block">
134
+ <div><strong><?php _e('Backup Folder', 'wpvivid-backuprestore'); ?></strong></div>
135
  <div class="setting-tab-block">
136
+ <div><p><?php _e('Name your folder, this folder must be writable for creating backup files.', 'wpvivid-backuprestore' ); ?><p> </div>
137
+ <input type="text" placeholder="wpvividbackups" option="setting" name="path" id="wpvivid_option_backup_dir" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_local_setting']['path'], 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9]/g,'')" />
138
+ <p><span class="wpvivid-element-space-right"><?php _e('Local storage directory:', 'wpvivid-backuprestore'); ?></span><span><?php echo WP_CONTENT_DIR.'/'; ?><span id="wpvivid_setting_local_storage_path"><?php _e($general_setting['options']['wpvivid_local_setting']['path'], 'wpvivid-backuprestore'); ?></span></span></p>
139
  </div>
140
  <div>
141
  <label>
142
  <input type="checkbox" option="setting" name="domain_include" <?php esc_attr_e($wpvivid_domain_include); ?> />
143
+ <span><?php _e('Display domain(url) of current site in backup name. (e.g. domain_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)', 'wpvivid-backuprestore'); ?></span>
144
  </label>
145
  </div>
146
  </div>
147
  <div class="postbox schedule-tab-block">
148
+ <div><strong><?php _e('Remove out-of-date backups', 'wpvivid-backuprestore'); ?></strong></div>
149
  <div class="setting-tab-block" style="padding-bottom: 0;">
150
  <fieldset>
151
  <label for="users_can_register">
152
+ <p><span class="wpvivid-element-space-right"><?php _e('Web Server Directory:', 'wpvivid-backuprestore'); ?></span><span id="wpvivid_out_of_date_local_path"><?php _e($out_of_date['web_server'], 'wpvivid-backuprestore'); ?></span></p>
153
+ <p><span style="margin-right: 2px;"><?php _e('Remote Storage Directory:', 'wpvivid-backuprestore'); ?></span><span id="wpvivid_out_of_date_remote_path">
154
  <?php
155
  $wpvivid_get_remote_directory = '';
156
  $wpvivid_get_remote_directory = apply_filters('wpvivid_get_remote_directory', $wpvivid_get_remote_directory);
162
  </fieldset>
163
  </div>
164
  <div class="setting-tab-block" style="padding: 10px 10px 0 0;">
165
+ <input class="button-primary" id="wpvivid_delete_out_of_backup" style="margin-right:10px;" type="submit" name="delete-out-of-backup" value="<?php esc_attr_e( 'Remove', 'wpvivid-backuprestore' ); ?>" />
166
+ <p><?php _e('The action is irreversible! It will remove all backups are out-of-date (including local web server and remote storage) if they exist.', 'wpvivid-backuprestore'); ?> </p>
167
  </div>
168
  </div>
169
  <script>
223
  }
224
  ?>
225
  <div class="postbox schedule-tab-block" id="wpvivid_email_report">
226
+ <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-backuprestore'); ?></p>
227
  </div>
228
  <div>
229
  <label for="wpvivid_general_email_enable">
230
+ <input type="checkbox" option="setting" name="email_enable" id="wpvivid_general_email_enable" value="1" <?php esc_attr_e($setting_email_enable, 'wpvivid-backuprestore'); ?> />
231
+ <span><strong><?php _e( 'Enable email report', 'wpvivid-backuprestore' ); ?></strong></span>
232
  </label>
233
  </div>
234
+ <div id="wpvivid_general_email_setting" style="<?php esc_attr_e($setting_email_display, 'wpvivid-backuprestore'); ?>" >
235
  <input type="text" placeholder="example@yourdomain.com" option="setting" name="send_to" class="regular-text" id="wpvivid_mail" value="<?php
236
  if(!empty($general_setting['options']['wpvivid_email_setting']['send_to'])) {
237
  foreach ($general_setting['options']['wpvivid_email_setting']['send_to'] as $mail) {
238
  if(!empty($mail) && !is_array($mail)) {
239
+ _e($mail, 'wpvivid-backuprestore');
240
  break;
241
  }
242
  }
243
  }
244
  ?>" />
245
+ <input class="button-secondary" id="wpvivid_send_email_test" style="margin-top:10px;" type="submit" name="" value="<?php esc_attr_e( 'Test Email', 'wpvivid-backuprestore' ); ?>" title="Send an email for testing mail function"/>
246
  <div id="wpvivid_send_email_res"></div>
247
  <fieldset class="setting-tab-block">
248
  <label >
249
+ <input type="radio" option="setting" name="always" value="1" <?php esc_attr_e($wpvivid_setting_email_always, 'wpvivid-backuprestore'); ?> />
250
+ <span><?php _e( 'Always send an email notification when a backup is complete', 'wpvivid-backuprestore' ); ?></span>
251
  </label><br>
252
  <label >
253
+ <input type="radio" option="setting" name="always" value="0" <?php esc_attr_e($wpvivid_setting_email_failed, 'wpvivid-backuprestore'); ?> />
254
+ <span><?php _e( 'Only send an email notification when a backup fails', 'wpvivid-backuprestore' ); ?></span>
255
  </label><br>
256
  </fieldset>
257
  <div style="margin-bottom: 10px;">
258
+ <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-backuprestore'); ?></a>
259
  </div>
260
  </div>
261
  </div>
302
  ?>
303
  <div class="postbox schedule-tab-block" id="wpvivid_clean_junk">
304
  <div>
305
+ <strong><?php _e('Web-server disk space in use by WPvivid', 'wpvivid-backuprestore'); ?></strong>
306
  </div>
307
  <div class="setting-tab-block">
308
  <div class="setting-tab-block">
309
+ <span class="wpvivid-element-space-right"><?php _e('Total Size:', 'wpvivid-backuprestore'); ?></span>
310
+ <span id="wpvivid_junk_sum_size"><?php _e($junk_file['sum_size'], 'wpvivid-backuprestore'); ?></span>
311
+ <input class="button-secondary" id="wpvivid_calculate_size" style="margin-left:10px;" type="submit" name="Calculate-Sizes" value="<?php esc_attr_e( 'Calculate Sizes', 'wpvivid-backuprestore' ); ?>" />
312
  </div>
313
  <fieldset>
314
  <label for="wpvivid_junk_log">
315
  <input type="checkbox" id="wpvivid_junk_log" option="junk-files" name="log" value="junk-log" />
316
+ <span class="wpvivid-element-space-right"><?php _e( 'logs', 'wpvivid-backuprestore' ); ?></span>
317
+ <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid-backuprestore' ); ?></span><span id="wpvivid_junk_log_path"><?php _e($junk_file['log_path'], 'wpvivid-backuprestore'); ?></span>
318
  </label>
319
  </fieldset>
320
  <fieldset>
321
  <label for="wpvivid_junk_backup_cache">
322
  <input type="checkbox" id="wpvivid_junk_backup_cache" option="junk-files" name="backup_cache" value="junk-backup-cache" />
323
+ <span class="wpvivid-element-space-right"><?php _e( 'Backup Cache', 'wpvivid-backuprestore' ); ?></span>
324
  </label>
325
  <label for="wpvivid_junk_file">
326
  <input type="checkbox" id="wpvivid_junk_file" option="junk-files" name="junk_files" value="junk-files" />
327
+ <span class="wpvivid-element-space-right"><?php _e( 'Junk', 'wpvivid-backuprestore' ); ?></span>
328
+ <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid-backuprestore' ); ?></span><span id="wpvivid_junk_file_path"><?php _e($junk_file['junk_path'], 'wpvivid-backuprestore'); ?></span>
329
  </label>
330
  </fieldset>
331
  <fieldset>
332
  <label for="wpvivid_junk_temporary_file">
333
  <input type="checkbox" id="wpvivid_junk_temporary_file" option="junk-files" name="old_files" value="junk-temporary-files" />
334
+ <span class="wpvivid-element-space-right"><?php _e( 'Temporary Files', 'wpvivid-backuprestore' ); ?></span>
335
+ <span style="margin-right: 2px;"><?php _e('Path:', 'wpvivid-backuprestore'); ?></span><span id="wpvivid_restore_temp_file_path"><?php _e($junk_file['old_files_path'], 'wpvivid-backuprestore'); ?></span>
336
+ <p><?php echo __('Temporary Files are created by wpvivid when restoring a website.', 'wpvivid-backuprestore'); ?></p>
337
  </label>
338
  </fieldset>
339
  </div>
340
+ <div><input class="button-primary" id="wpvivid_clean_junk_file" type="submit" name="Empty-all-files" value="<?php esc_attr_e( 'Empty', 'wpvivid-backuprestore' ); ?>" /></div>
341
  <div style="clear:both;"></div>
342
  </div>
343
  <script>
439
  ?>
440
  <div class="postbox schedule-tab-block" id="wpvivid_export_import">
441
  <div class="setting-tab-block" style="padding-bottom: 0;">
442
+ <input class="button-primary" id="wpvivid_setting_export" type="button" name="" value="<?php esc_attr_e( 'Export', 'wpvivid-backuprestore' ); ?>" />
443
+ <p><?php echo __('Click \'Export\' button to save WPvivid settings on your local computer.', 'wpvivid-backuprestore'); ?> </p>
444
  </div>
445
  <div class="setting-tab-block" style="padding: 0 10px 0 0;">
446
  <input type="file" name="fileTrans" id="wpvivid_select_import_file"></br>
447
+ <input class="button-primary" id="wpvivid_setting_import" type="button" name="" value="<?php esc_attr_e( 'Import', 'wpvivid-backuprestore' ); ?>" />
448
+ <p><?php echo __('Importing the json file can help you set WPvivid\'s configuration on another wordpress site quickly.', 'wpvivid-backuprestore'); ?></p>
449
  </div>
450
  <div style="clear:both;"></div>
451
  </div>
565
  ?>
566
  <div class="postbox schedule-tab-block setting-page-content">
567
  <div>
568
+ <p><strong><?php _e('Enable the option when backup failed.', 'wpvivid-backuprestore'); ?></strong>&nbsp<?php _e('Special optimization for web hosting/shared hosting', 'wpvivid-backuprestore'); ?></p>
569
  <div>
570
  <label>
571
  <input type="checkbox" option="setting" name="subpackage_plugin_upload" <?php esc_attr_e($subpackage_plugin_upload); ?> />
572
+ <span><strong><?php _e('Enable optimization mode for web hosting/shared hosting', 'wpvivid-backuprestore'); ?></strong></span>
573
  </label>
574
  <div>
575
+ <p><?php _e('Enabling this option can improve the backup success rate, but it will take more time for backup.', 'wpvivid-backuprestore'); ?></p>
576
  </div>
577
  </div>
578
  </div>
579
  </div>
580
  <div class="postbox schedule-tab-block wpvivid-setting-addon" style="margin-bottom: 10px; padding-bottom: 0;">
581
  <div class="wpvivid-element-space-bottom">
582
+ <strong><?php _e('Database access method.', 'wpvivid-backuprestore'); ?></strong>
583
  </div>
584
  <div class="wpvivid-element-space-bottom">
585
  <label>
586
  <input type="radio" option="setting" name="db_connect_method" value="wpdb" <?php esc_attr_e($db_method_wpdb); ?> />
587
+ <span class="wpvivid-element-space-right"><strong>WPDB</strong></span><span><?php _e('WPDB option has a better compatibility, but the speed of backup and restore is slower.', 'wpvivid-backuprestore'); ?></span>
588
  </label>
589
  </div>
590
  <div class="wpvivid-element-space-bottom">
591
  <label>
592
  <input type="radio" option="setting" name="db_connect_method" value="pdo" <?php esc_attr_e($db_method_pdo); ?> />
593
+ <span class="wpvivid-element-space-right"><strong>PDO</strong></span><span><?php _e('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.', 'wpvivid-backuprestore'); ?></span>
594
  </label>
595
  </div>
596
  </div>
597
  <div class="postbox schedule-tab-block setting-page-content">
598
  <fieldset>
599
  <label>
600
+ <input type="radio" option="setting" name="no_compress" value="1" <?php esc_attr_e($wpvivid_setting_no_compress, 'wpvivid-backuprestore'); ?> />
601
+ <span class="wpvivid-element-space-right" title="<?php _e( 'It will cause a lower CPU Usage and is recommended in a web hosting/ shared hosting environment.', 'wpvivid-backuprestore' ); ?>"><?php _e( 'Only Archive without compressing', 'wpvivid-backuprestore' ); ?></span>
602
  </label>
603
  <label>
604
+ <input type="radio" option="setting" name="no_compress" value="0" <?php esc_attr_e($wpvivid_setting_compress, 'wpvivid-backuprestore'); ?> />
605
+ <span class="wpvivid-element-space-right" title="<?php _e( 'It will cause a higher CPU Usage and is recommended in a VPS/ dedicated hosting environment.', 'wpvivid-backuprestore' ); ?>"><?php _e( 'Compress and Archive', 'wpvivid-backuprestore' ); ?></span>
606
  </label>
607
  <label style="display: none;">
608
  <input type="radio" option="setting" name="compress_type" value="zip" checked />
611
  </label>
612
  </fieldset>
613
  <div style="padding-top: 10px;">
614
+ <div><strong><?php _e('Compress Files Every', 'wpvivid-backuprestore'); ?></strong></div>
615
  <div class="setting-tab-block">
616
+ <input type="text" placeholder="400" option="setting" name="max_file_size" id="wpvivid_max_zip" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_compress_setting']['max_file_size']), 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
617
+ <div><p><?php _e( '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.', 'wpvivid-backuprestore' ); ?></div></p>
618
  </div>
619
+ <div><strong><?php _e('Exclude the files which are larger than', 'wpvivid-backuprestore'); ?></strong></div>
620
  <div class="setting-tab-block">
621
+ <input type="text" placeholder="400" option="setting" name="exclude_file_size" id="wpvivid_ignore_large" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_compress_setting']['exclude_file_size'], 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
622
+ <div><p><?php _e( 'Using the option will ignore the file larger than the certain size in MB when backing up, \'0\' (zero) means unlimited.', 'wpvivid-backuprestore' ); ?></p></div>
623
  </div>
624
+ <div><strong><?php _e('PHP script execution timeout for backup', 'wpvivid-backuprestore'); ?></strong></div>
625
  <div class="setting-tab-block">
626
+ <input type="text" placeholder="600" option="setting" name="max_execution_time" id="wpvivid_option_timeout" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['max_execution_time'], 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
627
+ <div><p><?php _e( '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.', 'wpvivid-backuprestore' ); ?></p></div>
628
  </div>
629
+ <div><strong><?php _e('PHP script execution timeout for restore', 'wpvivid-backuprestore'); ?></strong></div>
630
  <div class="setting-tab-block">
631
  <input type="text" placeholder="1800" option="setting" name="restore_max_execution_time" class="all-options" value="<?php esc_attr_e($restore_max_execution_time); ?>" onkeyup="value=value.replace(/\D/g,'')" />Seconds
632
+ <div><p><?php _e( '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.', 'wpvivid-backuprestore' ); ?></p></div>
633
  </div>
634
+ <div><strong><?php _e('PHP Memory Limit for backup', 'wpvivid-backuprestore'); ?></strong></div>
635
  <div class="setting-tab-block">
636
+ <input type="text" placeholder="256" option="setting" name="memory_limit" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_common_setting']['memory_limit']), 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
637
+ <div><p><?php _e('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.', 'wpvivid-backuprestore'); ?></p></div>
638
  </div>
639
+ <div><strong><?php _e('PHP Memory Limit for restoration', 'wpvivid-backuprestore'); ?></strong></div>
640
  <div class="setting-tab-block">
641
+ <input type="text" placeholder="256" option="setting" name="restore_memory_limit" class="all-options" value="<?php esc_attr_e(str_replace('M', '', $general_setting['options']['wpvivid_common_setting']['restore_memory_limit']), 'wpvivid-backuprestore'); ?>" onkeyup="value=value.replace(/\D/g,'')" />MB
642
+ <div><p><?php _e('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.', 'wpvivid-backuprestore'); ?></p></div>
643
  </div>
644
+ <div><strong><?php _e('Chunk Size', 'wpvivid-backuprestore'); ?></strong></div>
645
  <div class="setting-tab-block">
646
  <input type="text" placeholder="2" option="setting" name="migrate_size" class="all-options" value="<?php esc_attr_e($general_setting['options']['wpvivid_common_setting']['migrate_size']); ?>" onkeyup="value=value.replace(/\D/g,'')" />KB
647
+ <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-backuprestore'); ?></p></div>
648
  </div>
649
  <div>
650
  <?php
658
  }
659
  }
660
  $max_count_select = '<select option="setting" name="max_resume_count">'.$max_count_option.'</select>';
661
+ echo sprintf(__('<strong>Retrying </strong>%s<strong> times when encountering a time-out error</strong>', 'wpvivid-backuprestore'), $max_count_select);
662
  ?>
663
  </div>
664
  </div>
674
 
675
  function wpvivid_settingpage_add_tab_general(){
676
  ?>
677
+ <a href="#" id="wpvivid_tab_general_setting" class="nav-tab setting-nav-tab nav-tab-active" onclick="switchsettingTabs(event,'page-general-setting')"><?php _e('General Settings', 'wpvivid-backuprestore'); ?></a>
678
  <?php
679
  }
680
 
681
  function wpvivid_settingpage_add_tab_advance(){
682
  ?>
683
+ <a href="#" id="wpvivid_tab_advance_setting" class="nav-tab setting-nav-tab" onclick="switchsettingTabs(event,'page-advance-setting')"><?php _e('Advanced Settings', 'wpvivid-backuprestore'); ?></a>
684
  <?php
685
  }
686
 
includes/class-wpvivid-backup-database.php CHANGED
@@ -13,8 +13,10 @@ class WPvivid_Backup_Database
13
  {
14
  }
15
 
16
- public function wpvivid_archieve_database_info($databases, $data){
17
- if(isset($data['dump_db'])){
 
 
18
  $sql_info['file_name'] =$data['sql_file_name'];
19
  $sql_info['database'] = DB_NAME;
20
  $sql_info['host'] = DB_HOST;
@@ -55,17 +57,34 @@ class WPvivid_Backup_Database
55
  add_filter('wpvivid_exclude_db_table', array($this, 'exclude_table'),10,2);
56
  $exclude=array();
57
  $exclude = apply_filters('wpvivid_exclude_db_table',$exclude, $data);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  add_filter('wpvivid_archieve_database_info', array($this, 'wpvivid_archieve_database_info'), 10, 2);
60
  $databases=array();
61
  $databases = apply_filters('wpvivid_archieve_database_info', $databases, $data);
62
  $is_additional_db = false;
63
- if($data['key'] === 'backup_additional_db'){
 
64
  $is_additional_db = true;
65
  }
66
 
67
  $backup_files = array();
68
- foreach ($databases as $sql_info) {
 
69
  $database_name = $sql_info['database'];
70
  $backup_file = $sql_info['file_name'];
71
  $backup_files[] = $backup_file;
@@ -73,7 +92,18 @@ class WPvivid_Backup_Database
73
  $user = $sql_info['user'];
74
  $pass = $sql_info['pass'];
75
 
76
- $dump = new WPvivid_Mysqldump($host, $database_name, $user, $pass, $is_additional_db, array('exclude-tables'=>$exclude,'add-drop-table' => true,'extended-insert'=>false));
 
 
 
 
 
 
 
 
 
 
 
77
 
78
  if (file_exists($backup_file))
79
  @unlink($backup_file);
13
  {
14
  }
15
 
16
+ public function wpvivid_archieve_database_info($databases, $data)
17
+ {
18
+ if(isset($data['dump_db']))
19
+ {
20
  $sql_info['file_name'] =$data['sql_file_name'];
21
  $sql_info['database'] = DB_NAME;
22
  $sql_info['host'] = DB_HOST;
57
  add_filter('wpvivid_exclude_db_table', array($this, 'exclude_table'),10,2);
58
  $exclude=array();
59
  $exclude = apply_filters('wpvivid_exclude_db_table',$exclude, $data);
60
+ $include=array();
61
+ $include = apply_filters('wpvivid_include_db_table',$include, $data);
62
+
63
+ $site_url = apply_filters('wpvivid_dump_set_site_url',get_site_url(), $data);
64
+ $home_url = apply_filters('wpvivid_dump_set_home_url',get_home_url(), $data);
65
+ $content_url=apply_filters('wpvivid_dump_set_content_url',content_url(), $data);
66
+
67
+ global $wpdb;
68
+ if (is_multisite() && !defined('MULTISITE'))
69
+ {
70
+ $prefix = $wpdb->base_prefix;
71
+ } else {
72
+ $prefix = $wpdb->get_blog_prefix(0);
73
+ }
74
+ $prefix=apply_filters('wpvivid_dump_set_prefix',$prefix, $data);
75
 
76
  add_filter('wpvivid_archieve_database_info', array($this, 'wpvivid_archieve_database_info'), 10, 2);
77
  $databases=array();
78
  $databases = apply_filters('wpvivid_archieve_database_info', $databases, $data);
79
  $is_additional_db = false;
80
+ if($data['key'] === 'backup_additional_db')
81
+ {
82
  $is_additional_db = true;
83
  }
84
 
85
  $backup_files = array();
86
+ foreach ($databases as $sql_info)
87
+ {
88
  $database_name = $sql_info['database'];
89
  $backup_file = $sql_info['file_name'];
90
  $backup_files[] = $backup_file;
92
  $user = $sql_info['user'];
93
  $pass = $sql_info['pass'];
94
 
95
+ $dumpSettings=array();
96
+ $dumpSettings['exclude-tables']=$exclude;
97
+ $dumpSettings['include-tables']=$include;
98
+ $dumpSettings['add-drop-table']=true;
99
+ $dumpSettings['extended-insert']=false;
100
+
101
+ $dumpSettings['site_url']=$site_url;
102
+ $dumpSettings['home_url']=$home_url;
103
+ $dumpSettings['content_url']=$content_url;
104
+ $dumpSettings['prefix']=$prefix;
105
+
106
+ $dump = new WPvivid_Mysqldump($host, $database_name, $user, $pass, $is_additional_db, $dumpSettings);
107
 
108
  if (file_exists($backup_file))
109
  @unlink($backup_file);
includes/class-wpvivid-backup-uploader.php CHANGED
@@ -453,10 +453,10 @@ class Wpvivid_BackupUploader
453
  $backupdir=WPvivid_Setting::get_backupdir();
454
  ?>
455
  <div style="padding-top: 10px;">
456
- <span><?php _e('Tips: Click the button below to scan all uploaded or received backups in directory', 'wpvivid'); ?>&nbsp<?php echo WP_CONTENT_DIR.'/'.$backupdir; ?></span>
457
  </div>
458
  <div style="padding-top: 10px;">
459
- <input type="submit" class="button-primary" value="<?php esc_attr_e('Scan uploaded backup or received backup', 'wpvivid'); ?>" onclick="wpvivid_rescan_local_folder();" />
460
  </div>
461
  <script type="text/javascript">
462
  function wpvivid_rescan_local_folder()
@@ -503,9 +503,9 @@ class Wpvivid_BackupUploader
503
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js">
504
  <div id="drag-drop-area">
505
  <div class="drag-drop-inside">
506
- <p class="drag-drop-info"><?php _e('Drop files here', 'wpvivid'); ?></p>
507
  <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?></p>
508
- <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files', 'wpvivid'); ?>" class="button" /></p>
509
  </div>
510
  </div>
511
  </div>
453
  $backupdir=WPvivid_Setting::get_backupdir();
454
  ?>
455
  <div style="padding-top: 10px;">
456
+ <span><?php _e('Tips: Click the button below to scan all uploaded or received backups in directory', 'wpvivid-backuprestore'); ?>&nbsp<?php echo WP_CONTENT_DIR.'/'.$backupdir; ?></span>
457
  </div>
458
  <div style="padding-top: 10px;">
459
+ <input type="submit" class="button-primary" value="<?php esc_attr_e('Scan uploaded backup or received backup', 'wpvivid-backuprestore'); ?>" onclick="wpvivid_rescan_local_folder();" />
460
  </div>
461
  <script type="text/javascript">
462
  function wpvivid_rescan_local_folder()
503
  <div id="wpvivid_plupload-upload-ui" class="hide-if-no-js">
504
  <div id="drag-drop-area">
505
  <div class="drag-drop-inside">
506
+ <p class="drag-drop-info"><?php _e('Drop files here', 'wpvivid-backuprestore'); ?></p>
507
  <p><?php _ex('or', 'Uploader: Drop files here - or - Select Files'); ?></p>
508
+ <p class="drag-drop-buttons"><input id="wpvivid_select_file_button" type="button" value="<?php esc_attr_e('Select Files', 'wpvivid-backuprestore'); ?>" class="button" /></p>
509
  </div>
510
  </div>
511
  </div>
includes/class-wpvivid-backup.php CHANGED
@@ -19,7 +19,7 @@ define('WPVIVID_BACKUP_TYPE_MERGE','backup_merge');
19
  define('WPVIVID_BACKUP_ROOT_WP_CONTENT','wp-content');
20
  define('WPVIVID_BACKUP_ROOT_CUSTOM','custom');
21
  define('WPVIVID_BACKUP_ROOT_WP_ROOT','root');
22
-
23
  class WPvivid_Backup_Task
24
  {
25
  protected $task;
@@ -1094,7 +1094,7 @@ class WPvivid_Backup_Task
1094
  $list_tasks['task_info']['need_update_last_task']=false;
1095
  if($list_tasks['status']['str']=='ready')
1096
  {
1097
- $list_tasks['task_info']['descript']=__('Ready to backup. Progress: 0%, running time: 0second.','wpvivid');
1098
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1099
  $list_tasks['task_info']['css_btn_log']='pointer-events: none; opacity: 0.4;';
1100
  }
@@ -1129,7 +1129,7 @@ class WPvivid_Backup_Task
1129
  }
1130
 
1131
  $list_tasks['task_info']['speed'] = $speed;
1132
- $list_tasks['task_info']['descript'] = $descript.' '.__('Progress: ', 'wpvivid') . $list_tasks['task_info']['backup_percent'] . ', ' . __('running time: ', 'wpvivid') . $list_tasks['data']['running_time'];
1133
 
1134
  $time_spend=time()-$list_tasks['status']['run_time'];
1135
  if($time_spend>30)
@@ -1142,13 +1142,13 @@ class WPvivid_Backup_Task
1142
  }
1143
  }
1144
  else {
1145
- $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'];
1146
  }
1147
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: auto; opacity: 1;';
1148
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1149
  }
1150
  else{
1151
- $list_tasks['task_info']['descript']=__('The backup will be canceled after backing up the current chunk ends.','wpvivid');
1152
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1153
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1154
  }
@@ -1165,7 +1165,7 @@ class WPvivid_Backup_Task
1165
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1166
  }
1167
  else{
1168
- $list_tasks['task_info']['descript']=__('The backup will be canceled after backing up the current chunk ends.','wpvivid');
1169
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1170
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1171
  }
@@ -1564,7 +1564,8 @@ class WPvivid_Backup_Item
1564
  $tmp_data = $this->config['backup']['data']['meta']['files'];
1565
  }
1566
 
1567
- if($b_has_data){
 
1568
  $b_need_download=false;
1569
  $b_not_found=false;
1570
  $b_test=false;
@@ -1574,15 +1575,17 @@ class WPvivid_Backup_Item
1574
  $path=$this->get_local_path().$file['file_name'];
1575
  if(file_exists($path))
1576
  {
1577
- if(filesize($path) == $file['size']){
1578
- if($wpvivid_plugin->wpvivid_check_zip_valid()) {
 
 
1579
  $res = TRUE;
1580
  }
1581
  else{
1582
  $res = FALSE;
1583
  }
1584
  }
1585
- else{
1586
  $res = FALSE;
1587
  }
1588
  if ($res !== TRUE)
@@ -2289,7 +2292,7 @@ class WPvivid_Backup
2289
  {
2290
  global $wpvivid_plugin;
2291
  $wpvivid_plugin->set_time_limit($this->task->get_id());
2292
- $this->task->update_sub_task_progress($next_backup['key'],0, sprintf(__('Start backing up %s.', 'wpvivid'), $next_backup['key']));
2293
  $wpvivid_plugin->wpvivid_log->WriteLog('Prepare to backup '.$next_backup['key'].' files.','notice');
2294
  $this->backup_type_report .= $next_backup['key'].',';
2295
  if(isset($next_backup['files'])) {
@@ -2297,7 +2300,7 @@ class WPvivid_Backup
2297
  }
2298
  $result = $this->_backup($next_backup);
2299
  $wpvivid_plugin->wpvivid_log->WriteLog('Backing up '.$next_backup['key'].' completed.','notice');
2300
- $this->task->update_sub_task_progress($next_backup['key'],1, sprintf(__('Backing up %s finished.', 'wpvivid'), $next_backup['key']));
2301
  $this->task->update_backup_result($next_backup,$result);
2302
  $wpvivid_plugin->check_cancel_backup($task_id);
2303
  unset($next_backup);
@@ -2319,7 +2322,8 @@ class WPvivid_Backup
2319
 
2320
  $is_type_db = false;
2321
  $is_type_db = apply_filters('wpvivid_check_type_database', $is_type_db, $data);
2322
- if($is_type_db){
 
2323
  include_once WPVIVID_PLUGIN_DIR .'/includes/class-wpvivid-backup-database.php';
2324
  $wpvivid_plugin->wpvivid_log->WriteLog('Start exporting database.','notice');
2325
  $backup_database = new WPvivid_Backup_Database();
@@ -2430,11 +2434,12 @@ class WPvivid_Backup
2430
  if($is_additional_db){
2431
  $result =$zip->compress_additional_database($data);
2432
  }
2433
- else{
2434
  $result =$zip->compress($data);
2435
  }
2436
 
2437
- if($is_type_db){
 
2438
  foreach ($data['files'] as $sql_file)
2439
  {
2440
  @unlink($sql_file);
19
  define('WPVIVID_BACKUP_ROOT_WP_CONTENT','wp-content');
20
  define('WPVIVID_BACKUP_ROOT_CUSTOM','custom');
21
  define('WPVIVID_BACKUP_ROOT_WP_ROOT','root');
22
+ define('WPVIVID_BACKUP_ROOT_WP_UPLOADS','uploads');
23
  class WPvivid_Backup_Task
24
  {
25
  protected $task;
1094
  $list_tasks['task_info']['need_update_last_task']=false;
1095
  if($list_tasks['status']['str']=='ready')
1096
  {
1097
+ $list_tasks['task_info']['descript']=__('Ready to backup. Progress: 0%, running time: 0second.','wpvivid-backuprestore');
1098
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1099
  $list_tasks['task_info']['css_btn_log']='pointer-events: none; opacity: 0.4;';
1100
  }
1129
  }
1130
 
1131
  $list_tasks['task_info']['speed'] = $speed;
1132
+ $list_tasks['task_info']['descript'] = $descript.' '.__('Progress: ', 'wpvivid-backuprestore') . $list_tasks['task_info']['backup_percent'] . ', ' . __('running time: ', 'wpvivid-backuprestore') . $list_tasks['data']['running_time'];
1133
 
1134
  $time_spend=time()-$list_tasks['status']['run_time'];
1135
  if($time_spend>30)
1142
  }
1143
  }
1144
  else {
1145
+ $list_tasks['task_info']['descript'] = $list_tasks['data']['descript'] . ' '. __('Progress: ', 'wpvivid-backuprestore') . $list_tasks['task_info']['backup_percent'] . ', '. __('running time: ', 'wpvivid-backuprestore') . $list_tasks['data']['running_time'];
1146
  }
1147
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: auto; opacity: 1;';
1148
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1149
  }
1150
  else{
1151
+ $list_tasks['task_info']['descript']=__('The backup will be canceled after backing up the current chunk ends.','wpvivid-backuprestore');
1152
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1153
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1154
  }
1165
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1166
  }
1167
  else{
1168
+ $list_tasks['task_info']['descript']=__('The backup will be canceled after backing up the current chunk ends.','wpvivid-backuprestore');
1169
  $list_tasks['task_info']['css_btn_cancel']='pointer-events: none; opacity: 0.4;';
1170
  $list_tasks['task_info']['css_btn_log']='pointer-events: auto; opacity: 1;';
1171
  }
1564
  $tmp_data = $this->config['backup']['data']['meta']['files'];
1565
  }
1566
 
1567
+ if($b_has_data)
1568
+ {
1569
  $b_need_download=false;
1570
  $b_not_found=false;
1571
  $b_test=false;
1575
  $path=$this->get_local_path().$file['file_name'];
1576
  if(file_exists($path))
1577
  {
1578
+ if(filesize($path) == $file['size'])
1579
+ {
1580
+ if($wpvivid_plugin->wpvivid_check_zip_valid())
1581
+ {
1582
  $res = TRUE;
1583
  }
1584
  else{
1585
  $res = FALSE;
1586
  }
1587
  }
1588
+ else {
1589
  $res = FALSE;
1590
  }
1591
  if ($res !== TRUE)
2292
  {
2293
  global $wpvivid_plugin;
2294
  $wpvivid_plugin->set_time_limit($this->task->get_id());
2295
+ $this->task->update_sub_task_progress($next_backup['key'],0, sprintf(__('Start backing up %s.', 'wpvivid-backuprestore'), $next_backup['key']));
2296
  $wpvivid_plugin->wpvivid_log->WriteLog('Prepare to backup '.$next_backup['key'].' files.','notice');
2297
  $this->backup_type_report .= $next_backup['key'].',';
2298
  if(isset($next_backup['files'])) {
2300
  }
2301
  $result = $this->_backup($next_backup);
2302
  $wpvivid_plugin->wpvivid_log->WriteLog('Backing up '.$next_backup['key'].' completed.','notice');
2303
+ $this->task->update_sub_task_progress($next_backup['key'],1, sprintf(__('Backing up %s finished.', 'wpvivid-backuprestore'), $next_backup['key']));
2304
  $this->task->update_backup_result($next_backup,$result);
2305
  $wpvivid_plugin->check_cancel_backup($task_id);
2306
  unset($next_backup);
2322
 
2323
  $is_type_db = false;
2324
  $is_type_db = apply_filters('wpvivid_check_type_database', $is_type_db, $data);
2325
+ if($is_type_db)
2326
+ {
2327
  include_once WPVIVID_PLUGIN_DIR .'/includes/class-wpvivid-backup-database.php';
2328
  $wpvivid_plugin->wpvivid_log->WriteLog('Start exporting database.','notice');
2329
  $backup_database = new WPvivid_Backup_Database();
2434
  if($is_additional_db){
2435
  $result =$zip->compress_additional_database($data);
2436
  }
2437
+ else {
2438
  $result =$zip->compress($data);
2439
  }
2440
 
2441
+ if($is_type_db)
2442
+ {
2443
  foreach ($data['files'] as $sql_file)
2444
  {
2445
  @unlink($sql_file);
includes/class-wpvivid-backuplist.php CHANGED
@@ -339,21 +339,21 @@ class WPvivid_Backuplist
339
  if ($list[$backup_id]['lock'] == 1) {
340
  $backup_lock = '/admin/partials/images/locked.png';
341
  $lock_status = 'lock';
342
- $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
343
  } else {
344
  $backup_lock = '/admin/partials/images/unlocked.png';
345
  $lock_status = 'unlock';
346
- $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
347
  }
348
  } else {
349
  $backup_lock = '/admin/partials/images/unlocked.png';
350
  $lock_status = 'unlock';
351
- $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
352
  }
353
  } else {
354
  $backup_lock = '/admin/partials/images/unlocked.png';
355
  $lock_status = 'unlock';
356
- $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
357
  }
358
  return $ret;
359
  }
339
  if ($list[$backup_id]['lock'] == 1) {
340
  $backup_lock = '/admin/partials/images/locked.png';
341
  $lock_status = 'lock';
342
+ $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
343
  } else {
344
  $backup_lock = '/admin/partials/images/unlocked.png';
345
  $lock_status = 'unlock';
346
+ $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
347
  }
348
  } else {
349
  $backup_lock = '/admin/partials/images/unlocked.png';
350
  $lock_status = 'unlock';
351
+ $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
352
  }
353
  } else {
354
  $backup_lock = '/admin/partials/images/unlocked.png';
355
  $lock_status = 'unlock';
356
+ $ret['html'] = '<img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\''.$backup_id.'\', \''.$lock_status.'\');" style="vertical-align:middle; cursor:pointer;"/>';
357
  }
358
  return $ret;
359
  }
includes/class-wpvivid-crypt.php CHANGED
@@ -79,4 +79,150 @@ class WPvivid_crypt
79
  $this->rsa->loadKey($this->public_key);
80
  return $this->rsa->encrypt($info);
81
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  }
79
  $this->rsa->loadKey($this->public_key);
80
  return $this->rsa->encrypt($info);
81
  }
82
+ }
83
+
84
+ class WPvivid_Crypt_File
85
+ {
86
+ private $key;
87
+ private $rij;
88
+
89
+ public function __construct($key)
90
+ {
91
+ include_once WPVIVID_PLUGIN_DIR . '/vendor/autoload.php';
92
+ $this->rij= new Crypt_Rijndael();
93
+ $this->key=$key;
94
+ }
95
+
96
+ public function encrypt($file)
97
+ {
98
+ $encrypted_path = dirname($file).'/encrypt_'.basename($file).'.tmp';
99
+
100
+ $data_encrypted = 0;
101
+ $buffer_size = 2097152;
102
+
103
+ $file_size = filesize($file);
104
+
105
+ $this->rij->setKey($this->key);
106
+ $this->rij->disablePadding();
107
+ $this->rij->enableContinuousBuffer();
108
+
109
+ if (file_exists($encrypted_path))
110
+ {
111
+ @unlink($encrypted_path);
112
+ }
113
+ $encrypted_handle = fopen($encrypted_path, 'wb+');
114
+
115
+ $file_handle = fopen($file, 'rb');
116
+
117
+ if($file_handle===false)
118
+ {
119
+ $ret['result']='failed';
120
+ $ret['error']=$file.' file not found';
121
+ return $ret;
122
+ }
123
+
124
+ while ($data_encrypted < $file_size)
125
+ {
126
+ $file_part = fread($file_handle, $buffer_size);
127
+
128
+ $length = strlen($file_part);
129
+ if (0 != $length % 16)
130
+ {
131
+ $pad = 16 - ($length % 16);
132
+ $file_part = str_pad($file_part, $length + $pad, chr($pad));
133
+ }
134
+
135
+ $encrypted_data = $this->rij->encrypt($file_part);
136
+
137
+ fwrite($encrypted_handle, $encrypted_data);
138
+
139
+ $data_encrypted += $buffer_size;
140
+ }
141
+
142
+ fclose($encrypted_handle);
143
+ fclose($file_handle);
144
+
145
+ $result_path = $file.'.crypt';
146
+
147
+ @rename($encrypted_path, $result_path);
148
+
149
+ $ret['result']='success';
150
+ $ret['file_path']=$result_path;
151
+ return $ret;
152
+ }
153
+
154
+ public function decrypt($file)
155
+ {
156
+ $file_handle = fopen($file, 'rb');
157
+
158
+ if($file_handle===false)
159
+ {
160
+ $ret['result']='failed';
161
+ $ret['error']=$file.' file not found';
162
+ return $ret;
163
+ }
164
+
165
+ $decrypted_path = dirname($file).'/decrypt_'.basename($file).'.tmp';
166
+
167
+ $decrypted_handle = fopen($decrypted_path, 'wb+');
168
+
169
+ $this->rij->setKey($this->key);
170
+ $this->rij->disablePadding();
171
+ $this->rij->enableContinuousBuffer();
172
+
173
+ $file_size = filesize($file);
174
+ $bytes_decrypted = 0;
175
+ $buffer_size =2097152;
176
+
177
+ while ($bytes_decrypted < $file_size)
178
+ {
179
+ $file_part = fread($file_handle, $buffer_size);
180
+
181
+ $length = strlen($file_part);
182
+ if (0 != $length % 16) {
183
+ $pad = 16 - ($length % 16);
184
+ $file_part = str_pad($file_part, $length + $pad, chr($pad));
185
+ }
186
+
187
+ $decrypted_data = $this->rij->decrypt($file_part);
188
+
189
+ $is_last_block = ($bytes_decrypted + strlen($decrypted_data) >= $file_size);
190
+
191
+ $write_bytes = min($file_size - $bytes_decrypted, strlen($decrypted_data));
192
+ if ($is_last_block)
193
+ {
194
+ $is_padding = false;
195
+ $last_byte = ord(substr($decrypted_data, -1, 1));
196
+ if ($last_byte < 16)
197
+ {
198
+ $is_padding = true;
199
+ for ($j = 1; $j<=$last_byte; $j++)
200
+ {
201
+ if (substr($decrypted_data, -$j, 1) != chr($last_byte))
202
+ $is_padding = false;
203
+ }
204
+ }
205
+ if ($is_padding)
206
+ {
207
+ $write_bytes -= $last_byte;
208
+ }
209
+ }
210
+
211
+ fwrite($decrypted_handle, $decrypted_data, $write_bytes);
212
+ $bytes_decrypted += $buffer_size;
213
+ }
214
+
215
+ // close the main file handle
216
+ fclose($decrypted_handle);
217
+ // close original file
218
+ fclose($file_handle);
219
+
220
+ $fullpath_new = preg_replace('/\.crypt$/', '', $file, 1).'.decrypted.zip';
221
+
222
+ @rename($decrypted_path, $fullpath_new);
223
+ $ret['result']='success';
224
+ $ret['file_path']=$fullpath_new;
225
+
226
+ return $ret;
227
+ }
228
  }
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', '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';
@@ -75,7 +75,7 @@ class WPvivid_Export_Import
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';
81
  $submenu['index']=3;
@@ -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
- echo __('WPvivid Backup Plugin', 'wpvivid');
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"><?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>
@@ -132,30 +132,30 @@ class WPvivid_Export_Import
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;">
141
- <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Choose post type', 'wpvivid'); ?></h2></div>
142
  </div>
143
  <div style="clear: both;"></div>
144
 
145
  <div class="postbox wpvivid-element-space-bottom">
146
  <div class="wpvivid-export-type-provider wpvivid-export-type-post wpvivid-export-type-provider-active" onclick="wpvivid_select_export_type('post');">
147
- <?php _e('Post', 'wpvivid'); ?>
148
  </div>
149
  <div class="wpvivid-export-type-provider wpvivid-export-type-page" onclick="wpvivid_select_export_type('page');">
150
- <?php _e('Page', 'wpvivid'); ?>
151
  </div>
152
  <div class="wpvivid-export-type-provider">
153
- <?php _e('More post types coming soon...', 'wpvivid'); ?>
154
  </div>
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,7 +178,7 @@ class WPvivid_Export_Import
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
  }
@@ -621,7 +621,7 @@ class WPvivid_Export_Import
621
  ob_start();
622
  ?>
623
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
624
- <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Choose what to export', 'wpvivid'); ?></h2></div>
625
  </div>
626
  <div style="clear: both;"></div>
627
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
@@ -629,7 +629,7 @@ class WPvivid_Export_Import
629
  <legend class="screen-reader-text"><span>input type="radio"</span></legend>
630
  <div class="wpvivid-element-space-bottom wpvivid-element-space-right" style="float: left;">
631
  <label>
632
- <input type="radio" option="export" name="contain" value="list" checked/><?php _e('Filter Posts/Pages', 'wpvivid'); ?>
633
  </label>
634
  </div>
635
  <div style="clear: both;"></div>
@@ -648,7 +648,7 @@ class WPvivid_Export_Import
648
  wp_dropdown_categories(
649
  array(
650
  'class' => 'regular-text',
651
- 'show_option_all' => __('All Categories', 'wpvivid')
652
  )
653
  );
654
  ?>
@@ -658,7 +658,7 @@ class WPvivid_Export_Import
658
  <div class="wpvivid-storage-form-desc">
659
  <i>
660
  <?php
661
- echo sprintf(__('Export %s of all categories or a specific category.', 'wpvivid'), $descript_type);
662
  ?>
663
  </i>
664
  </div>
@@ -678,7 +678,7 @@ class WPvivid_Export_Import
678
  'include' => $authors,
679
  'name' => 'post_author',
680
  'multi' => true,
681
- 'show_option_all' => __( 'All Authors', 'wpvivid' ),
682
  'show' => 'display_name_with_login',
683
  )
684
  );
@@ -689,7 +689,7 @@ class WPvivid_Export_Import
689
  <div class="wpvivid-storage-form-desc">
690
  <i>
691
  <?php
692
- echo sprintf(__('Export %s of all authors or a specific author.', 'wpvivid'), $descript_type);
693
  ?>
694
  </i>
695
  </div>
@@ -701,7 +701,7 @@ class WPvivid_Export_Import
701
  <div class="wpvivid-storage-form regular-text">
702
  <label for="post-start-date" class="label-responsive" style="display: block;"></label>
703
  <select class="regular-text" name="post_start_date" id="post-start-date">
704
- <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid' ); ?></option>
705
  <?php $this->export_date_options($post_type); ?>
706
  </select>
707
  </div>
@@ -710,7 +710,7 @@ class WPvivid_Export_Import
710
  <div class="wpvivid-storage-form-desc">
711
  <i>
712
  <?php
713
- echo sprintf(__('Export %s published after this date.', 'wpvivid'), $descript_type);
714
  ?>
715
  </i>
716
  </div>
@@ -722,7 +722,7 @@ class WPvivid_Export_Import
722
  <div class="wpvivid-storage-form regular-text">
723
  <label for="post-end-date" class="label-responsive" style="display: block;"></label>
724
  <select class="regular-text" name="post_end_date" id="post-end-date">
725
- <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid' ); ?></option>
726
  <?php $this->export_date_options($post_type); ?>
727
  </select>
728
  </div>
@@ -731,7 +731,7 @@ class WPvivid_Export_Import
731
  <div class="wpvivid-storage-form-desc">
732
  <i>
733
  <?php
734
- echo sprintf(__('Export %s published before this date.', 'wpvivid'), $descript_type);
735
  ?>
736
  </i>
737
  </div>
@@ -774,7 +774,7 @@ class WPvivid_Export_Import
774
  <div class="wpvivid-storage-form-desc">
775
  <i>
776
  <?php
777
- echo sprintf(__('Search for %s according to the above rules.', 'wpvivid'), $post_type);
778
  ?>
779
  </i>
780
  </div>
@@ -787,29 +787,29 @@ class WPvivid_Export_Import
787
  </div>
788
 
789
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
790
- <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Comment the export (optional)', 'wpvivid'); ?></h2></div>
791
  </div>
792
  <div style="clear: both;"></div>
793
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
794
  <div>
795
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;"><?php _e('Comment the export: ', 'wpvivid'); ?></div>
796
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
797
  <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,'')" />
798
  </div>
799
- <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>
800
  <div style="clear: both;"></div>
801
  </div>
802
  <div>
803
- <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;"><?php _e('Sample:', 'wpvivid'); ?></div>
804
  <div class="wpvivid-element-space-bottom" style="float: left;">
805
- <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>
806
  </div>
807
  <div style="clear: both;"></div>
808
  </div>
809
  </div>
810
 
811
  <div>
812
- <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;">
813
  </div>
814
  <?php
815
 
@@ -1114,14 +1114,14 @@ class WPvivid_Export_Import
1114
  if(empty($posts_ids))
1115
  {
1116
  $ret['result']='failed';
1117
- $ret['error']=__('Empty post id', 'wpvivid');
1118
  echo json_encode($ret);
1119
  die();
1120
  }
1121
  if(WPvivid_Exporter_taskmanager::is_tasks_running())
1122
  {
1123
  $ret['result']='failed';
1124
- $ret['error']=__('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
1125
  echo json_encode($ret);
1126
  die();
1127
  }
@@ -1147,7 +1147,7 @@ class WPvivid_Export_Import
1147
  if (!isset($_POST['task_id']) || empty($_POST['task_id']) || !is_string($_POST['task_id']))
1148
  {
1149
  $ret['result'] = 'failed';
1150
- $ret['error'] = __('Error occurred while parsing the request data. Please try to run export task again.', 'wpvivid');
1151
  echo json_encode($ret);
1152
  die();
1153
  }
@@ -1157,7 +1157,7 @@ class WPvivid_Export_Import
1157
  if(WPvivid_Exporter_taskmanager::is_tasks_running())
1158
  {
1159
  $ret['result'] = 'failed';
1160
- $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
1161
  echo json_encode($ret);
1162
  die();
1163
  }
@@ -1302,11 +1302,11 @@ class WPvivid_Export_Import
1302
  $ret['doing']=$task['data']['doing']='export';
1303
  if($status['str']=='ready')
1304
  {
1305
- $ret['doing']=__('Ready to export. Progress: 0%, running time: 0second.','wpvivid');
1306
  }
1307
  else if($status['str']=='running')
1308
  {
1309
- $ret['doing']= ' '.__('Progress: ', 'wpvivid') . $progress['descript'] . ', '.__('running time: ', 'wpvivid') . $progress['running_time'];
1310
  }
1311
  else if($status['str']=='wait_resume')
1312
  {
@@ -1314,7 +1314,7 @@ class WPvivid_Export_Import
1314
  }
1315
  else if($status['str']=='no_responds')
1316
  {
1317
- $ret['doing']=__('The export task is not responding.','wpvivid');
1318
  }
1319
  else if($status['str']=='completed')
1320
  {
@@ -1339,7 +1339,7 @@ class WPvivid_Export_Import
1339
  else if($status['str']=='error')
1340
  {
1341
  $ret['doing']='Export error: '.$task['status']['error'];
1342
- $ret['doing']='<div class="notice notice-error is-dismissible inline"><p>'.__('Export error:', 'wpvivid').' '.$task['status']['error'].'</p></div>';
1343
  $ret['error']=true;
1344
  }
1345
 
@@ -1373,7 +1373,7 @@ class WPvivid_Export_Import
1373
  if($time_spend>=$limit)
1374
  {
1375
  //time out
1376
- $message=__('Task time out.', 'wpvivid');
1377
  WPvivid_Exporter_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1378
  if($wpvivid_plugin->wpvivid_log)
1379
  $wpvivid_plugin->wpvivid_log->WriteLog($message,'error');
@@ -1480,13 +1480,13 @@ class WPvivid_Export_Import
1480
  }
1481
  else{
1482
  $admin_url = admin_url();
1483
- echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File size not match. please retry again.', 'wpvivid').'</a>';
1484
  die();
1485
  }
1486
  }
1487
 
1488
  $admin_url = admin_url();
1489
- echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File not found. please retry again.', 'wpvivid').'</a>';
1490
  die();
1491
  }
1492
  }
@@ -1511,13 +1511,13 @@ class WPvivid_Export_Import
1511
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
1512
  </div>
1513
  <div style="box-sizing: border-box;">
1514
- <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><?php _e('Import posts or pages with images in bulk.', 'wpvivid'); ?>
1515
  <span class="wpvivid-feature-pro">
1516
- <a href="https://wpvivid.com/import-content" target="_blank" style="text-decoration: none;"><?php _e('Learn more', 'wpvivid'); ?></a>
1517
  </span>
1518
  </div>
1519
- <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><strong><?php _e('Note:', 'wpvivid'); ?></strong>
1520
- <?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'); ?>
1521
  </div>
1522
  <div style="clear: both;"></div>
1523
  </div>
@@ -1526,41 +1526,41 @@ class WPvivid_Export_Import
1526
  <div style="clear: both;"></div>
1527
 
1528
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
1529
- <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>
1530
- <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>
1531
  <div style="clear: both;"></div>
1532
  </div>
1533
 
1534
  <div id="wpvivid_import_step1">
1535
- <p><?php _e('Choose an export from your computer to import: ', 'wpvivid'); ?></p>
1536
- <input class="button button-primary" type="button" id="wpvivid_select_import_file_button" value="<?php esc_attr_e('Upload and Import', 'wpvivid'); ?>" />
1537
  <div id="wpvivid_upload_file_list" class="hide-if-no-js" style="margin-top: 10px; display: none;"></div>
1538
  <br>
1539
- <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>
1540
- <input class="button button-primary" type="button" value="<?php esc_attr_e('Scan Uploaded Exports', 'wpvivid'); ?>" onclick="wpvivid_refresh_import_list();" />
1541
  <div class="wpvivid-export-import-block" id="wpvivid_import_list" style="margin-top: 10px; display: none;"></div>
1542
  </div>
1543
  <div id="wpvivid_import_step2" style="display: none;">
1544
- <h3><?php _e('The importing file info', 'wpvivid'); ?></h3>
1545
  <div id="wpvivid_import_file_data">
1546
  </div>
1547
- <h3><?php _e('Assign author', 'wpvivid'); ?></h3>
1548
  <div>
1549
- <?php _e('Select an existing author:', 'wpvivid'); ?>
1550
- <?php wp_dropdown_users( array( 'name' => "user_map", 'multi' => true, 'show_option_all' => __( '- Select -', 'wpvivid' ) ) );?>
1551
  </div>
1552
- <h3><?php _e('Import Setting', 'wpvivid'); ?></h3>
1553
  <div style="margin-bottom: 10px;">
1554
  <label>
1555
  <input type="checkbox" id="wpvivid_overwrite_existing" />
1556
- <span><strong><?php _e('Overwrite existing pages', 'wpvivid'); ?></strong></span>
1557
  </label>
1558
  </div>
1559
  <div style="margin-bottom: 10px;">
1560
- <span><?php _e('With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import.', 'wpvivid'); ?></span>
1561
  </div>
1562
- <input class="button button-primary" type="button" id="wpvivid_start_import" value="<?php esc_attr_e('Start to Import', 'wpvivid'); ?>" />
1563
- <input class="button button-primary" type="button" id="wpvivid_rechoose_import_file" value="<?php esc_attr_e('Back to Import Page', 'wpvivid'); ?>" />
1564
  </div>
1565
  <div id="wpvivid_import_step3" style="display: none;">
1566
  <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-backuprestore');
66
  $menu['tab']= 'admin.php?page=wpvivid-export-import';
67
  $menu['href']=$admin_url . 'admin.php?page=wpvivid-export-import';
68
  $menu['capability']='administrator';
75
  {
76
  $submenu['parent_slug']=WPVIVID_PLUGIN_SLUG;
77
  $submenu['page_title']= 'WPvivid Backup';
78
+ $submenu['menu_title']=__('Export & Import', 'wpvivid-backuprestore');
79
  $submenu['capability']='administrator';
80
  $submenu['menu_slug']='wpvivid-export-import';
81
  $submenu['index']=3;
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-backuprestore');
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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?></div>
125
+ <div class="wpvivid-text-space-bottom"><strong><?php _e('Note:', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?></div>
126
  <div style="clear: both;"></div>
127
  </div>
128
  <div style="clear: both;"></div>
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-backuprestore'), $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;">
141
+ <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Choose post type', 'wpvivid-backuprestore'); ?></h2></div>
142
  </div>
143
  <div style="clear: both;"></div>
144
 
145
  <div class="postbox wpvivid-element-space-bottom">
146
  <div class="wpvivid-export-type-provider wpvivid-export-type-post wpvivid-export-type-provider-active" onclick="wpvivid_select_export_type('post');">
147
+ <?php _e('Post', 'wpvivid-backuprestore'); ?>
148
  </div>
149
  <div class="wpvivid-export-type-provider wpvivid-export-type-page" onclick="wpvivid_select_export_type('page');">
150
+ <?php _e('Page', 'wpvivid-backuprestore'); ?>
151
  </div>
152
  <div class="wpvivid-export-type-provider">
153
+ <?php _e('More post types coming soon...', 'wpvivid-backuprestore'); ?>
154
  </div>
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-backuprestore'); ?>" />
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-backuprestore'); ?>" />';
182
  jQuery('#wpvivid_export_page').html(button_html);
183
  jQuery('#wpvivid_export_summary').hide();
184
  }
621
  ob_start();
622
  ?>
623
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
624
+ <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Choose what to export', 'wpvivid-backuprestore'); ?></h2></div>
625
  </div>
626
  <div style="clear: both;"></div>
627
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
629
  <legend class="screen-reader-text"><span>input type="radio"</span></legend>
630
  <div class="wpvivid-element-space-bottom wpvivid-element-space-right" style="float: left;">
631
  <label>
632
+ <input type="radio" option="export" name="contain" value="list" checked/><?php _e('Filter Posts/Pages', 'wpvivid-backuprestore'); ?>
633
  </label>
634
  </div>
635
  <div style="clear: both;"></div>
648
  wp_dropdown_categories(
649
  array(
650
  'class' => 'regular-text',
651
+ 'show_option_all' => __('All Categories', 'wpvivid-backuprestore')
652
  )
653
  );
654
  ?>
658
  <div class="wpvivid-storage-form-desc">
659
  <i>
660
  <?php
661
+ echo sprintf(__('Export %s of all categories or a specific category.', 'wpvivid-backuprestore'), $descript_type);
662
  ?>
663
  </i>
664
  </div>
678
  'include' => $authors,
679
  'name' => 'post_author',
680
  'multi' => true,
681
+ 'show_option_all' => __( 'All Authors', 'wpvivid-backuprestore' ),
682
  'show' => 'display_name_with_login',
683
  )
684
  );
689
  <div class="wpvivid-storage-form-desc">
690
  <i>
691
  <?php
692
+ echo sprintf(__('Export %s of all authors or a specific author.', 'wpvivid-backuprestore'), $descript_type);
693
  ?>
694
  </i>
695
  </div>
701
  <div class="wpvivid-storage-form regular-text">
702
  <label for="post-start-date" class="label-responsive" style="display: block;"></label>
703
  <select class="regular-text" name="post_start_date" id="post-start-date">
704
+ <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid-backuprestore' ); ?></option>
705
  <?php $this->export_date_options($post_type); ?>
706
  </select>
707
  </div>
710
  <div class="wpvivid-storage-form-desc">
711
  <i>
712
  <?php
713
+ echo sprintf(__('Export %s published after this date.', 'wpvivid-backuprestore'), $descript_type);
714
  ?>
715
  </i>
716
  </div>
722
  <div class="wpvivid-storage-form regular-text">
723
  <label for="post-end-date" class="label-responsive" style="display: block;"></label>
724
  <select class="regular-text" name="post_end_date" id="post-end-date">
725
+ <option value="0"><?php _e( '&mdash; Select &mdash;', 'wpvivid-backuprestore' ); ?></option>
726
  <?php $this->export_date_options($post_type); ?>
727
  </select>
728
  </div>
731
  <div class="wpvivid-storage-form-desc">
732
  <i>
733
  <?php
734
+ echo sprintf(__('Export %s published before this date.', 'wpvivid-backuprestore'), $descript_type);
735
  ?>
736
  </i>
737
  </div>
774
  <div class="wpvivid-storage-form-desc">
775
  <i>
776
  <?php
777
+ echo sprintf(__('Search for %s according to the above rules.', 'wpvivid-backuprestore'), $post_type);
778
  ?>
779
  </i>
780
  </div>
787
  </div>
788
 
789
  <div style="width:100%; border:1px solid #f1f1f1; float:left; box-sizing: border-box;margin-bottom:10px;">
790
+ <div style="box-sizing: border-box; margin: 1px; background-color: #f1f1f1;"><h2><?php _e('Comment the export (optional)', 'wpvivid-backuprestore'); ?></h2></div>
791
  </div>
792
  <div style="clear: both;"></div>
793
  <div style="width:100%; border:1px solid #f1f1f1; float:left; padding:10px 10px 0 10px;margin-bottom:10px; box-sizing: border-box;">
794
  <div>
795
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left; padding-top: 6px;"><?php _e('Comment the export: ', 'wpvivid-backuprestore'); ?></div>
796
  <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;">
797
  <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,'')" />
798
  </div>
799
+ <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-backuprestore'); ?></div>
800
  <div style="clear: both;"></div>
801
  </div>
802
  <div>
803
+ <div class="wpvivid-element-space-bottom wpvivid-text-space-right" style="float: left;"><?php _e('Sample:', 'wpvivid-backuprestore'); ?></div>
804
  <div class="wpvivid-element-space-bottom" style="float: left;">
805
+ <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-backuprestore'); ?>.zip</div>
806
  </div>
807
  <div style="clear: both;"></div>
808
  </div>
809
  </div>
810
 
811
  <div>
812
+ <input class="button-primary" id="wpvivid_start_export" type="submit" name="<?php echo $post_type; ?>" value="<?php esc_attr_e('Export and Download', 'wpvivid-backuprestore'); ?>" style="pointer-events: none; opacity: 0.4;">
813
  </div>
814
  <?php
815
 
1114
  if(empty($posts_ids))
1115
  {
1116
  $ret['result']='failed';
1117
+ $ret['error']=__('Empty post id', 'wpvivid-backuprestore');
1118
  echo json_encode($ret);
1119
  die();
1120
  }
1121
  if(WPvivid_Exporter_taskmanager::is_tasks_running())
1122
  {
1123
  $ret['result']='failed';
1124
+ $ret['error']=__('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
1125
  echo json_encode($ret);
1126
  die();
1127
  }
1147
  if (!isset($_POST['task_id']) || empty($_POST['task_id']) || !is_string($_POST['task_id']))
1148
  {
1149
  $ret['result'] = 'failed';
1150
+ $ret['error'] = __('Error occurred while parsing the request data. Please try to run export task again.', 'wpvivid-backuprestore');
1151
  echo json_encode($ret);
1152
  die();
1153
  }
1157
  if(WPvivid_Exporter_taskmanager::is_tasks_running())
1158
  {
1159
  $ret['result'] = 'failed';
1160
+ $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
1161
  echo json_encode($ret);
1162
  die();
1163
  }
1302
  $ret['doing']=$task['data']['doing']='export';
1303
  if($status['str']=='ready')
1304
  {
1305
+ $ret['doing']=__('Ready to export. Progress: 0%, running time: 0second.','wpvivid-backuprestore');
1306
  }
1307
  else if($status['str']=='running')
1308
  {
1309
+ $ret['doing']= ' '.__('Progress: ', 'wpvivid-backuprestore') . $progress['descript'] . ', '.__('running time: ', 'wpvivid-backuprestore') . $progress['running_time'];
1310
  }
1311
  else if($status['str']=='wait_resume')
1312
  {
1314
  }
1315
  else if($status['str']=='no_responds')
1316
  {
1317
+ $ret['doing']=__('The export task is not responding.','wpvivid-backuprestore');
1318
  }
1319
  else if($status['str']=='completed')
1320
  {
1339
  else if($status['str']=='error')
1340
  {
1341
  $ret['doing']='Export error: '.$task['status']['error'];
1342
+ $ret['doing']='<div class="notice notice-error is-dismissible inline"><p>'.__('Export error:', 'wpvivid-backuprestore').' '.$task['status']['error'].'</p></div>';
1343
  $ret['error']=true;
1344
  }
1345
 
1373
  if($time_spend>=$limit)
1374
  {
1375
  //time out
1376
+ $message=__('Task time out.', 'wpvivid-backuprestore');
1377
  WPvivid_Exporter_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1378
  if($wpvivid_plugin->wpvivid_log)
1379
  $wpvivid_plugin->wpvivid_log->WriteLog($message,'error');
1480
  }
1481
  else{
1482
  $admin_url = admin_url();
1483
+ echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File size not match. please retry again.', 'wpvivid-backuprestore').'</a>';
1484
  die();
1485
  }
1486
  }
1487
 
1488
  $admin_url = admin_url();
1489
+ echo '<a href="'.$admin_url.'admin.php?page=wpvivid-export-import">'.__('File not found. please retry again.', 'wpvivid-backuprestore').'</a>';
1490
  die();
1491
  }
1492
  }
1511
  <img src="<?php echo esc_url(WPVIVID_PLUGIN_IMAGES_URL.'export-import.png'); ?>" style="width:50px;height:50px;">
1512
  </div>
1513
  <div style="box-sizing: border-box;">
1514
+ <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><?php _e('Import posts or pages with images in bulk.', 'wpvivid-backuprestore'); ?>
1515
  <span class="wpvivid-feature-pro">
1516
+ <a href="https://wpvivid.com/import-content" target="_blank" style="text-decoration: none;"><?php _e('Learn more', 'wpvivid-backuprestore'); ?></a>
1517
  </span>
1518
  </div>
1519
+ <div class="wpvivid-element-space-bottom wpvivid-element-space-right"><strong><?php _e('Note:', 'wpvivid-backuprestore'); ?></strong>
1520
+ <?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-backuprestore'); ?>
1521
  </div>
1522
  <div style="clear: both;"></div>
1523
  </div>
1526
  <div style="clear: both;"></div>
1527
 
1528
  <div style="background: #fff; border: 1px solid #e5e5e5; border-radius: 6px; margin-bottom: 10px; padding: 10px;">
1529
+ <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-backuprestore'), $import_dir) ?></div>
1530
+ <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-backuprestore'); ?>" onclick="wpvivid_clean_import_folder();" /></div>
1531
  <div style="clear: both;"></div>
1532
  </div>
1533
 
1534
  <div id="wpvivid_import_step1">
1535
+ <p><?php _e('Choose an export from your computer to import: ', 'wpvivid-backuprestore'); ?></p>
1536
+ <input class="button button-primary" type="button" id="wpvivid_select_import_file_button" value="<?php esc_attr_e('Upload and Import', 'wpvivid-backuprestore'); ?>" />
1537
  <div id="wpvivid_upload_file_list" class="hide-if-no-js" style="margin-top: 10px; display: none;"></div>
1538
  <br>
1539
+ <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-backuprestore'), $import_dir); ?></p>
1540
+ <input class="button button-primary" type="button" value="<?php esc_attr_e('Scan Uploaded Exports', 'wpvivid-backuprestore'); ?>" onclick="wpvivid_refresh_import_list();" />
1541
  <div class="wpvivid-export-import-block" id="wpvivid_import_list" style="margin-top: 10px; display: none;"></div>
1542
  </div>
1543
  <div id="wpvivid_import_step2" style="display: none;">
1544
+ <h3><?php _e('The importing file info', 'wpvivid-backuprestore'); ?></h3>
1545
  <div id="wpvivid_import_file_data">
1546
  </div>
1547
+ <h3><?php _e('Assign author', 'wpvivid-backuprestore'); ?></h3>
1548
  <div>
1549
+ <?php _e('Select an existing author:', 'wpvivid-backuprestore'); ?>
1550
+ <?php wp_dropdown_users( array( 'name' => "user_map", 'multi' => true, 'show_option_all' => __( '- Select -', 'wpvivid-backuprestore' ) ) );?>
1551
  </div>
1552
+ <h3><?php _e('Import Setting', 'wpvivid-backuprestore'); ?></h3>
1553
  <div style="margin-bottom: 10px;">
1554
  <label>
1555
  <input type="checkbox" id="wpvivid_overwrite_existing" />
1556
+ <span><strong><?php _e('Overwrite existing pages', 'wpvivid-backuprestore'); ?></strong></span>
1557
  </label>
1558
  </div>
1559
  <div style="margin-bottom: 10px;">
1560
+ <span><?php _e('With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import.', 'wpvivid-backuprestore'); ?></span>
1561
  </div>
1562
+ <input class="button button-primary" type="button" id="wpvivid_start_import" value="<?php esc_attr_e('Start to Import', 'wpvivid-backuprestore'); ?>" />
1563
+ <input class="button button-primary" type="button" id="wpvivid_rechoose_import_file" value="<?php esc_attr_e('Back to Import Page', 'wpvivid-backuprestore'); ?>" />
1564
  </div>
1565
  <div id="wpvivid_import_step3" style="display: none;">
1566
  <div class="postbox wpvivid-import-log" id="wpvivid_import_log" style="margin-top: 10px; margin-bottom: 0;"></div>
includes/class-wpvivid-exporter.php CHANGED
@@ -262,7 +262,7 @@ 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', 'wpvivid' );
266
  $time_diff = 0;
267
  } else {
268
  $t_time = get_the_time( 'Y/m/d g:i:s a' );
@@ -272,22 +272,22 @@ class WPvivid_Post_List extends WP_List_Table
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
  /**
@@ -807,7 +807,7 @@ class WPvivid_Exporter_taskmanager
807
  $ret['progress']=$task['data'][$ret['type']]['progress'];
808
  $ret['doing']=$task['data'][$ret['type']]['doing'];
809
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress']))
810
- $ret['descript']=__($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress'], 'wpvivid');
811
  else
812
  $ret['descript']='';
813
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['upload_data']))
262
  global $mode;
263
 
264
  if ( '0000-00-00 00:00:00' === $post->post_date ) {
265
+ $t_time = $h_time = __( 'Unpublished', 'wpvivid-backuprestore' );
266
  $time_diff = 0;
267
  } else {
268
  $t_time = get_the_time( 'Y/m/d g:i:s a' );
272
  $time_diff = time() - $time;
273
 
274
  if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) {
275
+ $h_time = sprintf( __( '%s ago', 'wpvivid-backuprestore' ), 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-backuprestore' );
283
  } elseif ( 'future' === $post->post_status ) {
284
  if ( $time_diff > 0 ) {
285
+ $status = '<strong class="error-message">' . __( 'Missed schedule', 'wpvivid-backuprestore' ) . '</strong>';
286
  } else {
287
+ $status = __( 'Scheduled', 'wpvivid-backuprestore' );
288
  }
289
  } else {
290
+ $status = __( 'Last Modified', 'wpvivid-backuprestore' );
291
  }
292
 
293
  /**
807
  $ret['progress']=$task['data'][$ret['type']]['progress'];
808
  $ret['doing']=$task['data'][$ret['type']]['doing'];
809
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress']))
810
+ $ret['descript']=__($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress'], 'wpvivid-backuprestore');
811
  else
812
  $ret['descript']='';
813
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['upload_data']))
includes/class-wpvivid-function-realize.php CHANGED
@@ -39,7 +39,7 @@ class WPvivid_Function_Realize
39
  $wpvivid_plugin->add_monitor_event($task_id, 10);
40
  }*/
41
  $ret['result'] = 'success';
42
- $ret['msg'] = __('The backup will be canceled after backing up the current chunk ends.', 'wpvivid');
43
  }
44
  catch (Exception $error) {
45
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
@@ -62,12 +62,12 @@ class WPvivid_Function_Realize
62
  $backup = WPvivid_Backuplist::get_backup_by_id($backup_id);
63
  if(!$backup) {
64
  $ret['result']='failed';
65
- $ret['error']=__('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid');
66
  return $ret;
67
  }
68
  if(!file_exists($backup['log'])) {
69
  $ret['result']='failed';
70
- $ret['error']=__('The log not found.', 'wpvivid');
71
  return $ret;
72
  }
73
  $ret['result']='success';
@@ -79,7 +79,7 @@ class WPvivid_Function_Realize
79
  if(!file_exists($log_file_name))
80
  {
81
  $information['result']='failed';
82
- $information['error']=__('The log not found.', 'wpvivid');
83
  return $information;
84
  }
85
  $ret['result']='success';
@@ -90,13 +90,13 @@ class WPvivid_Function_Realize
90
  $option=WPvivid_taskmanager::get_task_options($backup_task_id,'log_file_name');
91
  if(!$option) {
92
  $information['result']='failed';
93
- $information['error']=__('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid');
94
  return $information;
95
  }
96
  $log_file_name= $wpvivid_plugin->wpvivid_log->GetSaveLogFolder().$option.'_log.txt';
97
  if(!file_exists($log_file_name)) {
98
  $information['result']='failed';
99
- $information['error']=__('The log not found.', 'wpvivid');
100
  return $information;
101
  }
102
  $ret['result']='success';
39
  $wpvivid_plugin->add_monitor_event($task_id, 10);
40
  }*/
41
  $ret['result'] = 'success';
42
+ $ret['msg'] = __('The backup will be canceled after backing up the current chunk ends.', 'wpvivid-backuprestore');
43
  }
44
  catch (Exception $error) {
45
  $message = 'An exception has occurred. class: '.get_class($error).';msg: '.$error->getMessage().';code: '.$error->getCode().';line: '.$error->getLine().';in_file: '.$error->getFile().';';
62
  $backup = WPvivid_Backuplist::get_backup_by_id($backup_id);
63
  if(!$backup) {
64
  $ret['result']='failed';
65
+ $ret['error']=__('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid-backuprestore');
66
  return $ret;
67
  }
68
  if(!file_exists($backup['log'])) {
69
  $ret['result']='failed';
70
+ $ret['error']=__('The log not found.', 'wpvivid-backuprestore');
71
  return $ret;
72
  }
73
  $ret['result']='success';
79
  if(!file_exists($log_file_name))
80
  {
81
  $information['result']='failed';
82
+ $information['error']=__('The log not found.', 'wpvivid-backuprestore');
83
  return $information;
84
  }
85
  $ret['result']='success';
90
  $option=WPvivid_taskmanager::get_task_options($backup_task_id,'log_file_name');
91
  if(!$option) {
92
  $information['result']='failed';
93
+ $information['error']=__('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid-backuprestore');
94
  return $information;
95
  }
96
  $log_file_name= $wpvivid_plugin->wpvivid_log->GetSaveLogFolder().$option.'_log.txt';
97
  if(!file_exists($log_file_name)) {
98
  $information['result']='failed';
99
+ $information['error']=__('The log not found.', 'wpvivid-backuprestore');
100
  return $information;
101
  }
102
  $ret['result']='success';
includes/class-wpvivid-i18n.php CHANGED
@@ -37,7 +37,7 @@ class WPvivid_i18n {
37
  public function load_plugin_textdomain() {
38
 
39
  load_plugin_textdomain(
40
- 'wpvivid',
41
  false,
42
  dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
43
  );
37
  public function load_plugin_textdomain() {
38
 
39
  load_plugin_textdomain(
40
+ 'wpvivid-backuprestore',
41
  false,
42
  dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/'
43
  );
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', '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
  }
@@ -154,7 +154,7 @@ class WPvivid_Export_List extends WP_List_Table
154
  '.$item['file_name'].'
155
  </div>
156
  <div style="padding-bottom: 5px;">
157
- <div class="backuptime">Data Modified: ' . __(date('M d, Y H:i', $item['time']), 'wpvivid') . '</div>
158
  </div>
159
  </td>';
160
  }
@@ -191,7 +191,7 @@ class WPvivid_Export_List extends WP_List_Table
191
  {
192
  echo '<td style="min-width:100px;">
193
  <div class="export-list-import" style="cursor:pointer;padding:10px 0 10px 0;">
194
- <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Import', 'wpvivid') . '</span>
195
  </div>
196
  </td>';
197
  }
@@ -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, file:'.$new_file, 'wpvivid') );
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', '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,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', 'wpvivid') );
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, 'wpvivid') );
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', '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,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', 'wpvivid' ), 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', '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,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', 'wpvivid' ) );
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', 'wpvivid' ) );
2352
 
2353
  return array(
2354
  'authors' => $this->authors,
83
  {
84
  $posts_columns = array();
85
 
86
+ $posts_columns['file_name'] = __( 'File Name', 'wpvivid-backuprestore' );
87
+ $posts_columns['export_type'] = __( 'Post Types', 'wpvivid-backuprestore' );
88
+ $posts_columns['posts_count'] = __( 'Count', 'wpvivid-backuprestore' );
89
+ $posts_columns['media_size'] = __( 'Media Files Size', 'wpvivid-backuprestore' );
90
+ $posts_columns['import'] = __( 'Action', 'wpvivid-backuprestore' );
91
 
92
  return $posts_columns;
93
  }
154
  '.$item['file_name'].'
155
  </div>
156
  <div style="padding-bottom: 5px;">
157
+ <div class="backuptime">Data Modified: ' . __(date('M d, Y H:i', $item['time']), 'wpvivid-backuprestore') . '</div>
158
  </div>
159
  </td>';
160
  }
191
  {
192
  echo '<td style="min-width:100px;">
193
  <div class="export-list-import" style="cursor:pointer;padding:10px 0 10px 0;">
194
+ <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Import', 'wpvivid-backuprestore') . '</span>
195
  </div>
196
  </td>';
197
  }
1666
 
1667
  if(!file_exists($new_file))
1668
  {
1669
+ return new WP_Error( 'import_file_error', __('File not exist, file:'.$new_file, 'wpvivid-backuprestore') );
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-backuprestore' ) );
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-backuprestore') );
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-backuprestore') );
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-backuprestore' ) ;
1878
+ $msg.=__( 'Details are shown above. The importer will now try again with a different parser...', 'wpvivid-backuprestore' );
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-backuprestore' ), 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-backuprestore' ), 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-backuprestore' ) );
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-backuprestore' ) );
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-backuprestore' ) );
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-backuprestore' ) );
2352
 
2353
  return array(
2354
  'authors' => $this->authors,
includes/class-wpvivid-interface-mainwp.php CHANGED
@@ -135,7 +135,7 @@ class WPvivid_Interface_MainWP
135
  global $wpvivid_plugin;
136
  if (!isset($task_id)||empty($task_id)||!is_string($task_id))
137
  {
138
- $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid');
139
  return $ret;
140
  }
141
  $task_id=sanitize_key($task_id);
@@ -179,7 +179,7 @@ class WPvivid_Interface_MainWP
179
  $file = fopen($ret['log_file'], 'r');
180
  if (!$file) {
181
  $ret['result'] = 'failed';
182
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
183
  return $ret;
184
  }
185
  $buffer = '';
@@ -208,7 +208,7 @@ class WPvivid_Interface_MainWP
208
  if(!isset($log_file_name)||empty($log_file_name)||!is_string($log_file_name))
209
  {
210
  $ret['result']='failed';
211
- $ret['error']=__('Reading the log failed. Please try again.', 'wpvivid');
212
  return $ret;
213
  }
214
  $log_file_name=sanitize_text_field($log_file_name);
@@ -217,7 +217,7 @@ class WPvivid_Interface_MainWP
217
  $file = fopen($ret['log_file'], 'r');
218
  if (!$file) {
219
  $ret['result'] = 'failed';
220
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
221
  return $ret;
222
  }
223
  $buffer = '';
@@ -270,7 +270,7 @@ class WPvivid_Interface_MainWP
270
  $file = fopen($ret['log_file'], 'r');
271
  if (!$file) {
272
  $ret['result'] = 'failed';
273
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
274
  return $ret;
275
  }
276
  $buffer = '';
135
  global $wpvivid_plugin;
136
  if (!isset($task_id)||empty($task_id)||!is_string($task_id))
137
  {
138
+ $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid-backuprestore');
139
  return $ret;
140
  }
141
  $task_id=sanitize_key($task_id);
179
  $file = fopen($ret['log_file'], 'r');
180
  if (!$file) {
181
  $ret['result'] = 'failed';
182
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
183
  return $ret;
184
  }
185
  $buffer = '';
208
  if(!isset($log_file_name)||empty($log_file_name)||!is_string($log_file_name))
209
  {
210
  $ret['result']='failed';
211
+ $ret['error']=__('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
212
  return $ret;
213
  }
214
  $log_file_name=sanitize_text_field($log_file_name);
217
  $file = fopen($ret['log_file'], 'r');
218
  if (!$file) {
219
  $ret['result'] = 'failed';
220
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
221
  return $ret;
222
  }
223
  $buffer = '';
270
  $file = fopen($ret['log_file'], 'r');
271
  if (!$file) {
272
  $ret['result'] = 'failed';
273
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
274
  return $ret;
275
  }
276
  $buffer = '';
includes/class-wpvivid-mail-report.php CHANGED
@@ -554,7 +554,7 @@ class WPvivid_mail_report
554
  if(wp_mail( $send_to, $subject, $body,$headers,$attachments)===false)
555
  {
556
  $ret['result']='failed';
557
- $ret['error']=__('Unable to send email. Please check the configuration of email server.', 'wpvivid');
558
  }
559
  else
560
  {
554
  if(wp_mail( $send_to, $subject, $body,$headers,$attachments)===false)
555
  {
556
  $ret['result']='failed';
557
+ $ret['error']=__('Unable to send email. Please check the configuration of email server.', 'wpvivid-backuprestore');
558
  }
559
  else
560
  {
includes/class-wpvivid-migrate.php CHANGED
@@ -46,13 +46,13 @@ class WPvivid_Migrate
46
  public function wpvivid_add_tab_migrate()
47
  {
48
  ?>
49
- <a href="#" id="wpvivid_tab_migrate" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'migrate-page')"><?php _e('Auto-Migration', 'wpvivid'); ?></a>
50
  <?php
51
  }
52
 
53
  public function wpvivid_add_tab_key(){
54
  ?>
55
- <a href="#" id="wpvivid_tab_key" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'key-page')"><?php _e('Key', 'wpvivid'); ?></a>
56
  <?php
57
  }
58
 
@@ -218,6 +218,7 @@ class WPvivid_Migrate
218
  jQuery('#wpvivid_upload_backup_percent').html(value.progress_html);
219
  jQuery('#wpvivid_upload_backup_percent').hide();
220
  migrate_task_need_update = true;
 
221
  }
222
  else if (value.status.str === 'error') {
223
  wpvivid_control_transfer_unlock();
@@ -356,7 +357,7 @@ class WPvivid_Migrate
356
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing"></p></div>
357
  <div style="clear: both;"></div>
358
  <div>
359
- <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="<?php esc_attr_e( 'Cancel', 'wpvivid' ); ?>" /></div>
360
  </div>
361
  </div>
362
 
@@ -387,18 +388,18 @@ 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><?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;">
394
  <option value="2 hour">2 hours</option>
395
  <option selected="selected" value="8 hour">8 hours</option>
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>
403
  <div id="wpvivid_test_generate_url" style="padding-top: 10px;">
404
  <textarea id="wpvivid_test_remote_site_url_text" style="width: 100%; height: 140px;"></textarea>
@@ -664,7 +665,7 @@ class WPvivid_Migrate
664
 
665
  if (WPvivid_taskmanager::is_tasks_backup_running()) {
666
  $ret['result'] = 'failed';
667
- $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
668
  echo json_encode($ret);
669
  die();
670
  }
@@ -709,7 +710,7 @@ class WPvivid_Migrate
709
  if (!isset($_POST['task_id'])||empty($_POST['task_id'])||!is_string($_POST['task_id']))
710
  {
711
  $ret['result']='failed';
712
- $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid');
713
  echo json_encode($ret);
714
  die();
715
  }
@@ -847,10 +848,10 @@ 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?', '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>';
854
  }
855
  else{
856
  foreach ($options as $key => $value)
@@ -871,7 +872,7 @@ class WPvivid_Migrate
871
  $html .= '<div style="padding: 0 0 10px 0;">
872
  <span>Key:</span>
873
  <input type="text" id="wpvivid_send_remote_site_url_text" value="'.$token.'" readonly="readonly" />
874
- <input class="button-primary" id="wpvivid_delete_key_button" type="submit" value="'.esc_attr( 'Delete', 'wpvivid' ).'" onclick="wpvivid_click_delete_transfer_key();" />
875
  </div>
876
  <div class="wpvivid-element-space-bottom">'.$key_status.'</div>
877
  <div>The connection is ok. Now you can transfer the site <strong>'.$source_dir.'</strong> to the site <strong>'.$target_dir.'</strong></div>';
@@ -966,9 +967,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.', '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>" +
@@ -982,7 +983,7 @@ class WPvivid_Migrate
982
 
983
  public function wpvivid_migrate_descript($html){
984
  $html .= '<div style="padding: 0 0 10px 0;">
985
- '.__('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.', 'wpvivid').'
986
  </div>';
987
  return $html;
988
  }
@@ -992,7 +993,7 @@ class WPvivid_Migrate
992
  $type_name = 'transfer_type';
993
  $html = '<div class="postbox quicktransfer">
994
  <div class="wpvivid-element-space-bottom">
995
- <h2 style="padding: 0;"><span>'.__( 'Choose the content you want to transfer', 'wpvivid').'</span></h2>
996
  </div>
997
  <div class="quickstart-archive-block">
998
  <fieldset>
@@ -1007,7 +1008,7 @@ class WPvivid_Migrate
1007
  public function wpvivid_migrate_part_exec($html){
1008
  $html = '';
1009
  $html .= '<div id="wpvivid_transfer_btn" style="float: left;">
1010
- <input class="button-primary quicktransfer-btn" type="submit" value="'.esc_attr( 'Clone then Transfer', 'wpvivid').'" onclick="wpvivid_click_send_backup();" />
1011
  </div>
1012
  <script>
1013
  function wpvivid_click_send_backup()
@@ -1087,44 +1088,44 @@ class WPvivid_Migrate
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
 
1108
  public function wpvivid_add_migrate_type($html, $name_type){
1109
  $html .= '<label>
1110
  <input type="radio" option="migrate" name="'.$name_type.'" value="files+db" checked />
1111
- <span>'.__( 'Database + Files (WordPress Files)', 'wpvivid' ).'</span>
1112
  </label><br>
1113
  <label>
1114
  <input type="radio" option="migrate" name="'.$name_type.'" value="files" />
1115
- <span>'.__( 'WordPress Files (Exclude Database)', 'wpvivid' ).'</span>
1116
  </label><br>
1117
  <label>
1118
  <input type="radio" option="migrate" name="'.$name_type.'" value="db" />
1119
- <span>'.__( 'Only Database', 'wpvivid' ).'</span>
1120
  </label><br>
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;
@@ -1159,22 +1160,22 @@ class WPvivid_Migrate
1159
  <div class="action-progress-bar-percent" id="wpvivid_upload_progress_bar_percent" style="height:24px;width:' . $list_tasks[$task['id']]['task_info']['backup_percent'] . '"></div>
1160
  </div>
1161
  <div id="wpvivid_estimate_backup_info" style="float:left;">
1162
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Database Size:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['db_size'] . '</span></div>
1163
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('File Size:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['file_size'] . '</span></div>
1164
  </div>
1165
  <div id="wpvivid_estimate_upload_info" style="float: left;">
1166
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Total Size:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['total'] . '</span></div>
1167
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Uploaded:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['upload'] . '</span></div>
1168
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Speed:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['speed'] . '</span></div>
1169
  </div>
1170
  <div style="float: left;">
1171
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Network Connection:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['network_connection'] . '</span></div>
1172
  </div>
1173
  <div style="clear:both;"></div>
1174
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
1175
  <div style="clear: both;"></div>
1176
  <div>
1177
- <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="'.esc_attr( 'Cancel', 'wpvivid' ).'" /></div>
1178
  </div>';
1179
  }
1180
  }
@@ -1182,7 +1183,7 @@ 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.', '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>
@@ -1242,7 +1243,7 @@ class WPvivid_Migrate
1242
 
1243
  function wpvivid_add_tab_upload(){
1244
  ?>
1245
- <a href="#" id="wpvivid_tab_upload" class="nav-tab backup-nav-tab" onclick="switchrestoreTabs(event,'page-upload')"><?php _e('Upload', 'wpvivid'); ?></a>
1246
  <?php
1247
  }
1248
 
@@ -1252,10 +1253,10 @@ class WPvivid_Migrate
1252
  <div class="backup-tab-content wpvivid_tab_upload" id="page-upload" style="display:none;">
1253
  <div style="padding: 10px 0 10px 0;">
1254
  <div style="padding-bottom: 10px;">
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();
46
  public function wpvivid_add_tab_migrate()
47
  {
48
  ?>
49
+ <a href="#" id="wpvivid_tab_migrate" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'migrate-page')"><?php _e('Auto-Migration', 'wpvivid-backuprestore'); ?></a>
50
  <?php
51
  }
52
 
53
  public function wpvivid_add_tab_key(){
54
  ?>
55
+ <a href="#" id="wpvivid_tab_key" class="nav-tab wrap-nav-tab" onclick="switchTabs(event,'key-page')"><?php _e('Key', 'wpvivid-backuprestore'); ?></a>
56
  <?php
57
  }
58
 
218
  jQuery('#wpvivid_upload_backup_percent').html(value.progress_html);
219
  jQuery('#wpvivid_upload_backup_percent').hide();
220
  migrate_task_need_update = true;
221
+ alert('Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup.');
222
  }
223
  else if (value.status.str === 'error') {
224
  wpvivid_control_transfer_unlock();
357
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing"></p></div>
358
  <div style="clear: both;"></div>
359
  <div>
360
+ <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="<?php esc_attr_e( 'Cancel', 'wpvivid-backuprestore' ); ?>" /></div>
361
  </div>
362
  </div>
363
 
388
  <div id="key-page" class="wrap-tab-content wpvivid_tab_key" name="tab-key" style="display: none;">
389
  <div style="padding: 0 0 0 10px">
390
  <div style="padding: 0 0 10px 0">
391
+ <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-backuprestore'); ?></span>
392
  </div>
393
+ <strong><?php _e('The key will expire in ', 'wpvivid-backuprestore'); ?></strong>
394
  <select id="wpvivid_generate_url_expires" style="margin-bottom: 2px;">
395
  <option value="2 hour">2 hours</option>
396
  <option selected="selected" value="8 hour">8 hours</option>
397
  <option value="24 hour">24 hours</option>
398
  <!--<option value="Never">Never</option>-->
399
  </select>
400
+ <p><?php _e('Tips: For security reason, please choose an appropriate expiration time for the key.', 'wpvivid-backuprestore'); ?></p>
401
  <div>
402
+ <input class="button-primary" id="wpvivid_generate_url" type="submit" value="<?php esc_attr_e( 'Generate', 'wpvivid-backuprestore' ); ?>" onclick="wpvivid_click_generate_url();" />
403
  </div>
404
  <div id="wpvivid_test_generate_url" style="padding-top: 10px;">
405
  <textarea id="wpvivid_test_remote_site_url_text" style="width: 100%; height: 140px;"></textarea>
665
 
666
  if (WPvivid_taskmanager::is_tasks_backup_running()) {
667
  $ret['result'] = 'failed';
668
+ $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
669
  echo json_encode($ret);
670
  die();
671
  }
710
  if (!isset($_POST['task_id'])||empty($_POST['task_id'])||!is_string($_POST['task_id']))
711
  {
712
  $ret['result']='failed';
713
+ $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid-backuprestore');
714
  echo json_encode($ret);
715
  die();
716
  }
848
  $html='<div id="wpvivid_transfer_key">';
849
  $options=WPvivid_Setting::get_option('wpvivid_saved_api_token');
850
  if(empty($options)){
851
+ $html .= '<div style="padding: 0 0 10px 0;"><strong>'.__('Please paste the key below.', 'wpvivid-backuprestore').'</strong><a href="#" style="margin-left: 5px; text-decoration: none;" onclick="wpvivid_click_how_to_get_key();">'.__('How to get a site key?', 'wpvivid-backuprestore').'</a></div>
852
  <div id="wpvivid_how_to_get_key"></div>
853
  <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>
854
+ <div><input class="button-primary" id="wpvivid_save_url_button" type="submit" value="'.esc_attr( 'Save', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_save_site_url();" /></div>';
855
  }
856
  else{
857
  foreach ($options as $key => $value)
872
  $html .= '<div style="padding: 0 0 10px 0;">
873
  <span>Key:</span>
874
  <input type="text" id="wpvivid_send_remote_site_url_text" value="'.$token.'" readonly="readonly" />
875
+ <input class="button-primary" id="wpvivid_delete_key_button" type="submit" value="'.esc_attr( 'Delete', 'wpvivid-backuprestore' ).'" onclick="wpvivid_click_delete_transfer_key();" />
876
  </div>
877
  <div class="wpvivid-element-space-bottom">'.$key_status.'</div>
878
  <div>The connection is ok. Now you can transfer the site <strong>'.$source_dir.'</strong> to the site <strong>'.$target_dir.'</strong></div>';
967
  if(!wpvivid_display_get_key) {
968
  wpvivid_display_get_key = true;
969
  var div = "<div class=\'notice notice-info is-dismissible inline\'>" +
970
+ "<p>'.__('1. Visit Key tab page of WPvivid backup plugin of destination site.', 'wpvivid-backuprestore').'</p>" +
971
+ "<p>'.__('2. Generate a key by clicking Generate button and copy it.', 'wpvivid-backuprestore').'</p>" +
972
+ "<p>'.__('3. Go back to this page and paste the key in key box below. Lastly, click Save button.', 'wpvivid-backuprestore').'</p>" +
973
  "<button type=\'button\' class=\'notice-dismiss\' onclick=\'click_dismiss_key_notice(this);\'>" +
974
  "<span class=\'screen-reader-text\'>Dismiss this notice.</span>" +
975
  "</button>" +
983
 
984
  public function wpvivid_migrate_descript($html){
985
  $html .= '<div style="padding: 0 0 10px 0;">
986
+ '.__('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.', 'wpvivid-backuprestore').'
987
  </div>';
988
  return $html;
989
  }
993
  $type_name = 'transfer_type';
994
  $html = '<div class="postbox quicktransfer">
995
  <div class="wpvivid-element-space-bottom">
996
+ <h2 style="padding: 0;"><span>'.__( 'Choose the content you want to transfer', 'wpvivid-backuprestore').'</span></h2>
997
  </div>
998
  <div class="quickstart-archive-block">
999
  <fieldset>
1008
  public function wpvivid_migrate_part_exec($html){
1009
  $html = '';
1010
  $html .= '<div id="wpvivid_transfer_btn" style="float: left;">
1011
+ <input class="button-primary quicktransfer-btn" type="submit" value="'.esc_attr( 'Clone then Transfer', 'wpvivid-backuprestore').'" onclick="wpvivid_click_send_backup();" />
1012
  </div>
1013
  <script>
1014
  function wpvivid_click_send_backup()
1088
  }
1089
 
1090
  public function wpvivid_migrate_part_note($html){
1091
+ $html .= '<p>'.__('Note: ', 'wpvivid-backuprestore').'</p>
1092
+ <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-backuprestore').'</p>
1093
+ <p>'.__('2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment.', 'wpvivid-backuprestore').'</p>';
1094
  return $html;
1095
  }
1096
 
1097
  public function wpvivid_migrate_part_tip($html){
1098
  $backupdir=WPvivid_Setting::get_backupdir();
1099
+ $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-backuprestore').'</p>
1100
+ <p><strong>'.__('How to migrate Wordpress site manually to a new domain(site) with WPvivid backup plugin?', 'wpvivid-backuprestore').'</strong></p>
1101
+ <p>'.__('1. Download a backup in backups list to your computer.', 'wpvivid-backuprestore').'</p>
1102
+ <p>'.__('2. Upload the backup to destination site. There are two ways available to use:', 'wpvivid-backuprestore').'</p>
1103
+ <p style="margin-left: 20px;">'.__('2.1 Upload the backup to the upload section of WPvivid backup plugin in destination site.', 'wpvivid-backuprestore').'</p>
1104
+ <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-backuprestore'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir).'</p>
1105
+ <p>'.__('3. Once done, the backup appears in backups list. Then, restore the backup.', 'wpvivid-backuprestore').'</p>';
1106
  return $html;
1107
  }
1108
 
1109
  public function wpvivid_add_migrate_type($html, $name_type){
1110
  $html .= '<label>
1111
  <input type="radio" option="migrate" name="'.$name_type.'" value="files+db" checked />
1112
+ <span>'.__( 'Database + Files (WordPress Files)', 'wpvivid-backuprestore' ).'</span>
1113
  </label><br>
1114
  <label>
1115
  <input type="radio" option="migrate" name="'.$name_type.'" value="files" />
1116
+ <span>'.__( 'WordPress Files (Exclude Database)', 'wpvivid-backuprestore' ).'</span>
1117
  </label><br>
1118
  <label>
1119
  <input type="radio" option="migrate" name="'.$name_type.'" value="db" />
1120
+ <span>'.__( 'Only Database', 'wpvivid-backuprestore' ).'</span>
1121
  </label><br>
1122
  <label>
1123
  <div style="float: left;">
1124
  <input type="radio" disabled />
1125
+ <span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Choose what to migrate', 'wpvivid-backuprestore').'</span>
1126
  </div>
1127
  <span class="wpvivid-feature-pro">
1128
+ <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-backuprestore').'</a>
1129
  </span>
1130
  </label><br>';
1131
  return $html;
1160
  <div class="action-progress-bar-percent" id="wpvivid_upload_progress_bar_percent" style="height:24px;width:' . $list_tasks[$task['id']]['task_info']['backup_percent'] . '"></div>
1161
  </div>
1162
  <div id="wpvivid_estimate_backup_info" style="float:left;">
1163
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Database Size:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['db_size'] . '</span></div>
1164
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('File Size:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['file_size'] . '</span></div>
1165
  </div>
1166
  <div id="wpvivid_estimate_upload_info" style="float: left;">
1167
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Total Size:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['total'] . '</span></div>
1168
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Uploaded:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['upload'] . '</span></div>
1169
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Speed:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['speed'] . '</span></div>
1170
  </div>
1171
  <div style="float: left;">
1172
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Network Connection:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['network_connection'] . '</span></div>
1173
  </div>
1174
  <div style="clear:both;"></div>
1175
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_upload_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
1176
  <div style="clear: both;"></div>
1177
  <div>
1178
+ <div id="wpvivid_transfer_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_transfer_cancel_btn" type="submit" value="'.esc_attr( 'Cancel', 'wpvivid-backuprestore' ).'" /></div>
1179
  </div>';
1180
  }
1181
  }
1183
 
1184
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_transfer_success_count');
1185
  if(!empty($backup_success_count)){
1186
+ $notice_msg = __('Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup.', 'wpvivid-backuprestore');
1187
  $success_notice_html='<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
1188
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
1189
  <span class="screen-reader-text">Dismiss this notice.</span>
1243
 
1244
  function wpvivid_add_tab_upload(){
1245
  ?>
1246
+ <a href="#" id="wpvivid_tab_upload" class="nav-tab backup-nav-tab" onclick="switchrestoreTabs(event,'page-upload')"><?php _e('Upload', 'wpvivid-backuprestore'); ?></a>
1247
  <?php
1248
  }
1249
 
1253
  <div class="backup-tab-content wpvivid_tab_upload" id="page-upload" style="display:none;">
1254
  <div style="padding: 10px 0 10px 0;">
1255
  <div style="padding-bottom: 10px;">
1256
+ <span><?php echo sprintf(__('The backups will be uploaded to %s directory.', 'wpvivid-backuprestore'), WP_CONTENT_DIR.DIRECTORY_SEPARATOR.$backupdir); ?></span>
1257
  </div>
1258
  <div style="padding-bottom: 10px;">
1259
+ <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-backuprestore'); ?></span>
1260
  </div>
1261
  <?php
1262
  Wpvivid_BackupUploader::upload_meta_box();
includes/class-wpvivid-mysqldump-wpdb.php DELETED
@@ -1,770 +0,0 @@
1
- <?php
2
- /**
3
- * Created by PhpStorm.
4
- * User: alienware`x
5
- * Date: 2019/5/23
6
- * Time: 16:42
7
- */
8
-
9
- class WPvivid_Mysqldump_wpdb
10
- {
11
- // Same as mysqldump
12
- const MAXLINESIZE = 1000000;
13
-
14
- // Available compression methods as constants
15
- const GZIP = 'Gzip';
16
- const BZIP2 = 'Bzip2';
17
- const NONE = 'None';
18
-
19
- // Available connection strings
20
- const UTF8 = 'utf8';
21
- const UTF8MB4 = 'utf8mb4';
22
-
23
- /**
24
- * Database username
25
- * @var string
26
- */
27
- public $user;
28
- /**
29
- * Database password
30
- * @var string
31
- */
32
- public $pass;
33
- /**
34
- * Connection string for PDO
35
- * @var string
36
- */
37
- public $dsn;
38
- /**
39
- * Destination filename, defaults to stdout
40
- * @var string
41
- */
42
- public $fileName = 'php://output';
43
-
44
- // Internal stuff
45
- private $tables = array();
46
- private $views = array();
47
- private $triggers = array();
48
- private $procedures = array();
49
- private $events = array();
50
- private $dbHandler = null;
51
- private $dbType;
52
- private $compressManager;
53
- private $typeAdapter;
54
- private $dumpSettings = array();
55
- private $pdoSettings = array();
56
- private $version;
57
- private $tableColumnTypes = array();
58
- public $log=false;
59
- public $task_id='';
60
- /**
61
- * database name, parsed from dsn
62
- * @var string
63
- */
64
- private $dbName;
65
- /**
66
- * host name, parsed from dsn
67
- * @var string
68
- */
69
- private $host;
70
- /**
71
- * dsn string parsed as an array
72
- * @var array
73
- */
74
- private $dsnArray = array();
75
- private $privileges = array();
76
-
77
- public $last_query_string='';
78
-
79
- /**
80
- * Constructor of Mysqldump. Note that in the case of an SQLite database
81
- * connection, the filename must be in the $db parameter.
82
- *
83
- * @param string $dsn PDO DSN connection string
84
- * @param string $user SQL account username
85
- * @param string $pass SQL account password
86
- * @param array $dumpSettings SQL database settings
87
- * @param array $pdoSettings PDO configured attributes
88
- */
89
- public function __construct($dumpSettings = array())
90
- {
91
- $dumpSettingsDefault = array(
92
- 'include-tables' => array(),
93
- 'exclude-tables' => array(),
94
- 'compress' => WPvivid_Mysqldump_wpdb::NONE,
95
- 'init_commands' => array(),
96
- 'no-data' => array(),
97
- 'reset-auto-increment' => false,
98
- 'add-drop-database' => false,
99
- 'add-drop-table' => false,
100
- 'add-drop-trigger' => true,
101
- 'add-locks' => true,
102
- 'complete-insert' => false,
103
- 'databases' => false,
104
- 'default-character-set' => WPvivid_Mysqldump_wpdb::UTF8,
105
- 'disable-keys' => true,
106
- 'extended-insert' => true,
107
- 'events' => false,
108
- 'hex-blob' => true, /* faster than escaped content */
109
- 'net_buffer_length' => self::MAXLINESIZE,
110
- 'no-autocommit' => true,
111
- 'no-create-info' => false,
112
- 'lock-tables' => true,
113
- 'routines' => false,
114
- 'single-transaction' => true,
115
- 'skip-triggers' => false,
116
- 'skip-tz-utc' => false,
117
- 'skip-comments' => false,
118
- 'skip-dump-date' => false,
119
- 'where' => '',
120
- /* deprecated */
121
- 'disable-foreign-keys-check' => true
122
- );
123
-
124
- if(defined('DB_CHARSET'))
125
- {
126
- $dumpSettingsDefault['default-character-set']=DB_CHARSET;
127
- }
128
-
129
- $this->dumpSettings = self::array_replace_recursive($dumpSettingsDefault, $dumpSettings);
130
-
131
- $this->dumpSettings['init_commands'][] = "SET NAMES " . $this->dumpSettings['default-character-set'];
132
-
133
- if (false === $this->dumpSettings['skip-tz-utc']) {
134
- $this->dumpSettings['init_commands'][] = "SET TIME_ZONE='+00:00'";
135
- }
136
-
137
- $diff = array_diff(array_keys($this->dumpSettings), array_keys($dumpSettingsDefault));
138
- if (count($diff)>0) {
139
- throw new Exception("Unexpected value in dumpSettings: (" . implode(",", $diff) . ")");
140
- }
141
-
142
- if ( !is_array($this->dumpSettings['include-tables']) ||
143
- !is_array($this->dumpSettings['exclude-tables']) ) {
144
- throw new Exception("Include-tables and exclude-tables should be arrays");
145
- }
146
-
147
- // Dump the same views as tables, mimic mysqldump behaviour
148
- $this->dumpSettings['include-views'] = $this->dumpSettings['include-tables'];
149
-
150
- // Create a new compressManager to manage compressed output
151
- $this->compressManager = CompressManagerFactory::create($this->dumpSettings['compress']);
152
- }
153
-
154
- public function set_privilege($privileges)
155
- {
156
- $this -> privileges = $privileges;
157
- }
158
-
159
- /**
160
- * Custom array_replace_recursive to be used if PHP < 5.3
161
- * Replaces elements from passed arrays into the first array recursively
162
- *
163
- * @param array $array1 The array in which elements are replaced
164
- * @param array $array2 The array from which elements will be extracted
165
- *
166
- * @return array Returns an array, or NULL if an error occurs.
167
- */
168
- public static function array_replace_recursive($array1, $array2)
169
- {
170
- if (function_exists('array_replace_recursive')) {
171
- return array_replace_recursive($array1, $array2);
172
- }
173
-
174
- foreach ($array2 as $key => $value) {
175
- if (is_array($value)) {
176
- $array1[$key] = self::array_replace_recursive($array1[$key], $value);
177
- } else {
178
- $array1[$key] = $value;
179
- }
180
- }
181
- return $array1;
182
- }
183
-
184
- /**
185
- * Main call
186
- *
187
- * @param string $filename Name of file to write sql dump to
188
- * @return null
189
- */
190
- public function start($filename = '')
191
- {
192
- // Output file can be redefined here
193
- if (!empty($filename)) {
194
- $this->fileName = $filename;
195
- }
196
-
197
- // Connect to database
198
- $this->connect();
199
-
200
- // Create output file
201
- $this->compressManager->open($this->fileName);
202
-
203
- // Write some basic info to output file
204
- $this->compressManager->write($this->getDumpFileHeader());
205
-
206
- $this->compressManager->write('/* # site_url: '.site_url().' */;'.PHP_EOL);
207
- $this->compressManager->write('/* # home_url: '.home_url().' */;'.PHP_EOL);
208
- $this->compressManager->write('/* # content_url: '.content_url().' */;'.PHP_EOL);
209
- $upload_dir = wp_upload_dir();
210
- $this->compressManager->write('/* # upload_url: '.$upload_dir['baseurl'].' */;'.PHP_EOL);
211
- global $wpdb;
212
- if (is_multisite() && !defined('MULTISITE'))
213
- {
214
- $prefix = $wpdb->base_prefix;
215
- } else {
216
- $prefix = $wpdb->get_blog_prefix(0);
217
- }
218
- $this->compressManager->write('/* # table_prefix: '.$prefix.' */;'.PHP_EOL.PHP_EOL.PHP_EOL);
219
-
220
- // Store server settings and use sanner defaults to dump
221
- $this->compressManager->write(
222
- $this->typeAdapter->backup_parameters($this->dumpSettings)
223
- );
224
-
225
- // Get table, view and trigger structures from database
226
- $this->getDatabaseStructure();
227
-
228
- // If there still are some tables/views in include-tables array,
229
- // that means that some tables or views weren't found.
230
- // Give proper error and exit.
231
- // This check will be removed once include-tables supports regexps
232
- if (0 < count($this->dumpSettings['include-tables']))
233
- {
234
- $name = implode(",", $this->dumpSettings['include-tables']);
235
- throw new Exception("Table (" . $name . ") not found in database");
236
- }
237
-
238
- $this->exportTables();
239
-
240
- // Restore saved parameters
241
- $this->compressManager->write(
242
- $this->typeAdapter->restore_parameters($this->dumpSettings)
243
- );
244
- // Write some stats to output file
245
- $this->compressManager->write($this->getDumpFileFooter());
246
- // Close output file
247
- $this->compressManager->close();
248
- }
249
-
250
- /**
251
- * Reads table and views names from database.
252
- * Fills $this->tables array so they will be dumped later.
253
- *
254
- * @return null
255
- */
256
- private function getDatabaseStructure()
257
- {
258
- // Listing all tables from database
259
- if (empty($this->dumpSettings['include-tables']))
260
- {
261
- // include all tables for now, blacklisting happens later
262
-
263
- $rows=$this->query($this->typeAdapter->show_tables($this->dbName));
264
-
265
- foreach ($rows as $row)
266
- {
267
- array_push($this->tables, current($row));
268
- }
269
- } else {
270
- // include only the tables mentioned in include-tables
271
- $rows=$this->query($this->typeAdapter->show_tables($this->dbName));
272
- foreach ($rows as $row)
273
- {
274
- if (in_array(current($row), $this->dumpSettings['include-tables'], true))
275
- {
276
- array_push($this->tables, current($row));
277
- $elem = array_search(
278
- current($row),
279
- $this->dumpSettings['include-tables']
280
- );
281
- unset($this->dumpSettings['include-tables'][$elem]);
282
- }
283
- }
284
- }
285
- }
286
-
287
- /**
288
- * Returns header for dump file
289
- *
290
- * @return string
291
- */
292
- private function getDumpFileHeader()
293
- {
294
- $header = '';
295
- if ( !$this->dumpSettings['skip-comments'] ) {
296
- // Some info about software, source and time
297
- $header = "-- mysqldump-php https://github.com/ifsnop/mysqldump-php" . PHP_EOL .
298
- "--" . PHP_EOL .
299
- "-- Host: {$this->host}\tDatabase: {$this->dbName}" . PHP_EOL .
300
- "-- ------------------------------------------------------" . PHP_EOL;
301
-
302
- if ( !empty($this->version) ) {
303
- $header .= "-- Server version \t" . $this->version . PHP_EOL;
304
- }
305
-
306
- if ( !$this->dumpSettings['skip-dump-date'] ) {
307
- $header .= "-- Date: " . date('r') . PHP_EOL . PHP_EOL;
308
- }
309
- }
310
- return $header;
311
- }
312
-
313
- private function connect()
314
- {
315
- // Connecting with PDO
316
- global $wpdb;
317
-
318
- $this->host=DB_HOST;
319
- $this->dbName=DB_NAME;
320
- $this->version=$wpdb->db_version();
321
-
322
- $this->dbType='wpdb';
323
- $this->dbHandler=$wpdb;
324
-
325
- $this->typeAdapter = TypeAdapterFactory::create($this->dbType, $this->dbHandler);
326
- }
327
-
328
- public function query($query_string)
329
- {
330
- $this->last_query_string=$query_string;
331
- return $this->typeAdapter->query($query_string);
332
- }
333
-
334
- /**
335
- * Returns footer for dump file
336
- *
337
- * @return string
338
- */
339
- private function getDumpFileFooter()
340
- {
341
- $footer = '';
342
- if (!$this->dumpSettings['skip-comments']) {
343
- $footer .= '-- Dump completed';
344
- if (!$this->dumpSettings['skip-dump-date']) {
345
- $footer .= ' on: ' . date('r');
346
- }
347
- $footer .= PHP_EOL;
348
- }
349
-
350
- return $footer;
351
- }
352
-
353
- /**
354
- * Compare if $table name matches with a definition inside $arr
355
- * @param $table string
356
- * @param $arr array with strings or patterns
357
- * @return bool
358
- */
359
- private function matches($table, $arr) {
360
- $match = false;
361
-
362
- foreach ($arr as $pattern) {
363
- if ( '/' != $pattern[0] ) {
364
- continue;
365
- }
366
- if ( 1 == preg_match($pattern, $table) ) {
367
- $match = true;
368
- }
369
- }
370
-
371
- return in_array($table, $arr) || $match;
372
- }
373
-
374
- /**
375
- * Exports all the tables selected from database
376
- *
377
- * @return null
378
- */
379
- private function exportTables()
380
- {
381
- // Exporting tables one by one
382
- $i=0;
383
- $i_step=0;
384
- if($this->task_id!=='')
385
- {
386
- $options_name[]='backup_options';
387
- $options_name[]='ismerge';
388
- $options=WPvivid_taskmanager::get_task_options($this->task_id,$options_name);
389
- if($options['ismerge'])
390
- {
391
- if(isset($options['backup_options']['backup']['backup_type'])) {
392
- $i_step = intval(1 / (sizeof($options['backup_options']['backup']['backup_type']) + 1) * 100);
393
- }
394
- else{
395
- $i_step = intval(1 / (sizeof($options['backup_options']['backup']) + 1) * 100);
396
- }
397
- }
398
- else
399
- {
400
- if(isset($options['backup_options']['backup']['backup_type'])) {
401
- $i_step = intval(1 / sizeof($options['backup_options']['backup']['backup_type']) * 100);
402
- }
403
- else{
404
- $i_step = intval(1 / sizeof($options['backup_options']['backup']) * 100);
405
- }
406
- }
407
- }
408
-
409
- foreach ($this->tables as $table)
410
- {
411
- if ( $this->matches($table, $this->dumpSettings['exclude-tables']) )
412
- {
413
- continue;
414
- }
415
-
416
- if($this->task_id!=='')
417
- {
418
- $message='Preparing to dump table '.$table;
419
- global $wpvivid_plugin;
420
- $wpvivid_plugin->wpvivid_log->WriteLog($message,'notice');
421
- WPvivid_taskmanager::update_backup_sub_task_progress($this->task_id,'backup',WPVIVID_BACKUP_TYPE_DB,0,$message);
422
- }
423
-
424
- $this->getTableStructure($table);
425
- if ( false === $this->dumpSettings['no-data'] ) { // don't break compatibility with old trigger
426
- $this->listValues($table);
427
- } else if ( true === $this->dumpSettings['no-data']
428
- || $this->matches($table, $this->dumpSettings['no-data']) ) {
429
- continue;
430
- } else {
431
- $this->listValues($table);
432
- }
433
- $i++;
434
- if($this->task_id!=='')
435
- {
436
- $i_progress=intval($i/sizeof($this->tables)*$i_step);
437
- WPvivid_taskmanager::update_backup_main_task_progress($this->task_id,'backup',$i_progress,0);
438
- }
439
- }
440
- return ;
441
- }
442
-
443
- /**
444
- * Table structure extractor
445
- *
446
- * @todo move specific mysql code to typeAdapter
447
- * @param string $tableName Name of table to export
448
- * @return null
449
- */
450
- private function getTableStructure($tableName)
451
- {
452
- if (!$this->dumpSettings['no-create-info']) {
453
- $ret = '';
454
- if (!$this->dumpSettings['skip-comments']) {
455
- $ret = "--" . PHP_EOL .
456
- "-- Table structure for table `$tableName`" . PHP_EOL .
457
- "--" . PHP_EOL . PHP_EOL;
458
- }
459
- $stmt = $this->typeAdapter->show_create_table($tableName);
460
-
461
- foreach ($this->query($stmt) as $r) {
462
-
463
- $this->compressManager->write($ret);
464
- if ($this->dumpSettings['add-drop-table']) {
465
- $this->compressManager->write(
466
- $this->typeAdapter->drop_table($tableName)
467
- );
468
- }
469
-
470
- $this->compressManager->write(
471
- $this->typeAdapter->create_table($r, $this->dumpSettings)
472
- );
473
- break;
474
- }
475
- }
476
- $this->tableColumnTypes[$tableName] = $this->getTableColumnTypes($tableName);
477
- return;
478
- }
479
-
480
- /**
481
- * Store column types to create data dumps and for Stand-In tables
482
- *
483
- * @param string $tableName Name of table to export
484
- * @return array type column types detailed
485
- */
486
-
487
- private function getTableColumnTypes($tableName)
488
- {
489
- $columnTypes = array();
490
- $columns = $this->query(
491
- $this->typeAdapter->show_columns($tableName)
492
- );
493
-
494
- foreach($columns as $key => $col) {
495
- $types = $this->typeAdapter->parseColumnType($col);
496
- $columnTypes[$col['Field']] = array(
497
- 'is_numeric'=> $types['is_numeric'],
498
- 'is_blob' => $types['is_blob'],
499
- 'type' => $types['type'],
500
- 'type_sql' => $col['Type'],
501
- 'is_virtual' => $types['is_virtual']
502
- );
503
- }
504
-
505
- return $columnTypes;
506
- }
507
-
508
- /**
509
- * Table rows extractor
510
- *
511
- * @param string $tableName Name of table to export
512
- *
513
- * @return null
514
- */
515
- private function listValues($tableName)
516
- {
517
- $this->prepareListValues($tableName);
518
-
519
- $onlyOnce = true;
520
- $lineSize = 0;
521
-
522
- $colStmt = $this->getColumnStmt($tableName);
523
-
524
- global $wpdb;
525
- $prefix=$wpdb->base_prefix;
526
-
527
- if(substr($tableName, strlen($prefix))=='options')
528
- {
529
- $stmt = "SELECT " . implode(",", $colStmt) . " FROM `$tableName` WHERE option_name !='wpvivid_task_list'";
530
- }
531
- else
532
- {
533
- $stmt = "SELECT " . implode(",", $colStmt) . " FROM `$tableName`";
534
- }
535
-
536
-
537
-
538
- if ($this->dumpSettings['where']) {
539
- $stmt .= " WHERE {$this->dumpSettings['where']}";
540
- }
541
-
542
- $resultSet = $this->query($stmt);
543
-
544
- $i=0;
545
- $i_check_cancel=0;
546
- $count=0;
547
- foreach ($resultSet as $row)
548
- {
549
- $i++;
550
- $vals = $this->escape($tableName, $row);
551
-
552
- foreach($vals as $key => $value){
553
- if($value === '\'0000-00-00 00:00:00\'')
554
- $vals[$key] = '\'1991-01-01 00:00:00\'';
555
- }
556
-
557
- if ($onlyOnce || !$this->dumpSettings['extended-insert'])
558
- {
559
-
560
- if ($this->dumpSettings['complete-insert'])
561
- {
562
- $lineSize += $this->compressManager->write(
563
- "INSERT INTO `$tableName` (" .
564
- implode(", ", $colStmt) .
565
- ") VALUES (" . implode(",", $vals) . ")"
566
- );
567
- } else {
568
- $lineSize += $this->compressManager->write(
569
- "INSERT INTO `$tableName` VALUES (" . implode(",", $vals) . ")"
570
- );
571
- }
572
- $onlyOnce = false;
573
- } else {
574
- $lineSize += $this->compressManager->write(",(" . implode(",", $vals) . ")");
575
- }
576
- if (($lineSize > $this->dumpSettings['net_buffer_length']) ||
577
- !$this->dumpSettings['extended-insert']) {
578
- $onlyOnce = true;
579
- $lineSize = $this->compressManager->write(";" . PHP_EOL);
580
- }
581
-
582
- if($i>=200000)
583
- {
584
- $count+=$i;
585
- $i=0;
586
- if($this->task_id!=='')
587
- {
588
- $i_check_cancel++;
589
- if($i_check_cancel>5)
590
- {
591
- $i_check_cancel=0;
592
- global $wpvivid_plugin;
593
- $wpvivid_plugin->check_cancel_backup($this->task_id);
594
- }
595
- $message='Dumping table '.$tableName.', rows dumped: '.$count.' rows.';
596
- WPvivid_taskmanager::update_backup_sub_task_progress($this->task_id,'backup',WPVIVID_BACKUP_TYPE_DB,0,$message);
597
- }
598
- }
599
- }
600
- unset($resultSet);
601
-
602
- if (!$onlyOnce) {
603
- $this->compressManager->write(";" . PHP_EOL);
604
- }
605
-
606
-
607
-
608
- $this->endListValues($tableName);
609
- }
610
-
611
- /**
612
- * Table rows extractor, append information prior to dump
613
- *
614
- * @param string $tableName Name of table to export
615
- *
616
- * @return null
617
- */
618
- function prepareListValues($tableName)
619
- {
620
- if (!$this->dumpSettings['skip-comments']) {
621
- $this->compressManager->write(
622
- "--" . PHP_EOL .
623
- "-- Dumping data for table `$tableName`" . PHP_EOL .
624
- "--" . PHP_EOL . PHP_EOL
625
- );
626
- }
627
-
628
- if ($this->dumpSettings['single-transaction']) {
629
- $this->typeAdapter->exec($this->typeAdapter->setup_transaction());
630
- $this->typeAdapter->exec($this->typeAdapter->start_transaction());
631
- }
632
-
633
- if ($this->dumpSettings['lock-tables']) {
634
- if($this -> privileges['LOCK TABLES'] == 0){
635
- global $wpvivid_plugin;
636
- $wpvivid_plugin->wpvivid_log->WriteLog('The lack of LOCK TABLES privilege, the backup will skip lock_tables() to continue.','notice');
637
- }else{
638
- $this->typeAdapter->lock_table($tableName);
639
- }
640
- }
641
-
642
- if ($this->dumpSettings['add-locks']) {
643
- $this->compressManager->write(
644
- $this->typeAdapter->start_add_lock_table($tableName)
645
- );
646
- }
647
-
648
- if ($this->dumpSettings['disable-keys']) {
649
- $this->compressManager->write(
650
- $this->typeAdapter->start_add_disable_keys($tableName)
651
- );
652
- }
653
-
654
- // Disable autocommit for faster reload
655
- if ($this->dumpSettings['no-autocommit']) {
656
- $this->compressManager->write(
657
- $this->typeAdapter->start_disable_autocommit()
658
- );
659
- }
660
-
661
- return;
662
- }
663
-
664
- /**
665
- * Build SQL List of all columns on current table
666
- *
667
- * @param string $tableName Name of table to get columns
668
- *
669
- * @return string SQL sentence with columns
670
- */
671
- function getColumnStmt($tableName)
672
- {
673
- $colStmt = array();
674
- foreach($this->tableColumnTypes[$tableName] as $colName => $colType) {
675
- if ($colType['type'] == 'bit' && $this->dumpSettings['hex-blob']) {
676
- $colStmt[] = "LPAD(HEX(`${colName}`),2,'0') AS `${colName}`";
677
- } else if ($colType['is_blob'] && $this->dumpSettings['hex-blob']) {
678
- $colStmt[] = "HEX(`${colName}`) AS `${colName}`";
679
- } else if ($colType['is_virtual']) {
680
- $this->dumpSettings['complete-insert'] = true;
681
- continue;
682
- } else {
683
- $colStmt[] = "`${colName}`";
684
- }
685
- }
686
-
687
- return $colStmt;
688
- }
689
-
690
- /**
691
- * Escape values with quotes when needed
692
- *
693
- * @param string $tableName Name of table which contains rows
694
- * @param array $row Associative array of column names and values to be quoted
695
- *
696
- * @return string
697
- */
698
- private function escape($tableName, $row)
699
- {
700
- $ret = array();
701
- $columnTypes = $this->tableColumnTypes[$tableName];
702
-
703
- foreach ($row as $colName => $colValue) {
704
- if (is_null($colValue)) {
705
- $ret[] = "NULL";
706
- } elseif ($this->dumpSettings['hex-blob'] && $columnTypes[$colName]['is_blob']) {
707
- if ($columnTypes[$colName]['type'] == 'bit' || !empty($colValue)) {
708
- $ret[] = "0x${colValue}";
709
- } else {
710
- $ret[] = "''";
711
- }
712
- } elseif ($columnTypes[$colName]['is_numeric']) {
713
- $ret[] = $colValue;
714
- } else {
715
- $ret[] = $this->quote($colValue);
716
- }
717
- }
718
- return $ret;
719
- }
720
-
721
- public function quote($value)
722
- {
723
- $search = array("\x00", "\x0a", "\x0d", "\x1a");
724
- $replace = array('\0', '\n', '\r', '\Z');
725
- $value=str_replace('\\', '\\\\', $value);
726
- $value=str_replace('\'', '\\\'', $value);
727
- $value= "'" . str_replace($search, $replace, $value) . "'";
728
- return $value;
729
- }
730
- /**
731
- * Table rows extractor, close locks and commits after dump
732
- *
733
- * @param string $tableName Name of table to export
734
- *
735
- * @return null
736
- */
737
- function endListValues($tableName)
738
- {
739
- if ($this->dumpSettings['disable-keys']) {
740
- $this->compressManager->write(
741
- $this->typeAdapter->end_add_disable_keys($tableName)
742
- );
743
- }
744
-
745
- if ($this->dumpSettings['add-locks']) {
746
- $this->compressManager->write(
747
- $this->typeAdapter->end_add_lock_table($tableName)
748
- );
749
- }
750
-
751
- if ($this->dumpSettings['single-transaction']) {
752
- $this->typeAdapter->exec($this->typeAdapter->commit_transaction());
753
- }
754
-
755
- if ($this->dumpSettings['lock-tables']) {
756
- $this->typeAdapter->unlock_table($tableName);
757
- }
758
-
759
- // Commit to enable autocommit
760
- if ($this->dumpSettings['no-autocommit']) {
761
- $this->compressManager->write(
762
- $this->typeAdapter->end_disable_autocommit()
763
- );
764
- }
765
-
766
- $this->compressManager->write(PHP_EOL);
767
-
768
- return;
769
- }
770
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/class-wpvivid-mysqldump.php CHANGED
@@ -131,7 +131,11 @@ class WPvivid_Mysqldump
131
  'skip-dump-date' => false,
132
  'where' => '',
133
  /* deprecated */
134
- 'disable-foreign-keys-check' => true
 
 
 
 
135
  );
136
 
137
  if(defined('DB_CHARSET'))
@@ -332,19 +336,12 @@ class WPvivid_Mysqldump
332
  // Write some basic info to output file
333
  $this->compressManager->write($this->getDumpFileHeader());
334
 
335
- $this->compressManager->write('/* # site_url: '.site_url().' */;'.PHP_EOL);
336
- $this->compressManager->write('/* # home_url: '.home_url().' */;'.PHP_EOL);
337
- $this->compressManager->write('/* # content_url: '.content_url().' */;'.PHP_EOL);
338
  $upload_dir = wp_upload_dir();
339
  $this->compressManager->write('/* # upload_url: '.$upload_dir['baseurl'].' */;'.PHP_EOL);
340
- global $wpdb;
341
- if (is_multisite() && !defined('MULTISITE'))
342
- {
343
- $prefix = $wpdb->base_prefix;
344
- } else {
345
- $prefix = $wpdb->get_blog_prefix(0);
346
- }
347
- $this->compressManager->write('/* # table_prefix: '.$prefix.' */;'.PHP_EOL.PHP_EOL.PHP_EOL);
348
 
349
  // Store server settings and use sanner defaults to dump
350
  $this->compressManager->write(
@@ -714,8 +711,8 @@ class WPvivid_Mysqldump
714
  }
715
  $stmt = $this->typeAdapter->show_create_table($tableName);
716
 
717
- foreach ($this->query($stmt) as $r) {
718
-
719
  $this->compressManager->write($ret);
720
  if ($this->dumpSettings['add-drop-table']) {
721
  $this->compressManager->write(
131
  'skip-dump-date' => false,
132
  'where' => '',
133
  /* deprecated */
134
+ 'disable-foreign-keys-check' => true,
135
+ 'site_url'=>'',
136
+ 'home_url'=>'',
137
+ 'content_url'=>'',
138
+ 'prefix'=>''
139
  );
140
 
141
  if(defined('DB_CHARSET'))
336
  // Write some basic info to output file
337
  $this->compressManager->write($this->getDumpFileHeader());
338
 
339
+ $this->compressManager->write('/* # site_url: '.$this->dumpSettings['site_url'].' */;'.PHP_EOL);
340
+ $this->compressManager->write('/* # home_url: '.$this->dumpSettings['home_url'].' */;'.PHP_EOL);
341
+ $this->compressManager->write('/* # content_url: '.$this->dumpSettings['content_url'].' */;'.PHP_EOL);
342
  $upload_dir = wp_upload_dir();
343
  $this->compressManager->write('/* # upload_url: '.$upload_dir['baseurl'].' */;'.PHP_EOL);
344
+ $this->compressManager->write('/* # table_prefix: '.$this->dumpSettings['prefix'].' */;'.PHP_EOL.PHP_EOL.PHP_EOL);
 
 
 
 
 
 
 
345
 
346
  // Store server settings and use sanner defaults to dump
347
  $this->compressManager->write(
711
  }
712
  $stmt = $this->typeAdapter->show_create_table($tableName);
713
 
714
+ foreach ($this->query($stmt) as $r)
715
+ {
716
  $this->compressManager->write($ret);
717
  if ($this->dumpSettings['add-drop-table']) {
718
  $this->compressManager->write(
includes/class-wpvivid-public-interface.php CHANGED
@@ -57,7 +57,7 @@ class WPvivid_Public_Interface
57
  global $wpvivid_plugin;
58
  if (!isset($task_id)||empty($task_id)||!is_string($task_id))
59
  {
60
- $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid');
61
  return $ret;
62
  }
63
  $task_id=sanitize_key($task_id);
@@ -200,7 +200,7 @@ class WPvivid_Public_Interface
200
  $file = fopen($ret['log_file'], 'r');
201
  if (!$file) {
202
  $ret['result'] = 'failed';
203
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
204
  return $ret;
205
  }
206
  $buffer = '';
@@ -221,7 +221,7 @@ class WPvivid_Public_Interface
221
  if(!isset($log_file_name)||empty($log_file_name)||!is_string($log_file_name))
222
  {
223
  $ret['result']='failed';
224
- $ret['error']=__('Reading the log failed. Please try again.', 'wpvivid');
225
  return $ret;
226
  }
227
  $log_file_name=sanitize_text_field($log_file_name);
@@ -230,7 +230,7 @@ class WPvivid_Public_Interface
230
  $file = fopen($ret['log_file'], 'r');
231
  if (!$file) {
232
  $ret['result'] = 'failed';
233
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
234
  return $ret;
235
  }
236
  $buffer = '';
@@ -259,7 +259,7 @@ class WPvivid_Public_Interface
259
  $file = fopen($ret['log_file'], 'r');
260
  if (!$file) {
261
  $ret['result'] = 'failed';
262
- $ret['error'] = __('Unable to open the log file.', 'wpvivid');
263
  return $ret;
264
  }
265
  $buffer = '';
57
  global $wpvivid_plugin;
58
  if (!isset($task_id)||empty($task_id)||!is_string($task_id))
59
  {
60
+ $ret['error']=__('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid-backuprestore');
61
  return $ret;
62
  }
63
  $task_id=sanitize_key($task_id);
200
  $file = fopen($ret['log_file'], 'r');
201
  if (!$file) {
202
  $ret['result'] = 'failed';
203
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
204
  return $ret;
205
  }
206
  $buffer = '';
221
  if(!isset($log_file_name)||empty($log_file_name)||!is_string($log_file_name))
222
  {
223
  $ret['result']='failed';
224
+ $ret['error']=__('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
225
  return $ret;
226
  }
227
  $log_file_name=sanitize_text_field($log_file_name);
230
  $file = fopen($ret['log_file'], 'r');
231
  if (!$file) {
232
  $ret['result'] = 'failed';
233
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
234
  return $ret;
235
  }
236
  $buffer = '';
259
  $file = fopen($ret['log_file'], 'r');
260
  if (!$file) {
261
  $ret['result'] = 'failed';
262
+ $ret['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
263
  return $ret;
264
  }
265
  $buffer = '';
includes/class-wpvivid-restore-database.php CHANGED
@@ -17,8 +17,10 @@ class WPvivid_RestoreDB
17
  private $default_charsets;
18
  private $default_collates;
19
  private $old_prefix;
 
20
  private $new_prefix;
21
 
 
22
  private $old_site_url;
23
  private $old_home_url;
24
  private $old_content_url;
@@ -84,6 +86,9 @@ class WPvivid_RestoreDB
84
  $result = $this->execute_sql_file($path . $sql_file, $options);
85
 
86
  $this->enable_plugins();
 
 
 
87
  unset($this->db_method);
88
  //do_action('wpvivid_restore_database_finish',$options);
89
  }
@@ -94,6 +99,28 @@ class WPvivid_RestoreDB
94
  }
95
  }
96
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  private function execute_extra_sql_file($file, $options){
98
  global $wpvivid_plugin;
99
  $wpvivid_plugin->restore_data->write_log('Start import additional sql file.','notice');
@@ -122,9 +149,11 @@ class WPvivid_RestoreDB
122
  $plugin_list=array();
123
  $plugin_list[]='wpvivid-backuprestore/wpvivid-backuprestore.php';
124
  $plugin_list=apply_filters('wpvivid_enable_plugins_list',$plugin_list);
125
- //$plugin_list[]='WPvivid_backup_premium/WPvivid_backup_premium.php';
126
 
127
- activate_plugins($plugin_list,'',false,true);
 
 
 
128
  }
129
 
130
  private function execute_sql_file($file,$option)
@@ -208,6 +237,11 @@ class WPvivid_RestoreDB
208
  else
209
  {
210
  $this->old_prefix='';
 
 
 
 
 
211
  $this->new_prefix=$wpdb->base_prefix;
212
 
213
  $this->old_site_url='';
@@ -395,7 +429,17 @@ class WPvivid_RestoreDB
395
  if (preg_match('/^\s*LOCK TABLES +\`?([^\`]*)\`?/i', $query, $matches))
396
  {
397
  $table_name = $matches[1];
398
- $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
 
 
 
 
 
 
 
 
 
 
399
  $wpvivid_plugin->restore_data->write_log('lock replace table:'.$table_name.' to :'.$new_table_name,'notice');
400
  $query=str_replace($table_name,$new_table_name,$query);
401
  }
@@ -427,7 +471,15 @@ class WPvivid_RestoreDB
427
 
428
  if(!empty($this->old_prefix)&&$this->old_prefix!=$this->new_prefix)
429
  {
430
- $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
 
 
 
 
 
 
 
 
431
  $query=str_replace($table_name,$new_table_name,$query);
432
  $wpvivid_plugin->restore_data->write_log('Create table '.$new_table_name,'notice');
433
  $table_name=$new_table_name;
@@ -755,7 +807,16 @@ class WPvivid_RestoreDB
755
  if (preg_match('/^\s*INSERT INTO +\`?([^\`]*)\`?/i', $query, $matches))
756
  {
757
  $table_name = $matches[1];
758
- $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
 
 
 
 
 
 
 
 
 
759
  $query=str_replace($table_name,$new_table_name,$query);
760
  }
761
  }
@@ -771,8 +832,18 @@ class WPvivid_RestoreDB
771
  if (preg_match('/^\s*DROP TABLE IF EXISTS +\`?([^\`]*)\`?\s*;/i', $query, $matches))
772
  {
773
  $table_name = $matches[1];
774
- $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
775
- $wpvivid_plugin->restore_data->write_log('drop replace table:'.$table_name.' to :'.$new_table_name,'notice');
 
 
 
 
 
 
 
 
 
 
776
  $query=str_replace($table_name,$new_table_name,$query);
777
  }
778
  }
@@ -816,6 +887,19 @@ class WPvivid_RestoreDB
816
  }
817
  }
818
 
 
 
 
 
 
 
 
 
 
 
 
 
 
819
  if($this->old_site_url==$this->new_site_url)
820
  return ;
821
 
17
  private $default_charsets;
18
  private $default_collates;
19
  private $old_prefix;
20
+ private $old_base_prefix;
21
  private $new_prefix;
22
 
23
+
24
  private $old_site_url;
25
  private $old_home_url;
26
  private $old_content_url;
86
  $result = $this->execute_sql_file($path . $sql_file, $options);
87
 
88
  $this->enable_plugins();
89
+
90
+ $this->wpvivid_fix_siteurl_home();
91
+
92
  unset($this->db_method);
93
  //do_action('wpvivid_restore_database_finish',$options);
94
  }
99
  }
100
  }
101
 
102
+ private function wpvivid_fix_siteurl_home(){
103
+ global $wpvivid_plugin;
104
+ $option_table = $this->new_prefix.'options';
105
+ if($this->old_site_url!=$this->new_site_url)
106
+ {
107
+ //siteurl
108
+ $update_query ='UPDATE '.$option_table.' SET option_value="'.$this->new_site_url.'" WHERE option_name="siteurl";';
109
+ $wpvivid_plugin->restore_data->write_log($update_query, 'notice');
110
+ $wpvivid_plugin->restore_data->write_log('update query len:'.strlen($update_query), 'notice');
111
+ $this->execute_sql($update_query);
112
+ }
113
+
114
+ if($this->old_home_url!=$this->new_home_url)
115
+ {
116
+ //home
117
+ $update_query ='UPDATE '.$option_table.' SET option_value="'.$this->new_home_url.'" WHERE option_name="home";';
118
+ $wpvivid_plugin->restore_data->write_log($update_query, 'notice');
119
+ $wpvivid_plugin->restore_data->write_log('update query len:'.strlen($update_query), 'notice');
120
+ $this->execute_sql($update_query);
121
+ }
122
+ }
123
+
124
  private function execute_extra_sql_file($file, $options){
125
  global $wpvivid_plugin;
126
  $wpvivid_plugin->restore_data->write_log('Start import additional sql file.','notice');
149
  $plugin_list=array();
150
  $plugin_list[]='wpvivid-backuprestore/wpvivid-backuprestore.php';
151
  $plugin_list=apply_filters('wpvivid_enable_plugins_list',$plugin_list);
 
152
 
153
+ if(is_multisite())
154
+ activate_plugins($plugin_list,'',true,true);
155
+ else
156
+ activate_plugins($plugin_list,'',false,true);
157
  }
158
 
159
  private function execute_sql_file($file,$option)
237
  else
238
  {
239
  $this->old_prefix='';
240
+ $this->old_base_prefix='';
241
+ if(isset($option['mu_migrate']))
242
+ {
243
+ $this->old_base_prefix=$option['base_prefix'];
244
+ }
245
  $this->new_prefix=$wpdb->base_prefix;
246
 
247
  $this->old_site_url='';
429
  if (preg_match('/^\s*LOCK TABLES +\`?([^\`]*)\`?/i', $query, $matches))
430
  {
431
  $table_name = $matches[1];
432
+
433
+ if(!empty($this->old_base_prefix)&&(substr($table_name,strlen($this->old_base_prefix))=='users'||substr($table_name,strlen($this->old_base_prefix))=='usermeta'))
434
+ {
435
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_base_prefix));
436
+ }
437
+ else
438
+ {
439
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
440
+ }
441
+
442
+ //$new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
443
  $wpvivid_plugin->restore_data->write_log('lock replace table:'.$table_name.' to :'.$new_table_name,'notice');
444
  $query=str_replace($table_name,$new_table_name,$query);
445
  }
471
 
472
  if(!empty($this->old_prefix)&&$this->old_prefix!=$this->new_prefix)
473
  {
474
+ if(!empty($this->old_base_prefix)&&(substr($table_name,strlen($this->old_base_prefix))=='users'||substr($table_name,strlen($this->old_base_prefix))=='usermeta'))
475
+ {
476
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_base_prefix));
477
+ }
478
+ else
479
+ {
480
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
481
+ }
482
+
483
  $query=str_replace($table_name,$new_table_name,$query);
484
  $wpvivid_plugin->restore_data->write_log('Create table '.$new_table_name,'notice');
485
  $table_name=$new_table_name;
807
  if (preg_match('/^\s*INSERT INTO +\`?([^\`]*)\`?/i', $query, $matches))
808
  {
809
  $table_name = $matches[1];
810
+
811
+ if(!empty($this->old_base_prefix)&&(substr($table_name,strlen($this->old_base_prefix))=='users'||substr($table_name,strlen($this->old_base_prefix))=='usermeta'))
812
+ {
813
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_base_prefix));
814
+ }
815
+ else
816
+ {
817
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
818
+ }
819
+ //$new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
820
  $query=str_replace($table_name,$new_table_name,$query);
821
  }
822
  }
832
  if (preg_match('/^\s*DROP TABLE IF EXISTS +\`?([^\`]*)\`?\s*;/i', $query, $matches))
833
  {
834
  $table_name = $matches[1];
835
+
836
+ if(!empty($this->old_base_prefix)&&(substr($table_name,strlen($this->old_base_prefix))=='users'||substr($table_name,strlen($this->old_base_prefix))=='usermeta'))
837
+ {
838
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_base_prefix));
839
+ $wpvivid_plugin->restore_data->write_log('find user table:'.$table_name.' to :'.$new_table_name,'notice');
840
+ }
841
+ else
842
+ {
843
+ $new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
844
+ }
845
+
846
+ //$new_table_name=$this->new_prefix.substr($table_name,strlen($this->old_prefix));
847
  $query=str_replace($table_name,$new_table_name,$query);
848
  }
849
  }
887
  }
888
  }
889
 
890
+ if(!empty($this->old_base_prefix)&&substr($table_name,strlen($this->old_base_prefix))=='usermeta')
891
+ {
892
+ if($this->old_base_prefix!=$this->new_prefix)
893
+ {
894
+ $update_query ='UPDATE '.$table_name.' SET meta_key=REPLACE(meta_key,"'.$this->old_base_prefix.'","'.$this->new_prefix.'") WHERE meta_key LIKE "'.str_replace('_','\_',$this->old_base_prefix).'%";';
895
+
896
+ $wpvivid_plugin->restore_data->write_log($update_query, 'notice');
897
+ $wpvivid_plugin->restore_data->write_log('update query len:'.strlen($update_query), 'notice');
898
+ $this->execute_sql($update_query);
899
+ return ;
900
+ }
901
+ }
902
+
903
  if($this->old_site_url==$this->new_site_url)
904
  return ;
905
 
includes/class-wpvivid-restore-site.php CHANGED
@@ -70,14 +70,28 @@ class WPvivid_RestoreSite
70
  if (isset($option['root']))
71
  {
72
  $root_path = $this->transfer_path(get_home_path() . $option['root']);
73
- } else if (isset($option['root_flag'])) {
74
- if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_WP_CONTENT) {
 
 
 
75
  $root_path = $this->transfer_path(WP_CONTENT_DIR);
76
- } else if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_CUSTOM) {
 
 
77
  $root_path = $this->transfer_path(WP_CONTENT_DIR . DIRECTORY_SEPARATOR . WPvivid_Setting::get_backupdir());
78
- } else if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_WP_ROOT) {
 
 
79
  $root_path = $this->transfer_path(ABSPATH);
80
  }
 
 
 
 
 
 
 
81
  else if($option['root_flag'] == 'wpvivid_mu_upload')
82
  {
83
  if($option['overwrite'])
@@ -95,7 +109,7 @@ class WPvivid_RestoreSite
95
 
96
  $root_path = rtrim($root_path, '/');
97
  $root_path = rtrim($root_path, DIRECTORY_SEPARATOR);
98
-
99
  $exclude_path[] = $this->transfer_path(WP_CONTENT_DIR . DIRECTORY_SEPARATOR . WPvivid_Setting::get_backupdir());
100
 
101
  if (isset($option['include_path'])) {
70
  if (isset($option['root']))
71
  {
72
  $root_path = $this->transfer_path(get_home_path() . $option['root']);
73
+ }
74
+ else if (isset($option['root_flag']))
75
+ {
76
+ if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_WP_CONTENT)
77
+ {
78
  $root_path = $this->transfer_path(WP_CONTENT_DIR);
79
+ }
80
+ else if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_CUSTOM)
81
+ {
82
  $root_path = $this->transfer_path(WP_CONTENT_DIR . DIRECTORY_SEPARATOR . WPvivid_Setting::get_backupdir());
83
+ }
84
+ else if ($option['root_flag'] == WPVIVID_BACKUP_ROOT_WP_ROOT)
85
+ {
86
  $root_path = $this->transfer_path(ABSPATH);
87
  }
88
+ else if($option['root_flag'] == WPVIVID_BACKUP_ROOT_WP_UPLOADS)
89
+ {
90
+ $upload_dir = wp_upload_dir();
91
+ $upload_path = $upload_dir['basedir'];
92
+
93
+ $root_path = $this->transfer_path($upload_path);
94
+ }
95
  else if($option['root_flag'] == 'wpvivid_mu_upload')
96
  {
97
  if($option['overwrite'])
109
 
110
  $root_path = rtrim($root_path, '/');
111
  $root_path = rtrim($root_path, DIRECTORY_SEPARATOR);
112
+ //$wpvivid_plugin->restore_data->write_log('root_path:' . $root_path.' root_flag:'.$option['root_flag'], 'notice');
113
  $exclude_path[] = $this->transfer_path(WP_CONTENT_DIR . DIRECTORY_SEPARATOR . WPvivid_Setting::get_backupdir());
114
 
115
  if (isset($option['include_path'])) {
includes/class-wpvivid-restore.php CHANGED
@@ -68,7 +68,6 @@ class WPvivid_Restore
68
  $option=$json;
69
  }
70
  $option=array_merge($option,$restore_task['option']);
71
-
72
  if(isset($restore_task['reset']))
73
  {
74
  $wpvivid_plugin->restore_data->write_log('Start resetting '.$restore_task['reset'],'notice');
@@ -86,6 +85,13 @@ class WPvivid_Restore
86
  $ret= $restore_site -> restore($option,$restore_task['files']);
87
  if($ret['result']==WPVIVID_SUCCESS)
88
  {
 
 
 
 
 
 
 
89
  $path = $backup_item->get_local_path().WPVIVID_DEFAULT_ROLLBACK_DIR.DIRECTORY_SEPARATOR.'wpvivid_old_database'.DIRECTORY_SEPARATOR;
90
  $sql_file = $backup_item->get_sql_file($restore_task['files'][0]);
91
  $wpvivid_plugin->restore_data->write_log('sql file: '.$sql_file,'notice');
@@ -114,6 +120,13 @@ class WPvivid_Restore
114
  $restore_site = new WPvivid_RestoreSite();
115
 
116
  $files=$wpvivid_plugin->restore_data->get_need_unzip_file($restore_task);
 
 
 
 
 
 
 
117
  $wpvivid_plugin->restore_data->write_log('Start restoring '.$files[0],'notice');
118
  $ret= $restore_site -> restore($option,$files);
119
  $wpvivid_plugin->restore_data->update_need_unzip_file($restore_task['index'],$files);
@@ -122,6 +135,79 @@ class WPvivid_Restore
122
  }
123
  }
124
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  public function reset_restore($restore_task)
126
  {
127
  $ret['result']=WPVIVID_SUCCESS;
68
  $option=$json;
69
  }
70
  $option=array_merge($option,$restore_task['option']);
 
71
  if(isset($restore_task['reset']))
72
  {
73
  $wpvivid_plugin->restore_data->write_log('Start resetting '.$restore_task['reset'],'notice');
85
  $ret= $restore_site -> restore($option,$restore_task['files']);
86
  if($ret['result']==WPVIVID_SUCCESS)
87
  {
88
+ if(isset($option['is_crypt'])&&$option['is_crypt']=='1')
89
+ {
90
+ $sql_file = $backup_item->get_sql_file($restore_task['files'][0]);
91
+ $local_path=$backup_item->get_local_path();
92
+ $ret=$this->restore_crypt_db($sql_file,$restore_task,$option,$local_path);
93
+ return $ret;
94
+ }
95
  $path = $backup_item->get_local_path().WPVIVID_DEFAULT_ROLLBACK_DIR.DIRECTORY_SEPARATOR.'wpvivid_old_database'.DIRECTORY_SEPARATOR;
96
  $sql_file = $backup_item->get_sql_file($restore_task['files'][0]);
97
  $wpvivid_plugin->restore_data->write_log('sql file: '.$sql_file,'notice');
120
  $restore_site = new WPvivid_RestoreSite();
121
 
122
  $files=$wpvivid_plugin->restore_data->get_need_unzip_file($restore_task);
123
+ $json=$backup_item->get_file_info($files[0]);
124
+ $option=array();
125
+ if($json!==false)
126
+ {
127
+ $option=$json;
128
+ }
129
+ $option=array_merge($option,$restore_task['option']);
130
  $wpvivid_plugin->restore_data->write_log('Start restoring '.$files[0],'notice');
131
  $ret= $restore_site -> restore($option,$files);
132
  $wpvivid_plugin->restore_data->update_need_unzip_file($restore_task['index'],$files);
135
  }
136
  }
137
 
138
+ public function restore_crypt_db($file,$restore_task,$option,$local_path)
139
+ {
140
+ $general_setting=WPvivid_Setting::get_setting(true, "");
141
+ if(isset($general_setting['options']['wpvivid_common_setting']['encrypt_db'])&&$general_setting['options']['wpvivid_common_setting']['encrypt_db'] == '1')
142
+ {
143
+ global $wpvivid_plugin;
144
+ $wpvivid_plugin->restore_data->write_log('Encrypted database detected. Start decrypting database.','notice');
145
+
146
+ $general_setting=WPvivid_Setting::get_setting(true, "");
147
+ $password=$general_setting['options']['wpvivid_common_setting']['encrypt_db_password'];
148
+ if(empty($password))
149
+ {
150
+ $ret['result']=WPVIVID_FAILED;
151
+ $ret['error']='Failed to decrypt backup. A password was not set in the plugin settings.';
152
+ return $ret;
153
+ }
154
+
155
+ $crypt=new WPvivid_Crypt_File($password);
156
+ $path=$local_path.WPVIVID_DEFAULT_ROLLBACK_DIR.DIRECTORY_SEPARATOR.'wpvivid_old_database';
157
+
158
+ $ret=$crypt->decrypt($path.DIRECTORY_SEPARATOR.$file);
159
+ if($ret['result']=='success')
160
+ {
161
+ $zip = new WPvivid_ZipClass();
162
+ $all_files = array();
163
+ $all_files[] = $ret['file_path'];
164
+ $file_path=$ret['file_path'];
165
+
166
+ $ret= $zip -> extract($all_files,$path);
167
+ if($ret['result']!=='success')
168
+ {
169
+ $ret['error']='Failed to unzip the file. Maybe the password is incorrect. Please check your password and try again.';
170
+ return $ret;
171
+ }
172
+
173
+ $wpvivid_plugin->restore_data->write_log('Decrypting database successfully. Start restoring database.','notice');
174
+
175
+ $files = $zip->list_file($file_path);
176
+ unset($zip);
177
+ $sql_file=$files[0]['file_name'];
178
+
179
+ $wpvivid_plugin->restore_data->write_log('sql file: '.$sql_file,'notice');
180
+ $restore_db=new WPvivid_RestoreDB();
181
+ $check_is_remove = false;
182
+ $check_is_remove = apply_filters('wpvivid_check_remove_restore_database', $check_is_remove, $option);
183
+ if(!$check_is_remove)
184
+ {
185
+ $ret = $restore_db->restore($path.DIRECTORY_SEPARATOR, $sql_file, $option);
186
+ @unlink($file_path);
187
+ $wpvivid_plugin->restore_data->write_log('Finished restoring '.$restore_task['files'][0],'notice');
188
+ $wpvivid_plugin->restore_data->update_need_unzip_file($restore_task['index'],$restore_task['files']);
189
+ }
190
+ else{
191
+ @unlink($file_path);
192
+ $wpvivid_plugin->restore_data->write_log('Remove file: '.$path.$sql_file, 'notice');
193
+ $wpvivid_plugin->restore_data->update_need_unzip_file($restore_task['index'],$restore_task['files']);
194
+ $ret['result']=WPVIVID_SUCCESS;
195
+ }
196
+ return $ret;
197
+ }
198
+ else
199
+ {
200
+ return $ret;
201
+ }
202
+ }
203
+ else
204
+ {
205
+ $ret['result']=WPVIVID_FAILED;
206
+ $ret['error']='Failed to decrypt backup. A password was not set in the plugin settings.';
207
+ return $ret;
208
+ }
209
+ }
210
+
211
  public function reset_restore($restore_task)
212
  {
213
  $ret['result']=WPVIVID_SUCCESS;
includes/class-wpvivid-schedule.php CHANGED
@@ -88,19 +88,19 @@ class WPvivid_Schedule
88
  if($schedule_check['result']){
89
  $html.=' <label><input type="radio" option="schedule" name="recurrence" value="'.$schedule_check['type'].'" />';
90
  if($display === '12Hours'){
91
- $html.='<span>'.__('12Hours', 'wpvivid').'</span></label><br>';
92
  }
93
  if($display === 'Daily'){
94
- $html.='<span>'.__('Daily', 'wpvivid').'</span></label><br>';
95
  }
96
  if($display === 'Weekly'){
97
- $html.='<span>'.__('Weekly', 'wpvivid').'</span></label><br>';
98
  }
99
  if($display === 'Fortnightly'){
100
- $html.='<span>'.__('Fortnightly', 'wpvivid').'</span></label><br>';
101
  }
102
  if($display === 'Monthly'){
103
- $html.='<span>'.__('Monthly', 'wpvivid').'</span></label><br>';
104
  }
105
  }
106
  else{
@@ -110,11 +110,11 @@ class WPvivid_Schedule
110
  $html.='<label>';
111
  $html.='<div style="float: left;">';
112
  $html.='<input type="radio" disabled />';
113
- $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid').'</span>';
114
  $html.='</div>';
115
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
116
  $html.='<span class="wpvivid-feature-pro">';
117
- $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none; margin-top: 10px;">'.__('Pro feature: learn more', 'wpvivid').'</a>';
118
  $html.='</span>';
119
  $html.='</div>';
120
  $html.='</label><br>';
@@ -279,7 +279,7 @@ class WPvivid_Schedule
279
  if($schedule_data===false)
280
  {
281
  $ret['result']='failed';
282
- $ret['error']=__('Creating scheduled tasks failed. Please try again later.', 'wpvivid');
283
  return $ret;
284
  }
285
 
@@ -293,7 +293,7 @@ class WPvivid_Schedule
293
  if(wp_schedule_event($schedule_data['start_time'], $schedule_data['type'], $schedule_data['event'])===false)
294
  {
295
  $ret['result']='failed';
296
- $ret['error']=__('Creating scheduled tasks failed. Please try again later.', 'wpvivid');
297
  $ret['data']=$schedule_data;
298
  return $ret;
299
  }
88
  if($schedule_check['result']){
89
  $html.=' <label><input type="radio" option="schedule" name="recurrence" value="'.$schedule_check['type'].'" />';
90
  if($display === '12Hours'){
91
+ $html.='<span>'.__('12Hours', 'wpvivid-backuprestore').'</span></label><br>';
92
  }
93
  if($display === 'Daily'){
94
+ $html.='<span>'.__('Daily', 'wpvivid-backuprestore').'</span></label><br>';
95
  }
96
  if($display === 'Weekly'){
97
+ $html.='<span>'.__('Weekly', 'wpvivid-backuprestore').'</span></label><br>';
98
  }
99
  if($display === 'Fortnightly'){
100
+ $html.='<span>'.__('Fortnightly', 'wpvivid-backuprestore').'</span></label><br>';
101
  }
102
  if($display === 'Monthly'){
103
+ $html.='<span>'.__('Monthly', 'wpvivid-backuprestore').'</span></label><br>';
104
  }
105
  }
106
  else{
110
  $html.='<label>';
111
  $html.='<div style="float: left;">';
112
  $html.='<input type="radio" disabled />';
113
+ $html.='<span class="wpvivid-element-space-right" style="color: #ddd;">'.__('Custom', 'wpvivid-backuprestore').'</span>';
114
  $html.='</div>';
115
  $html.='<div style="float: left; height: 32px; line-height: 32px;">';
116
  $html.='<span class="wpvivid-feature-pro">';
117
+ $html.='<a href="https://wpvivid.com/wpvivid-backup-pro-schedule-overview?utm_source=client_custom_cycles&utm_medium=inner_link&utm_campaign=access" style="text-decoration: none; margin-top: 10px;">'.__('Pro feature: learn more', 'wpvivid-backuprestore').'</a>';
118
  $html.='</span>';
119
  $html.='</div>';
120
  $html.='</label><br>';
279
  if($schedule_data===false)
280
  {
281
  $ret['result']='failed';
282
+ $ret['error']=__('Creating scheduled tasks failed. Please try again later.', 'wpvivid-backuprestore');
283
  return $ret;
284
  }
285
 
293
  if(wp_schedule_event($schedule_data['start_time'], $schedule_data['type'], $schedule_data['event'])===false)
294
  {
295
  $ret['result']='failed';
296
+ $ret['error']=__('Creating scheduled tasks failed. Please try again later.', 'wpvivid-backuprestore');
297
  $ret['data']=$schedule_data;
298
  return $ret;
299
  }
includes/class-wpvivid-tab-page-container.php CHANGED
@@ -199,7 +199,7 @@ class WPvivid_Tab_Page_Container
199
 
200
  if(isset($tab['can_delete']))
201
  {
202
- echo '<div style="margin-right: 15px;">'.__($tab['title'], 'wpvivid').'</div>';
203
  if(isset($tab['redirect']))
204
  {
205
  echo '<div class="nav-tab-delete-img" redirect="'.$tab['redirect'].'">
@@ -215,7 +215,7 @@ class WPvivid_Tab_Page_Container
215
  }
216
  else
217
  {
218
- echo __($tab['title'], 'wpvivid');
219
  }
220
  echo '</a>';
221
  }
199
 
200
  if(isset($tab['can_delete']))
201
  {
202
+ echo '<div style="margin-right: 15px;">'.__($tab['title'], 'wpvivid-backuprestore').'</div>';
203
  if(isset($tab['redirect']))
204
  {
205
  echo '<div class="nav-tab-delete-img" redirect="'.$tab['redirect'].'">
215
  }
216
  else
217
  {
218
+ echo __($tab['title'], 'wpvivid-backuprestore');
219
  }
220
  echo '</a>';
221
  }
includes/class-wpvivid-taskmanager.php CHANGED
@@ -213,7 +213,7 @@ class WPvivid_taskmanager
213
  $ret['progress']=$task['data'][$ret['type']]['progress'];
214
  $ret['doing']=$task['data'][$ret['type']]['doing'];
215
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress']))
216
- $ret['descript']=__($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress'], 'wpvivid');
217
  else
218
  $ret['descript']='';
219
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['upload_data']))
213
  $ret['progress']=$task['data'][$ret['type']]['progress'];
214
  $ret['doing']=$task['data'][$ret['type']]['doing'];
215
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress']))
216
+ $ret['descript']=__($task['data'][$ret['type']]['sub_job'][$ret['doing']]['progress'], 'wpvivid-backuprestore');
217
  else
218
  $ret['descript']='';
219
  if(isset($task['data'][$ret['type']]['sub_job'][$ret['doing']]['upload_data']))
includes/class-wpvivid-zipclass.php CHANGED
@@ -506,7 +506,7 @@ class WPvivid_ZipClass extends Wpvivid_Compress_Default
506
 
507
  public function _zip($name,$files,$options,$json_info=false)
508
  {
509
- $zip_object_class=apply_filters('wpvivid_get_zip_object_class','WPvivid_PclZip_Class');
510
  $zip=new $zip_object_class();
511
  return $zip->zip($name,$files,$options,$json_info);
512
  }
506
 
507
  public function _zip($name,$files,$options,$json_info=false)
508
  {
509
+ $zip_object_class=apply_filters('wpvivid_get_zip_object_class_ex','WPvivid_PclZip_Class',$options);
510
  $zip=new $zip_object_class();
511
  return $zip->zip($name,$files,$options,$json_info);
512
  }
includes/class-wpvivid.php CHANGED
@@ -57,6 +57,8 @@ class WPvivid {
57
 
58
  public $admin;
59
 
 
 
60
  public function __construct()
61
  {
62
  $this->version = WPVIVID_PLUGIN_VERSION;
@@ -128,6 +130,7 @@ class WPvivid {
128
  add_filter('wpvivid_set_mail_body', array($this, 'set_mail_body'), 10, 2);
129
 
130
  add_filter('wpvivid_get_oldest_backup_ids', array($this, 'get_oldest_backup_ids'), 10, 2);
 
131
  //
132
  //Initialisation schedule hook
133
  $this->init_cron();
@@ -198,6 +201,7 @@ class WPvivid {
198
  $this->interface_mainwp = new WPvivid_Interface_MainWP();
199
  $send_to_site=new WPvivid_Send_to_site();
200
  $export_import = new WPvivid_Export_Import();
 
201
  }
202
 
203
  public function init_pclzip_tmp_folder()
@@ -508,7 +512,7 @@ class WPvivid {
508
  $ret['result']=WPVIVID_FAILED;
509
  if(!isset($data['backup_files']))
510
  {
511
- $ret['error']=__('A backup type is required.', 'wpvivid');
512
  return $ret;
513
  }
514
 
@@ -516,13 +520,13 @@ class WPvivid {
516
 
517
  if(empty($data['backup_files']))
518
  {
519
- $ret['error']=__('A backup type is required.', 'wpvivid');
520
  return $ret;
521
  }
522
 
523
  if(!isset($data['local']) && !isset($data['remote']))
524
  {
525
- $ret['error']=__('Choose at least one storage location for backups.', 'wpvivid');
526
  return $ret;
527
  }
528
 
@@ -531,7 +535,7 @@ class WPvivid {
531
 
532
  if(empty($data['local']) && empty($data['remote']))
533
  {
534
- $ret['error']=__('Choose at least one storage location for backups.', 'wpvivid');
535
  return $ret;
536
  }
537
 
@@ -542,7 +546,7 @@ class WPvivid {
542
  $remote_storage = WPvivid_Setting::get_remote_options();
543
  if ($remote_storage == false)
544
  {
545
- $ret['error'] = __('There is no default remote storage configured. Please set it up first.', 'wpvivid');
546
  return $ret;
547
  }
548
  }
@@ -585,7 +589,7 @@ class WPvivid {
585
  try {
586
  if (!isset($_POST['task_id']) || empty($_POST['task_id']) || !is_string($_POST['task_id'])) {
587
  $ret['result'] = 'failed';
588
- $ret['error'] = __('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid');
589
  echo json_encode($ret);
590
  die();
591
  }
@@ -594,7 +598,7 @@ class WPvivid {
594
  //Start backup site
595
  if (WPvivid_taskmanager::is_tasks_backup_running()) {
596
  $ret['result'] = 'failed';
597
- $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
598
  echo json_encode($ret);
599
  die();
600
  }
@@ -633,7 +637,7 @@ class WPvivid {
633
  if (!$backup)
634
  {
635
  $json['result'] = 'failed';
636
- $json['error'] = __('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid');
637
  echo json_encode($json);
638
  die();
639
  }
@@ -641,7 +645,7 @@ class WPvivid {
641
  if (!file_exists($backup['log']))
642
  {
643
  $json['result'] = 'failed';
644
- $json['error'] = __('The log not found.', 'wpvivid');
645
  echo json_encode($json);
646
  die();
647
  }
@@ -651,7 +655,7 @@ class WPvivid {
651
  if (!$file)
652
  {
653
  $json['result'] = 'failed';
654
- $json['error'] = __('Unable to open the log file.', 'wpvivid');
655
  echo json_encode($json);
656
  die();
657
  }
@@ -668,7 +672,7 @@ class WPvivid {
668
  echo json_encode($json);
669
  } else {
670
  $json['result'] = 'failed';
671
- $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid');
672
  echo json_encode($json);
673
  }
674
  }
@@ -692,7 +696,7 @@ class WPvivid {
692
  try {
693
  if (!isset($_POST['log_file_name']) || empty($_POST['log_file_name']) || !is_string($_POST['log_file_name'])) {
694
  $json['result'] = 'failed';
695
- $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid');
696
  echo json_encode($json);
697
  die();
698
  }
@@ -701,7 +705,7 @@ class WPvivid {
701
 
702
  if (!file_exists($log_file_name)) {
703
  $json['result'] = 'failed';
704
- $json['error'] = __('The log not found.', 'wpvivid');
705
  echo json_encode($json);
706
  die();
707
  }
@@ -710,7 +714,7 @@ class WPvivid {
710
 
711
  if (!$file) {
712
  $json['result'] = 'failed';
713
- $json['error'] = __('Unable to open the log file.', 'wpvivid');
714
  echo json_encode($json);
715
  die();
716
  }
@@ -747,7 +751,7 @@ class WPvivid {
747
  $option = WPvivid_taskmanager::get_task_options($backup_task_id, 'log_file_name');
748
  if (!$option) {
749
  $json['result'] = 'failed';
750
- $json['error'] = __('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid');
751
  echo json_encode($json);
752
  die();
753
  }
@@ -756,7 +760,7 @@ class WPvivid {
756
 
757
  if (!file_exists($log_file_name)) {
758
  $json['result'] = 'failed';
759
- $json['error'] = __('The log not found.', 'wpvivid');
760
  echo json_encode($json);
761
  die();
762
  }
@@ -765,7 +769,7 @@ class WPvivid {
765
 
766
  if (!$file) {
767
  $json['result'] = 'failed';
768
- $json['error'] = __('Unable to open the log file.', 'wpvivid');
769
  echo json_encode($json);
770
  die();
771
  }
@@ -781,7 +785,7 @@ class WPvivid {
781
  echo json_encode($json);
782
  } else {
783
  $json['result'] = 'failed';
784
- $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid');
785
  echo json_encode($json);
786
  }
787
  }
@@ -907,7 +911,7 @@ class WPvivid {
907
  if (WPvivid_taskmanager::is_tasks_backup_running())
908
  {
909
  $ret['result'] = 'failed';
910
- $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
911
  echo json_encode($ret);
912
  die();
913
  }
@@ -1053,7 +1057,7 @@ class WPvivid {
1053
  if(WPvivid_taskmanager::is_tasks_backup_running())
1054
  {
1055
  $ret['result']='failed';
1056
- $ret['error']=__('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid');
1057
  return $ret;
1058
  }
1059
 
@@ -1409,7 +1413,7 @@ class WPvivid {
1409
 
1410
  if ($status['resume_count'] > $max_resume_count)
1411
  {
1412
- $message = __('Too many resumption attempts.', 'wpvivid');
1413
  $task = WPvivid_taskmanager::update_backup_task_status($task_id, false, 'error', false, $status['resume_count'], $message);
1414
  do_action('wpvivid_handle_backup_failed', $task, true);
1415
  } else {
@@ -1431,7 +1435,7 @@ class WPvivid {
1431
  $status['resume_count']++;
1432
  if ($status['resume_count'] > $max_resume_count)
1433
  {
1434
- $message = __('Too many resumption attempts.', 'wpvivid');
1435
  if ($error !== false)
1436
  {
1437
  $message.= 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
@@ -1457,7 +1461,7 @@ class WPvivid {
1457
  $status['resume_count']++;
1458
  if ($status['resume_count'] > $max_resume_count)
1459
  {
1460
- $message = __('Too many resumption attempts.', 'wpvivid');
1461
  if ($error !== false)
1462
  {
1463
  $message.= 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
@@ -1487,7 +1491,7 @@ class WPvivid {
1487
  {
1488
  $message = 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
1489
  } else {
1490
- $message = __('Backup timed out. Please set the value of PHP script execution timeout to '.$time_start.' in plugin settings.', 'wpvivid');
1491
  }
1492
  WPvivid_taskmanager::update_backup_task_status($task_id, false, 'error', false, $status['resume_count'], $message);
1493
  }
@@ -1582,7 +1586,7 @@ class WPvivid {
1582
  $status['resume_count']++;
1583
  if($status['resume_count']>$max_resume_count)
1584
  {
1585
- $message=__('Too many resumption attempts.', 'wpvivid');
1586
  $task=WPvivid_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1587
  //WPvivid_error_log::create_error_log($this->wpvivid_log->log_file);
1588
  do_action('wpvivid_handle_backup_failed',$task, true);
@@ -1590,7 +1594,7 @@ class WPvivid {
1590
  else
1591
  {
1592
  $this->check_cancel_backup($task_id);
1593
- $message=__('Task timed out.', 'wpvivid');
1594
  if($this->add_resume_event($task_id))
1595
  {
1596
  WPvivid_taskmanager::update_backup_task_status($task_id,false,'wait_resume',false,$status['resume_count']);
@@ -1702,7 +1706,7 @@ class WPvivid {
1702
  $status['resume_count']++;
1703
  if($status['resume_count']>$max_resume_count)
1704
  {
1705
- $message=__('Too many resumption attempts.', 'wpvivid');
1706
  $task=WPvivid_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1707
  //WPvivid_error_log::create_error_log($this->wpvivid_log->log_file);
1708
  do_action('wpvivid_handle_backup_failed',$task, true);
@@ -1710,7 +1714,7 @@ class WPvivid {
1710
  else
1711
  {
1712
  $this->check_cancel_backup($task_id);
1713
- $message=__('Task timed out.', 'wpvivid');
1714
  if($this->add_resume_event($task_id))
1715
  {
1716
  WPvivid_taskmanager::update_backup_task_status($task_id,false,'wait_resume',false,$status['resume_count']);
@@ -2481,7 +2485,7 @@ class WPvivid {
2481
  if(!$backup)
2482
  {
2483
  $ret['result']='failed';
2484
- $ret['error']=__('Retrieving the backup(s) information failed while deleting the selected backup(s). Please try again later.', 'wpvivid');
2485
  return $ret;
2486
  }
2487
 
@@ -2491,7 +2495,7 @@ class WPvivid {
2491
  if($force==0)
2492
  {
2493
  $ret['result']='failed';
2494
- $ret['error']=__('Unable to delete the locked backup. Please unlock it first and try again.', 'wpvivid');
2495
  return $ret;
2496
  }
2497
  }
@@ -2594,7 +2598,7 @@ class WPvivid {
2594
  $default = array();
2595
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
2596
  $ret['remote_array'] = $remote_array;
2597
- $success_msg = __('You have successfully added a remote storage.', 'wpvivid');
2598
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
2599
  }
2600
  else{
@@ -2646,7 +2650,7 @@ class WPvivid {
2646
  $ret['remote_storage'] = $remote_storage;
2647
  } else {
2648
  $ret['result'] = 'failed';
2649
- $ret['error'] = __('Fail to delete the remote storage, can not retrieve the storage infomation. Please try again.', 'wpvivid');
2650
  }
2651
  }
2652
  catch (Exception $error) {
@@ -2674,12 +2678,13 @@ class WPvivid {
2674
  $id = sanitize_key($_POST['remote_id']);
2675
  $remoteslist = WPvivid_Setting::get_all_remote_options();
2676
  $ret['result'] = WPVIVID_FAILED;
2677
- $ret['error'] = __('Failed to get the remote storage information. Please try again later.', 'wpvivid');
2678
  foreach ($remoteslist as $key => $value) {
2679
  if ($key == $id) {
2680
  if ($key === 'remote_selected') {
2681
  continue;
2682
  }
 
2683
  $ret = $value;
2684
  $ret['result'] = WPVIVID_SUCCESS;
2685
  break;
@@ -3418,7 +3423,7 @@ class WPvivid {
3418
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3419
  }
3420
  else {
3421
- $message = __('restore failed error unknown', 'wpvivid');
3422
  $this->restore_data->delete_temp_files();
3423
  $this->restore_data->update_error($message);
3424
  $this->restore_data->write_log($message,'error');
@@ -3451,7 +3456,7 @@ class WPvivid {
3451
  die();
3452
  } else {
3453
  $ret['result'] = 'failed';
3454
- $ret['error'] = __('The restore file not found. Please verify the file exists.', 'wpvivid');
3455
  echo json_encode($ret);
3456
  die();
3457
  }
@@ -3563,7 +3568,7 @@ class WPvivid {
3563
  $html='';
3564
  $message=WPvivid_Setting::get_last_backup_message('wpvivid_last_msg');
3565
  if(empty($message)){
3566
- $last_message=__('The last backup message not found.', 'wpvivid');
3567
  }
3568
  else{
3569
  if($message['status']['str'] == 'completed'){
@@ -3579,10 +3584,10 @@ class WPvivid {
3579
  $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>';
3580
  }
3581
  else{
3582
- $last_message=__('The last backup message not found.', 'wpvivid');
3583
  }
3584
  }
3585
- $html .= '<strong>'.__('Last Backup: ', 'wpvivid').'</strong>'.$last_message;
3586
  return $html;
3587
  }
3588
 
@@ -3652,23 +3657,23 @@ class WPvivid {
3652
  <div class="action-progress-bar-percent" id="wpvivid_action_progress_bar_percent" style="height:24px;width:' . $list_tasks[$task['id']]['task_info']['backup_percent'] . '"></div>
3653
  </div>
3654
  <div id="wpvivid_estimate_backup_info" style="float:left; ' . $list_tasks[$task['id']]['task_info']['display_estimate_backup'] . '">
3655
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Database Size:', 'wpvivid') . '</span><span id="wpvivid_backup_database_size">' . $list_tasks[$task['id']]['task_info']['db_size'] . '</span></div>
3656
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('File Size:', 'wpvivid') . '</span><span id="wpvivid_backup_file_size">' . $list_tasks[$task['id']]['task_info']['file_size'] . '</span></div>
3657
  </div>
3658
  <div id="wpvivid_estimate_upload_info" style="float: left;">
3659
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Total Size:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['total'] . '</span></div>
3660
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Uploaded:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['upload'] . '</span></div>
3661
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Speed:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['speed'] . '</span></div>
3662
  </div>
3663
  <div style="float: left;">
3664
- <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Network Connection:', 'wpvivid') . '</span><span>' . $list_tasks[$task['id']]['task_info']['network_connection'] . '</span></div>
3665
  </div>
3666
  <div style="clear:both;"></div>
3667
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
3668
  <div style="clear: both;"></div>
3669
  <div>
3670
- <div id="wpvivid_backup_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_cancel_btn" type="submit" value="' . esc_attr('Cancel', 'wpvivid') . '" style="' . $list_tasks[$task['id']]['task_info']['css_btn_cancel'] . '" /></div>
3671
- <div id="wpvivid_backup_log" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_log_btn" type="submit" value="' . esc_attr('Log', 'wpvivid') . '" style="' . $list_tasks[$task['id']]['task_info']['css_btn_log'] . '" /></div>
3672
  </div>
3673
  <div style="clear: both;"></div>';
3674
  }
@@ -3679,7 +3684,7 @@ class WPvivid {
3679
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_backup_success_count');
3680
  if(!empty($backup_success_count)){
3681
  //$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.';
3682
- $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);
3683
  $success_notice_html='<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
3684
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
3685
  <span class="screen-reader-text">Dismiss this notice.</span>
@@ -3772,7 +3777,7 @@ class WPvivid {
3772
  fclose($tempfile);
3773
  } else {
3774
  $ret['result'] = 'failed';
3775
- $ret['error'] = __('Getting backup directory failed. Please try again later.', 'wpvivid');
3776
  }
3777
 
3778
  }
@@ -3967,7 +3972,7 @@ class WPvivid {
3967
  if($options['log']=='0' && $options['backup_cache']=='0' && $options['junk_files']=='0' && $options['old_files']=='0')
3968
  {
3969
  $ret['result']=WPVIVID_FAILED;
3970
- $ret['msg']=__('Choose at least one type of junk files for deleting.', 'wpvivid');
3971
  echo json_encode($ret);
3972
  die();
3973
  }
@@ -4041,7 +4046,7 @@ class WPvivid {
4041
  }
4042
 
4043
  $ret['result']='success';
4044
- $ret['msg']=__('The selected junk flies have been deleted.', 'wpvivid');
4045
  $ret['data']=$this->_junk_files_info();
4046
  $html = '';
4047
  $html = apply_filters('wpvivid_get_log_list', $html);
@@ -4212,7 +4217,7 @@ class WPvivid {
4212
  try {
4213
  if (!isset($_POST['remote_storage']) || empty($_POST['remote_storage']) || !is_array($_POST['remote_storage'])) {
4214
  $ret['result'] = WPVIVID_FAILED;
4215
- $ret['error'] = __('Choose one storage from the list to be the default storage.', 'wpvivid');
4216
  echo json_encode($ret);
4217
  die();
4218
  }
@@ -4468,7 +4473,7 @@ class WPvivid {
4468
  $ret['result']=WPVIVID_FAILED;
4469
  if(!isset($data['max_file_size']))
4470
  {
4471
- $ret['error']=__('The maximum zip file size is required.', 'wpvivid');
4472
  return $ret;
4473
  }
4474
 
@@ -4476,46 +4481,46 @@ class WPvivid {
4476
 
4477
  if(empty($data['max_file_size']) && $data['max_file_size'] != '0')
4478
  {
4479
- $ret['error']=__('The maximum zip file size is required.', 'wpvivid');
4480
  return $ret;
4481
  }
4482
 
4483
  if(!isset($data['exclude_file_size']))
4484
  {
4485
- $ret['error']=__('The size for excluded files is required.', 'wpvivid');
4486
  }
4487
 
4488
  $data['exclude_file_size']=sanitize_text_field($data['exclude_file_size']);
4489
 
4490
  if(empty($data['exclude_file_size']) && $data['exclude_file_size'] != '0')
4491
  {
4492
- $ret['error']=__('The size for excluded files is required.', 'wpvivid');
4493
  return $ret;
4494
  }
4495
 
4496
  if(!isset($data['max_execution_time']))
4497
  {
4498
- $ret['error']=__('The maximum execution time for PHP script is required.', 'wpvivid');
4499
  }
4500
 
4501
  $data['max_execution_time']=sanitize_text_field($data['max_execution_time']);
4502
 
4503
  if(empty($data['max_execution_time']) && $data['max_execution_time'] != '0')
4504
  {
4505
- $ret['error']=__('The maximum execution time for PHP script is required.', 'wpvivid');
4506
  return $ret;
4507
  }
4508
 
4509
  if(!isset($data['path']))
4510
  {
4511
- $ret['error']=__('The local storage path is required.', 'wpvivid');
4512
  }
4513
 
4514
  $data['path']=sanitize_text_field($data['path']);
4515
 
4516
  if(empty($data['path']))
4517
  {
4518
- $ret['error']=__('The local storage path is required.', 'wpvivid');
4519
  return $ret;
4520
  }
4521
 
@@ -4525,7 +4530,7 @@ class WPvivid {
4525
  {
4526
  if(empty($data['send_to']))
4527
  {
4528
- $ret['error']=__('An email address is required.', 'wpvivid');
4529
  return $ret;
4530
  }
4531
  }
@@ -4534,11 +4539,11 @@ class WPvivid {
4534
  if (class_exists('PDO')) {
4535
  $extensions = get_loaded_extensions();
4536
  if (!array_search('pdo_mysql', $extensions)) {
4537
- $ret['error'] = __('The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method.', 'wpvivid');
4538
  return $ret;
4539
  }
4540
  } else {
4541
- $ret['error'] = __('The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method.', 'wpvivid');
4542
  return $ret;
4543
  }
4544
  }
@@ -4560,7 +4565,7 @@ class WPvivid {
4560
  if($data['save_local_remote'] == 'remote'){
4561
  $remote_storage=WPvivid_Setting::get_remote_options();
4562
  if($remote_storage == false) {
4563
- $ret['error']=__('There is no default remote storage configured. Please set it up first.', 'wpvivid');
4564
  return $ret;
4565
  }
4566
  }
@@ -4616,7 +4621,7 @@ class WPvivid {
4616
  $offset=get_option('gmt_offset');
4617
  $date_format = date("Ymd",time()+$offset*60*60);
4618
  $time_format = date("His",time()+$offset*60*60);
4619
- $export_file_name = 'wpvivid_setting-'.$domain_tran.'-'.$date_format.'-'.$time_format.'.json';
4620
  if (!headers_sent()) {
4621
  header('Content-Disposition: attachment; filename='.$export_file_name);
4622
  //header('Content-type: application/json');
@@ -4657,7 +4662,7 @@ class WPvivid {
4657
  echo json_encode($ret);
4658
  } else {
4659
  $ret['result'] = 'failed';
4660
- $ret['error'] = __('The selected file is not the setting file for WPvivid. Please upload the right file.', 'wpvivid');
4661
  echo json_encode($ret);
4662
  }
4663
  }
@@ -4679,7 +4684,7 @@ class WPvivid {
4679
  $send_to = sanitize_email($_POST['send_to']);
4680
  if (empty($send_to)) {
4681
  $ret['result'] = 'failed';
4682
- $ret['error'] = __('Invalid email address', 'wpvivid');
4683
  echo json_encode($ret);
4684
  } else {
4685
  $subject = 'WPvivid Test Mail';
@@ -4687,7 +4692,7 @@ class WPvivid {
4687
  $headers = array('Content-Type: text/html; charset=UTF-8');
4688
  if (wp_mail($send_to, $subject, $body, $headers) === false) {
4689
  $ret['result'] = 'failed';
4690
- $ret['error'] = __('Unable to send email. Please check the configuration of email server.', 'wpvivid');
4691
  } else {
4692
  $ret['result'] = 'success';
4693
  }
@@ -4820,11 +4825,11 @@ class WPvivid {
4820
  $value['des'] = 'N/A';
4821
  }
4822
  $value['path'] = str_replace('\\', '/', $value['path']);
4823
- $html .= '<tr style="'.esc_attr($log_tr_display, 'wpvivid').'">
4824
- <td class="row-title"><label for="tablecell">'.__($value['time'], 'wpvivid').'</label>
4825
  </td>
4826
- <td>'.__($value['des'], 'wpvivid').'</td>
4827
- <td>'.__($value['file_name'], 'wpvivid').'</td>
4828
  <td>
4829
  <a onclick="wpvivid_read_log(\''.'wpvivid_view_log'.'\', \''.$value['path'].'\')" style="cursor:pointer;">
4830
  <img src="'.esc_url(WPVIVID_PLUGIN_URL.$pic_log).'" style="vertical-align:middle;">Log
@@ -4963,7 +4968,7 @@ class WPvivid {
4963
  $path = sanitize_text_field($_POST['path']);
4964
  if (!file_exists($path)) {
4965
  $json['result'] = 'failed';
4966
- $json['error'] = __('The log not found.', 'wpvivid');
4967
  echo json_encode($json);
4968
  die();
4969
  }
@@ -4972,7 +4977,7 @@ class WPvivid {
4972
 
4973
  if (!$file) {
4974
  $json['result'] = 'failed';
4975
- $json['error'] = __('Unable to open the log file.', 'wpvivid');
4976
  echo json_encode($json);
4977
  die();
4978
  }
@@ -4988,7 +4993,7 @@ class WPvivid {
4988
  echo json_encode($json);
4989
  } else {
4990
  $json['result'] = 'failed';
4991
- $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid');
4992
  echo json_encode($json);
4993
  }
4994
  }
@@ -5041,11 +5046,27 @@ class WPvivid {
5041
  }
5042
  ini_set('max_execution_time', $limit);
5043
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5044
 
5045
  $ret['data']['max_execution_time'] = ini_get("max_execution_time");
5046
  $ret['data']['max_input_vars'] = ini_get("max_input_vars");
5047
  $ret['data']['max_input_vars'] = ini_get("max_input_vars");
5048
- $ret['data']['timezone'] = date_default_timezone_get();
5049
  $ret['data']['OS'] = php_uname();
5050
  $ret['data']['memory_current'] = $this->formatBytes(memory_get_usage());
5051
  $ret['data']['memory_peak'] = $this->formatBytes(memory_get_peak_usage());
@@ -5243,16 +5264,16 @@ class WPvivid {
5243
 
5244
  $hide = 'hide';
5245
  $html .= '<tr style="' . $row_style . '">
5246
- <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid') . '" value="' . esc_attr($key, 'wpvivid') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5247
  <td class="tablelistcolumn">
5248
  <div style="float:left;padding:0 10px 10px 0;">
5249
- <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M d, Y H:i', $backup_time), 'wpvivid') . '</div>
5250
  <div class="common-table">
5251
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5252
- <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;"/>
5253
  </span>
5254
- <span style="margin:0;">|</span> <span>' . __('Type:', 'wpvivid') . '</span><span>' . __($value['type'], 'wpvivid') . '</span>
5255
- <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>
5256
  </div>
5257
  </div>
5258
  </td>
@@ -5260,17 +5281,17 @@ class WPvivid {
5260
  <div style="float:left;padding:10px 10px 10px 0;">' . $remote_pic_html . '</div>
5261
  </td>
5262
  <td class="tablelistcolumn" style="min-width:100px;">
5263
- <div id="wpvivid_file_part_' . __($key, 'wpvivid') . '" style="float:left;padding:10px 10px 10px 0;">
5264
  <div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' . $key . '\', \'' . $list_name . '\');" title="Prepare to download the backup">
5265
- <img id="wpvivid_download_btn_' . __($key, 'wpvivid') . '" src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/download.png') . '" style="vertical-align:middle;" /><span>' . __('Download', 'wpvivid') . '</span>
5266
- <div class="spinner" id="wpvivid_download_loading_' . __($key, 'wpvivid') . '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>
5267
  </div>
5268
  </div>
5269
  </td>
5270
  <td class="tablelistcolumn" style="min-width:100px;">
5271
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5272
- ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid') . '\',\'' . __(date('M d, Y H:i', $backup_time), 'wpvivid') . '\',\'' . __($value['type'], 'wpvivid') . '\');" style="float:left;padding:10px 10px 10px 0;">
5273
- <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid') . '</span>
5274
  </div>
5275
  </div>
5276
  </td>
@@ -5311,14 +5332,14 @@ class WPvivid {
5311
  $storage_type = $value['type'];
5312
  $storage_type=apply_filters('wpvivid_storage_provider_tran', $storage_type);
5313
  $html .= '<tr>
5314
- <td>'.__($i++, 'wpvivid').'</td>
5315
- <td><input type="checkbox" name="remote_storage" value="'.esc_attr($key, 'wpvivid').'" '.esc_attr($check_status, 'wpvivid').' /></td>
5316
- <td>'.__($storage_type, 'wpvivid').'</td>
5317
- <td class="row-title"><label for="tablecell">'.__($value['name'], 'wpvivid').'</label></td>
5318
  <td>
5319
- <div style="float: left;"><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Edit.png').'" onclick="click_retrieve_remote_storage(\''.__($key, 'wpvivid').'\',\''.__($value['type'], 'wpvivid').'\',\''.__($value['name'], 'wpvivid').'\'
5320
  );" style="vertical-align:middle; cursor:pointer;" title="Edit the remote storage"/></div>
5321
- <div><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Delete.png').'" onclick="wpvivid_delete_remote_storage(\''.__($key, 'wpvivid').'\'
5322
  );" style="vertical-align:middle; cursor:pointer;" title="Remove the remote storage"/></div>
5323
  </td>
5324
  </tr>';
@@ -5405,11 +5426,11 @@ class WPvivid {
5405
  $html .= '<fieldset>
5406
  <label title="">
5407
  <input type="radio" option="schedule" name="save_local_remote" value="local" '.$backup_local.' />
5408
- <span>'.__( 'Save backups on localhost (web server)', 'wpvivid' ).'</span>
5409
  </label><br>
5410
  <label title="">
5411
  <input type="radio" option="schedule" name="save_local_remote" value="remote" '.$backup_remote.' />
5412
- <span>'.__( 'Send backups to remote storage (choose this option, the local backup will be deleted after uploading to remote storage completely)', 'wpvivid' ).'</span>
5413
  </label>
5414
  <label style="display: none;">
5415
  <input type="checkbox" option="schedule" name="lock" value="0" />
@@ -5577,12 +5598,12 @@ class WPvivid {
5577
  try {
5578
  if (!isset($_POST['user_mail']) || empty($_POST['user_mail'])) {
5579
  $ret['result'] = 'failed';
5580
- $ret['error'] = __('User\'s email address is required.', 'wpvivid');
5581
  } else {
5582
  $pattern = '/^[a-z0-9]+([._-][a-z0-9]+)*@([0-9a-z]+\.[a-z]{2,14}(\.[a-z]{2})?)$/i';
5583
  if (!preg_match($pattern, $_POST['user_mail'])) {
5584
  $ret['result'] = 'failed';
5585
- $ret['error'] = __('Please enter a valid email address.', 'wpvivid');
5586
  } else {
5587
  $this->ajax_check_security();
5588
  $ret = WPvivid_mail_report::wpvivid_send_debug_info($_POST['user_mail'],$_POST['server_type'],$_POST['host_provider'],$_POST['comment']);
57
 
58
  public $admin;
59
 
60
+ public $interface_mainwp;
61
+
62
  public function __construct()
63
  {
64
  $this->version = WPVIVID_PLUGIN_VERSION;
130
  add_filter('wpvivid_set_mail_body', array($this, 'set_mail_body'), 10, 2);
131
 
132
  add_filter('wpvivid_get_oldest_backup_ids', array($this, 'get_oldest_backup_ids'), 10, 2);
133
+
134
  //
135
  //Initialisation schedule hook
136
  $this->init_cron();
201
  $this->interface_mainwp = new WPvivid_Interface_MainWP();
202
  $send_to_site=new WPvivid_Send_to_site();
203
  $export_import = new WPvivid_Export_Import();
204
+
205
  }
206
 
207
  public function init_pclzip_tmp_folder()
512
  $ret['result']=WPVIVID_FAILED;
513
  if(!isset($data['backup_files']))
514
  {
515
+ $ret['error']=__('A backup type is required.', 'wpvivid-backuprestore');
516
  return $ret;
517
  }
518
 
520
 
521
  if(empty($data['backup_files']))
522
  {
523
+ $ret['error']=__('A backup type is required.', 'wpvivid-backuprestore');
524
  return $ret;
525
  }
526
 
527
  if(!isset($data['local']) && !isset($data['remote']))
528
  {
529
+ $ret['error']=__('Choose at least one storage location for backups.', 'wpvivid-backuprestore');
530
  return $ret;
531
  }
532
 
535
 
536
  if(empty($data['local']) && empty($data['remote']))
537
  {
538
+ $ret['error']=__('Choose at least one storage location for backups.', 'wpvivid-backuprestore');
539
  return $ret;
540
  }
541
 
546
  $remote_storage = WPvivid_Setting::get_remote_options();
547
  if ($remote_storage == false)
548
  {
549
+ $ret['error'] = __('There is no default remote storage configured. Please set it up first.', 'wpvivid-backuprestore');
550
  return $ret;
551
  }
552
  }
589
  try {
590
  if (!isset($_POST['task_id']) || empty($_POST['task_id']) || !is_string($_POST['task_id'])) {
591
  $ret['result'] = 'failed';
592
+ $ret['error'] = __('Error occurred while parsing the request data. Please try to run backup again.', 'wpvivid-backuprestore');
593
  echo json_encode($ret);
594
  die();
595
  }
598
  //Start backup site
599
  if (WPvivid_taskmanager::is_tasks_backup_running()) {
600
  $ret['result'] = 'failed';
601
+ $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
602
  echo json_encode($ret);
603
  die();
604
  }
637
  if (!$backup)
638
  {
639
  $json['result'] = 'failed';
640
+ $json['error'] = __('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid-backuprestore');
641
  echo json_encode($json);
642
  die();
643
  }
645
  if (!file_exists($backup['log']))
646
  {
647
  $json['result'] = 'failed';
648
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
649
  echo json_encode($json);
650
  die();
651
  }
655
  if (!$file)
656
  {
657
  $json['result'] = 'failed';
658
+ $json['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
659
  echo json_encode($json);
660
  die();
661
  }
672
  echo json_encode($json);
673
  } else {
674
  $json['result'] = 'failed';
675
+ $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
676
  echo json_encode($json);
677
  }
678
  }
696
  try {
697
  if (!isset($_POST['log_file_name']) || empty($_POST['log_file_name']) || !is_string($_POST['log_file_name'])) {
698
  $json['result'] = 'failed';
699
+ $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
700
  echo json_encode($json);
701
  die();
702
  }
705
 
706
  if (!file_exists($log_file_name)) {
707
  $json['result'] = 'failed';
708
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
709
  echo json_encode($json);
710
  die();
711
  }
714
 
715
  if (!$file) {
716
  $json['result'] = 'failed';
717
+ $json['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
718
  echo json_encode($json);
719
  die();
720
  }
751
  $option = WPvivid_taskmanager::get_task_options($backup_task_id, 'log_file_name');
752
  if (!$option) {
753
  $json['result'] = 'failed';
754
+ $json['error'] = __('Retrieving the backup information failed while showing log. Please try again later.', 'wpvivid-backuprestore');
755
  echo json_encode($json);
756
  die();
757
  }
760
 
761
  if (!file_exists($log_file_name)) {
762
  $json['result'] = 'failed';
763
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
764
  echo json_encode($json);
765
  die();
766
  }
769
 
770
  if (!$file) {
771
  $json['result'] = 'failed';
772
+ $json['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
773
  echo json_encode($json);
774
  die();
775
  }
785
  echo json_encode($json);
786
  } else {
787
  $json['result'] = 'failed';
788
+ $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
789
  echo json_encode($json);
790
  }
791
  }
911
  if (WPvivid_taskmanager::is_tasks_backup_running())
912
  {
913
  $ret['result'] = 'failed';
914
+ $ret['error'] = __('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
915
  echo json_encode($ret);
916
  die();
917
  }
1057
  if(WPvivid_taskmanager::is_tasks_backup_running())
1058
  {
1059
  $ret['result']='failed';
1060
+ $ret['error']=__('A task is already running. Please wait until the running task is complete, and try again.', 'wpvivid-backuprestore');
1061
  return $ret;
1062
  }
1063
 
1413
 
1414
  if ($status['resume_count'] > $max_resume_count)
1415
  {
1416
+ $message = __('Too many resumption attempts.', 'wpvivid-backuprestore');
1417
  $task = WPvivid_taskmanager::update_backup_task_status($task_id, false, 'error', false, $status['resume_count'], $message);
1418
  do_action('wpvivid_handle_backup_failed', $task, true);
1419
  } else {
1435
  $status['resume_count']++;
1436
  if ($status['resume_count'] > $max_resume_count)
1437
  {
1438
+ $message = __('Too many resumption attempts.', 'wpvivid-backuprestore');
1439
  if ($error !== false)
1440
  {
1441
  $message.= 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
1461
  $status['resume_count']++;
1462
  if ($status['resume_count'] > $max_resume_count)
1463
  {
1464
+ $message = __('Too many resumption attempts.', 'wpvivid-backuprestore');
1465
  if ($error !== false)
1466
  {
1467
  $message.= 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
1491
  {
1492
  $message = 'type: '. $error['type'] . ', ' . $error['message'] . ' file:' . $error['file'] . ' line:' . $error['line'];
1493
  } else {
1494
+ $message = __('Backup timed out. Please set the value of PHP script execution timeout to '.$time_start.' in plugin settings.', 'wpvivid-backuprestore');
1495
  }
1496
  WPvivid_taskmanager::update_backup_task_status($task_id, false, 'error', false, $status['resume_count'], $message);
1497
  }
1586
  $status['resume_count']++;
1587
  if($status['resume_count']>$max_resume_count)
1588
  {
1589
+ $message=__('Too many resumption attempts.', 'wpvivid-backuprestore');
1590
  $task=WPvivid_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1591
  //WPvivid_error_log::create_error_log($this->wpvivid_log->log_file);
1592
  do_action('wpvivid_handle_backup_failed',$task, true);
1594
  else
1595
  {
1596
  $this->check_cancel_backup($task_id);
1597
+ $message=__('Task timed out.', 'wpvivid-backuprestore');
1598
  if($this->add_resume_event($task_id))
1599
  {
1600
  WPvivid_taskmanager::update_backup_task_status($task_id,false,'wait_resume',false,$status['resume_count']);
1706
  $status['resume_count']++;
1707
  if($status['resume_count']>$max_resume_count)
1708
  {
1709
+ $message=__('Too many resumption attempts.', 'wpvivid-backuprestore');
1710
  $task=WPvivid_taskmanager::update_backup_task_status($task_id,false,'error',false,$status['resume_count'],$message);
1711
  //WPvivid_error_log::create_error_log($this->wpvivid_log->log_file);
1712
  do_action('wpvivid_handle_backup_failed',$task, true);
1714
  else
1715
  {
1716
  $this->check_cancel_backup($task_id);
1717
+ $message=__('Task timed out.', 'wpvivid-backuprestore');
1718
  if($this->add_resume_event($task_id))
1719
  {
1720
  WPvivid_taskmanager::update_backup_task_status($task_id,false,'wait_resume',false,$status['resume_count']);
2485
  if(!$backup)
2486
  {
2487
  $ret['result']='failed';
2488
+ $ret['error']=__('Retrieving the backup(s) information failed while deleting the selected backup(s). Please try again later.', 'wpvivid-backuprestore');
2489
  return $ret;
2490
  }
2491
 
2495
  if($force==0)
2496
  {
2497
  $ret['result']='failed';
2498
+ $ret['error']=__('Unable to delete the locked backup. Please unlock it first and try again.', 'wpvivid-backuprestore');
2499
  return $ret;
2500
  }
2501
  }
2598
  $default = array();
2599
  $remote_array = apply_filters('wpvivid_archieve_remote_array', $default);
2600
  $ret['remote_array'] = $remote_array;
2601
+ $success_msg = __('You have successfully added a remote storage.', 'wpvivid-backuprestore');
2602
  $ret['notice'] = apply_filters('wpvivid_add_remote_notice', true, $success_msg);
2603
  }
2604
  else{
2650
  $ret['remote_storage'] = $remote_storage;
2651
  } else {
2652
  $ret['result'] = 'failed';
2653
+ $ret['error'] = __('Fail to delete the remote storage, can not retrieve the storage infomation. Please try again.', 'wpvivid-backuprestore');
2654
  }
2655
  }
2656
  catch (Exception $error) {
2678
  $id = sanitize_key($_POST['remote_id']);
2679
  $remoteslist = WPvivid_Setting::get_all_remote_options();
2680
  $ret['result'] = WPVIVID_FAILED;
2681
+ $ret['error'] = __('Failed to get the remote storage information. Please try again later.', 'wpvivid-backuprestore');
2682
  foreach ($remoteslist as $key => $value) {
2683
  if ($key == $id) {
2684
  if ($key === 'remote_selected') {
2685
  continue;
2686
  }
2687
+ $value = apply_filters('wpvivid_encrypt_remote_password', $value);
2688
  $ret = $value;
2689
  $ret['result'] = WPVIVID_SUCCESS;
2690
  break;
3423
  echo json_encode(array('result'=>WPVIVID_FAILED,'error'=>$message));
3424
  }
3425
  else {
3426
+ $message = __('restore failed error unknown', 'wpvivid-backuprestore');
3427
  $this->restore_data->delete_temp_files();
3428
  $this->restore_data->update_error($message);
3429
  $this->restore_data->write_log($message,'error');
3456
  die();
3457
  } else {
3458
  $ret['result'] = 'failed';
3459
+ $ret['error'] = __('The restore file not found. Please verify the file exists.', 'wpvivid-backuprestore');
3460
  echo json_encode($ret);
3461
  die();
3462
  }
3568
  $html='';
3569
  $message=WPvivid_Setting::get_last_backup_message('wpvivid_last_msg');
3570
  if(empty($message)){
3571
+ $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
3572
  }
3573
  else{
3574
  if($message['status']['str'] == 'completed'){
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
  else{
3587
+ $last_message=__('The last backup message not found.', 'wpvivid-backuprestore');
3588
  }
3589
  }
3590
+ $html .= '<strong>'.__('Last Backup: ', 'wpvivid-backuprestore').'</strong>'.$last_message;
3591
  return $html;
3592
  }
3593
 
3657
  <div class="action-progress-bar-percent" id="wpvivid_action_progress_bar_percent" style="height:24px;width:' . $list_tasks[$task['id']]['task_info']['backup_percent'] . '"></div>
3658
  </div>
3659
  <div id="wpvivid_estimate_backup_info" style="float:left; ' . $list_tasks[$task['id']]['task_info']['display_estimate_backup'] . '">
3660
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Database Size:', 'wpvivid-backuprestore') . '</span><span id="wpvivid_backup_database_size">' . $list_tasks[$task['id']]['task_info']['db_size'] . '</span></div>
3661
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('File Size:', 'wpvivid-backuprestore') . '</span><span id="wpvivid_backup_file_size">' . $list_tasks[$task['id']]['task_info']['file_size'] . '</span></div>
3662
  </div>
3663
  <div id="wpvivid_estimate_upload_info" style="float: left;">
3664
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Total Size:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['total'] . '</span></div>
3665
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Uploaded:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['upload'] . '</span></div>
3666
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Speed:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['speed'] . '</span></div>
3667
  </div>
3668
  <div style="float: left;">
3669
+ <div class="backup-basic-info"><span class="wpvivid-element-space-right">' . __('Network Connection:', 'wpvivid-backuprestore') . '</span><span>' . $list_tasks[$task['id']]['task_info']['network_connection'] . '</span></div>
3670
  </div>
3671
  <div style="clear:both;"></div>
3672
  <div style="margin-left:10px; float: left; width:100%;"><p id="wpvivid_current_doing">' . $list_tasks[$task['id']]['task_info']['descript'] . '</p></div>
3673
  <div style="clear: both;"></div>
3674
  <div>
3675
+ <div id="wpvivid_backup_cancel" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_cancel_btn" type="submit" value="' . esc_attr('Cancel', 'wpvivid-backuprestore') . '" style="' . $list_tasks[$task['id']]['task_info']['css_btn_cancel'] . '" /></div>
3676
+ <div id="wpvivid_backup_log" class="backup-log-btn"><input class="button-primary" id="wpvivid_backup_log_btn" type="submit" value="' . esc_attr('Log', 'wpvivid-backuprestore') . '" style="' . $list_tasks[$task['id']]['task_info']['css_btn_log'] . '" /></div>
3677
  </div>
3678
  <div style="clear: both;"></div>';
3679
  }
3684
  $backup_success_count=WPvivid_Setting::get_option('wpvivid_backup_success_count');
3685
  if(!empty($backup_success_count)){
3686
  //$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.';
3687
+ $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-backuprestore'), $backup_success_count);
3688
  $success_notice_html='<div class="notice notice-success is-dismissible inline"><p>'.$notice_msg.'</p>
3689
  <button type="button" class="notice-dismiss" onclick="click_dismiss_notice(this);">
3690
  <span class="screen-reader-text">Dismiss this notice.</span>
3777
  fclose($tempfile);
3778
  } else {
3779
  $ret['result'] = 'failed';
3780
+ $ret['error'] = __('Getting backup directory failed. Please try again later.', 'wpvivid-backuprestore');
3781
  }
3782
 
3783
  }
3972
  if($options['log']=='0' && $options['backup_cache']=='0' && $options['junk_files']=='0' && $options['old_files']=='0')
3973
  {
3974
  $ret['result']=WPVIVID_FAILED;
3975
+ $ret['msg']=__('Choose at least one type of junk files for deleting.', 'wpvivid-backuprestore');
3976
  echo json_encode($ret);
3977
  die();
3978
  }
4046
  }
4047
 
4048
  $ret['result']='success';
4049
+ $ret['msg']=__('The selected junk flies have been deleted.', 'wpvivid-backuprestore');
4050
  $ret['data']=$this->_junk_files_info();
4051
  $html = '';
4052
  $html = apply_filters('wpvivid_get_log_list', $html);
4217
  try {
4218
  if (!isset($_POST['remote_storage']) || empty($_POST['remote_storage']) || !is_array($_POST['remote_storage'])) {
4219
  $ret['result'] = WPVIVID_FAILED;
4220
+ $ret['error'] = __('Choose one storage from the list to be the default storage.', 'wpvivid-backuprestore');
4221
  echo json_encode($ret);
4222
  die();
4223
  }
4473
  $ret['result']=WPVIVID_FAILED;
4474
  if(!isset($data['max_file_size']))
4475
  {
4476
+ $ret['error']=__('The maximum zip file size is required.', 'wpvivid-backuprestore');
4477
  return $ret;
4478
  }
4479
 
4481
 
4482
  if(empty($data['max_file_size']) && $data['max_file_size'] != '0')
4483
  {
4484
+ $ret['error']=__('The maximum zip file size is required.', 'wpvivid-backuprestore');
4485
  return $ret;
4486
  }
4487
 
4488
  if(!isset($data['exclude_file_size']))
4489
  {
4490
+ $ret['error']=__('The size for excluded files is required.', 'wpvivid-backuprestore');
4491
  }
4492
 
4493
  $data['exclude_file_size']=sanitize_text_field($data['exclude_file_size']);
4494
 
4495
  if(empty($data['exclude_file_size']) && $data['exclude_file_size'] != '0')
4496
  {
4497
+ $ret['error']=__('The size for excluded files is required.', 'wpvivid-backuprestore');
4498
  return $ret;
4499
  }
4500
 
4501
  if(!isset($data['max_execution_time']))
4502
  {
4503
+ $ret['error']=__('The maximum execution time for PHP script is required.', 'wpvivid-backuprestore');
4504
  }
4505
 
4506
  $data['max_execution_time']=sanitize_text_field($data['max_execution_time']);
4507
 
4508
  if(empty($data['max_execution_time']) && $data['max_execution_time'] != '0')
4509
  {
4510
+ $ret['error']=__('The maximum execution time for PHP script is required.', 'wpvivid-backuprestore');
4511
  return $ret;
4512
  }
4513
 
4514
  if(!isset($data['path']))
4515
  {
4516
+ $ret['error']=__('The local storage path is required.', 'wpvivid-backuprestore');
4517
  }
4518
 
4519
  $data['path']=sanitize_text_field($data['path']);
4520
 
4521
  if(empty($data['path']))
4522
  {
4523
+ $ret['error']=__('The local storage path is required.', 'wpvivid-backuprestore');
4524
  return $ret;
4525
  }
4526
 
4530
  {
4531
  if(empty($data['send_to']))
4532
  {
4533
+ $ret['error']=__('An email address is required.', 'wpvivid-backuprestore');
4534
  return $ret;
4535
  }
4536
  }
4539
  if (class_exists('PDO')) {
4540
  $extensions = get_loaded_extensions();
4541
  if (!array_search('pdo_mysql', $extensions)) {
4542
+ $ret['error'] = __('The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method.', 'wpvivid-backuprestore');
4543
  return $ret;
4544
  }
4545
  } else {
4546
+ $ret['error'] = __('The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method.', 'wpvivid-backuprestore');
4547
  return $ret;
4548
  }
4549
  }
4565
  if($data['save_local_remote'] == 'remote'){
4566
  $remote_storage=WPvivid_Setting::get_remote_options();
4567
  if($remote_storage == false) {
4568
+ $ret['error']=__('There is no default remote storage configured. Please set it up first.', 'wpvivid-backuprestore');
4569
  return $ret;
4570
  }
4571
  }
4621
  $offset=get_option('gmt_offset');
4622
  $date_format = date("Ymd",time()+$offset*60*60);
4623
  $time_format = date("His",time()+$offset*60*60);
4624
+ $export_file_name = apply_filters('wpvivid_white_label_slug', 'wpvivid').'_setting-'.$domain_tran.'-'.$date_format.'-'.$time_format.'.json';
4625
  if (!headers_sent()) {
4626
  header('Content-Disposition: attachment; filename='.$export_file_name);
4627
  //header('Content-type: application/json');
4662
  echo json_encode($ret);
4663
  } else {
4664
  $ret['result'] = 'failed';
4665
+ $ret['error'] = __('The selected file is not the setting file for WPvivid. Please upload the right file.', 'wpvivid-backuprestore');
4666
  echo json_encode($ret);
4667
  }
4668
  }
4684
  $send_to = sanitize_email($_POST['send_to']);
4685
  if (empty($send_to)) {
4686
  $ret['result'] = 'failed';
4687
+ $ret['error'] = __('Invalid email address', 'wpvivid-backuprestore');
4688
  echo json_encode($ret);
4689
  } else {
4690
  $subject = 'WPvivid Test Mail';
4692
  $headers = array('Content-Type: text/html; charset=UTF-8');
4693
  if (wp_mail($send_to, $subject, $body, $headers) === false) {
4694
  $ret['result'] = 'failed';
4695
+ $ret['error'] = __('Unable to send email. Please check the configuration of email server.', 'wpvivid-backuprestore');
4696
  } else {
4697
  $ret['result'] = 'success';
4698
  }
4825
  $value['des'] = 'N/A';
4826
  }
4827
  $value['path'] = str_replace('\\', '/', $value['path']);
4828
+ $html .= '<tr style="'.esc_attr($log_tr_display, 'wpvivid-backuprestore').'">
4829
+ <td class="row-title"><label for="tablecell">'.__($value['time'], 'wpvivid-backuprestore').'</label>
4830
  </td>
4831
+ <td>'.__($value['des'], 'wpvivid-backuprestore').'</td>
4832
+ <td>'.__($value['file_name'], 'wpvivid-backuprestore').'</td>
4833
  <td>
4834
  <a onclick="wpvivid_read_log(\''.'wpvivid_view_log'.'\', \''.$value['path'].'\')" style="cursor:pointer;">
4835
  <img src="'.esc_url(WPVIVID_PLUGIN_URL.$pic_log).'" style="vertical-align:middle;">Log
4968
  $path = sanitize_text_field($_POST['path']);
4969
  if (!file_exists($path)) {
4970
  $json['result'] = 'failed';
4971
+ $json['error'] = __('The log not found.', 'wpvivid-backuprestore');
4972
  echo json_encode($json);
4973
  die();
4974
  }
4977
 
4978
  if (!$file) {
4979
  $json['result'] = 'failed';
4980
+ $json['error'] = __('Unable to open the log file.', 'wpvivid-backuprestore');
4981
  echo json_encode($json);
4982
  die();
4983
  }
4993
  echo json_encode($json);
4994
  } else {
4995
  $json['result'] = 'failed';
4996
+ $json['error'] = __('Reading the log failed. Please try again.', 'wpvivid-backuprestore');
4997
  echo json_encode($json);
4998
  }
4999
  }
5046
  }
5047
  ini_set('max_execution_time', $limit);
5048
 
5049
+ $current_offset = get_option( 'gmt_offset' );
5050
+ $timezone = get_option( 'timezone_string' );
5051
+
5052
+ if ( false !== strpos( $timezone, 'Etc/GMT' ) ) {
5053
+ $timezone = '';
5054
+ }
5055
+
5056
+ if ( empty( $timezone ) ) {
5057
+ if ( 0 == $current_offset ) {
5058
+ $timezone = 'UTC+0';
5059
+ } elseif ( $current_offset < 0 ) {
5060
+ $timezone = 'UTC' . $current_offset;
5061
+ } else {
5062
+ $timezone = 'UTC+' . $current_offset;
5063
+ }
5064
+ }
5065
 
5066
  $ret['data']['max_execution_time'] = ini_get("max_execution_time");
5067
  $ret['data']['max_input_vars'] = ini_get("max_input_vars");
5068
  $ret['data']['max_input_vars'] = ini_get("max_input_vars");
5069
+ $ret['data']['timezone'] = $timezone;//date_default_timezone_get();
5070
  $ret['data']['OS'] = php_uname();
5071
  $ret['data']['memory_current'] = $this->formatBytes(memory_get_usage());
5072
  $ret['data']['memory_peak'] = $this->formatBytes(memory_get_peak_usage());
5264
 
5265
  $hide = 'hide';
5266
  $html .= '<tr style="' . $row_style . '">
5267
+ <th class="check-column"><input name="check_backup" type="checkbox" id="' . esc_attr($key, 'wpvivid-backuprestore') . '" value="' . esc_attr($key, 'wpvivid-backuprestore') . '" onclick="wpvivid_click_check_backup(\'' . $key . '\', \'' . $list_name . '\');" /></th>
5268
  <td class="tablelistcolumn">
5269
  <div style="float:left;padding:0 10px 10px 0;">
5270
+ <div class="backuptime"><strong>' . $upload_title . '</strong>' . __(date('M d, Y H:i', $backup_time), 'wpvivid-backuprestore') . '</div>
5271
  <div class="common-table">
5272
  <span title="To lock the backup, the backup can only be deleted manually" id="wpvivid_lock_' . $key . '">
5273
+ <img src="' . esc_url(WPVIVID_PLUGIN_URL . $backup_lock) . '" name="' . esc_attr($lock_status, 'wpvivid-backuprestore') . '" onclick="wpvivid_set_backup_lock(\'' . $key . '\', \'' . $lock_status . '\');" style="vertical-align:middle; cursor:pointer;"/>
5274
  </span>
5275
+ <span style="margin:0;">|</span> <span>' . __('Type:', 'wpvivid-backuprestore') . '</span><span>' . __($value['type'], 'wpvivid-backuprestore') . '</span>
5276
+ <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-backuprestore') . '</span></a></span>
5277
  </div>
5278
  </div>
5279
  </td>
5281
  <div style="float:left;padding:10px 10px 10px 0;">' . $remote_pic_html . '</div>
5282
  </td>
5283
  <td class="tablelistcolumn" style="min-width:100px;">
5284
+ <div id="wpvivid_file_part_' . __($key, 'wpvivid-backuprestore') . '" style="float:left;padding:10px 10px 10px 0;">
5285
  <div style="cursor:pointer;" onclick="wpvivid_initialize_download(\'' . $key . '\', \'' . $list_name . '\');" title="Prepare to download the backup">
5286
+ <img id="wpvivid_download_btn_' . __($key, 'wpvivid-backuprestore') . '" src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/download.png') . '" style="vertical-align:middle;" /><span>' . __('Download', 'wpvivid-backuprestore') . '</span>
5287
+ <div class="spinner" id="wpvivid_download_loading_' . __($key, 'wpvivid-backuprestore') . '" style="float:right;width:auto;height:auto;padding:10px 180px 10px 0;background-position:0 0;"></div>
5288
  </div>
5289
  </div>
5290
  </td>
5291
  <td class="tablelistcolumn" style="min-width:100px;">
5292
  <div class="' . $tour_class . '" onclick="wpvivid_popup_tour(\'' . $hide . '\');">
5293
+ ' . $tour_message . '<div style="cursor:pointer;padding:10px 0 10px 0;" onclick="wpvivid_initialize_restore(\'' . __($key, 'wpvivid-backuprestore') . '\',\'' . __(date('M d, Y H:i', $backup_time), 'wpvivid-backuprestore') . '\',\'' . __($value['type'], 'wpvivid-backuprestore') . '\');" style="float:left;padding:10px 10px 10px 0;">
5294
+ <img src="' . esc_url(WPVIVID_PLUGIN_URL . '/admin/partials/images/Restore.png') . '" style="vertical-align:middle;" /><span>' . __('Restore', 'wpvivid-backuprestore') . '</span>
5295
  </div>
5296
  </div>
5297
  </td>
5332
  $storage_type = $value['type'];
5333
  $storage_type=apply_filters('wpvivid_storage_provider_tran', $storage_type);
5334
  $html .= '<tr>
5335
+ <td>'.__($i++, 'wpvivid-backuprestore').'</td>
5336
+ <td><input type="checkbox" name="remote_storage" value="'.esc_attr($key, 'wpvivid-backuprestore').'" '.esc_attr($check_status, 'wpvivid-backuprestore').' /></td>
5337
+ <td>'.__($storage_type, 'wpvivid-backuprestore').'</td>
5338
+ <td class="row-title"><label for="tablecell">'.__($value['name'], 'wpvivid-backuprestore').'</label></td>
5339
  <td>
5340
+ <div style="float: left;"><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Edit.png').'" onclick="click_retrieve_remote_storage(\''.__($key, 'wpvivid-backuprestore').'\',\''.__($value['type'], 'wpvivid-backuprestore').'\',\''.__($value['name'], 'wpvivid-backuprestore').'\'
5341
  );" style="vertical-align:middle; cursor:pointer;" title="Edit the remote storage"/></div>
5342
+ <div><img src="'.esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/Delete.png').'" onclick="wpvivid_delete_remote_storage(\''.__($key, 'wpvivid-backuprestore').'\'
5343
  );" style="vertical-align:middle; cursor:pointer;" title="Remove the remote storage"/></div>
5344
  </td>
5345
  </tr>';
5426
  $html .= '<fieldset>
5427
  <label title="">
5428
  <input type="radio" option="schedule" name="save_local_remote" value="local" '.$backup_local.' />
5429
+ <span>'.__( 'Save backups on localhost (web server)', 'wpvivid-backuprestore' ).'</span>
5430
  </label><br>
5431
  <label title="">
5432
  <input type="radio" option="schedule" name="save_local_remote" value="remote" '.$backup_remote.' />
5433
+ <span>'.__( 'Send backups to remote storage (choose this option, the local backup will be deleted after uploading to remote storage completely)', 'wpvivid-backuprestore' ).'</span>
5434
  </label>
5435
  <label style="display: none;">
5436
  <input type="checkbox" option="schedule" name="lock" value="0" />
5598
  try {
5599
  if (!isset($_POST['user_mail']) || empty($_POST['user_mail'])) {
5600
  $ret['result'] = 'failed';
5601
+ $ret['error'] = __('User\'s email address is required.', 'wpvivid-backuprestore');
5602
  } else {
5603
  $pattern = '/^[a-z0-9]+([._-][a-z0-9]+)*@([0-9a-z]+\.[a-z]{2,14}(\.[a-z]{2})?)$/i';
5604
  if (!preg_match($pattern, $_POST['user_mail'])) {
5605
  $ret['result'] = 'failed';
5606
+ $ret['error'] = __('Please enter a valid email address.', 'wpvivid-backuprestore');
5607
  } else {
5608
  $this->ajax_check_security();
5609
  $ret = WPvivid_mail_report::wpvivid_send_debug_info($_POST['user_mail'],$_POST['server_type'],$_POST['host_provider'],$_POST['comment']);
includes/customclass/class-wpvivid-amazons3-plus.php CHANGED
@@ -41,7 +41,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
41
  {
42
  ?>
43
  <div class="storage-providers" remote_type="amazons3" onclick="select_remote_storage(event, 'storage_account_amazons3');">
44
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-amazon-s3.png'); ?>" style="vertical-align:middle;"/><?php _e('Amazon S3', 'wpvivid'); ?>
45
  </div>
46
  <?php
47
  }
@@ -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><?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,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="<?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,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 /><?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,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 /><?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,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 /><?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,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="<?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,7 +184,7 @@ class WPvivid_AMAZONS3Class extends WPvivid_Remote{
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,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><?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,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="<?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,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" /><?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,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" /><?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,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="<?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>
41
  {
42
  ?>
43
  <div class="storage-providers" remote_type="amazons3" onclick="select_remote_storage(event, 'storage_account_amazons3');">
44
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-amazon-s3.png'); ?>" style="vertical-align:middle;"/><?php _e('Amazon S3', 'wpvivid-backuprestore'); ?>
45
  </div>
46
  <?php
47
  }
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 access key.', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 secret key.', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 access key.', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i><a href="https://wpvivid.com/get-amazon-access-secret-key.html" target="_blank"> <?php _e('How to get an AmazonS3 secret key.', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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
- 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,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
- echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
313
  return;
314
  }
315
  }
@@ -366,7 +366,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
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,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
- echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
379
  return;
380
  }
381
  }
@@ -430,7 +430,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
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;
@@ -438,7 +438,7 @@ class WPvivid_Dropbox extends WPvivid_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;
@@ -449,7 +449,7 @@ class WPvivid_Dropbox extends WPvivid_Remote {
449
  public function wpvivid_add_storage_tab_dropbox(){
450
  ?>
451
  <div class="storage-providers" remote_type="dropbox" onclick="select_remote_storage(event, 'storage_account_dropbox');">
452
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-dropbox.png'); ?>" style="vertical-align:middle;"/><?php _e('Dropbox', 'wpvivid'); ?>
453
  </div>
454
  <?php
455
  }
@@ -459,22 +459,22 @@ class WPvivid_Dropbox extends WPvivid_Remote {
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,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><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></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"><?php _e('Pro feature: Create a directory for storing the backups of the site', 'wpvivid'); ?></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 /><?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>
@@ -587,31 +587,31 @@ 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><?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>
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-backuprestore').'</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-backuprestore').'</p></div>';
313
  return;
314
  }
315
  }
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-backuprestore').'</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-backuprestore').'</p></div>';
379
  return;
380
  }
381
  }
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-backuprestore').'</p></div>';
434
  }
435
  public function wpvivid_show_notice_add_dropbox_error(){
436
  global $wpvivid_plugin;
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-backuprestore').'</p></div>';
442
  }
443
  public function wpvivid_show_notice_edit_dropbox_error(){
444
  global $wpvivid_plugin;
449
  public function wpvivid_add_storage_tab_dropbox(){
450
  ?>
451
  <div class="storage-providers" remote_type="dropbox" onclick="select_remote_storage(event, 'storage_account_dropbox');">
452
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-dropbox.png'); ?>" style="vertical-align:middle;"/><?php _e('Dropbox', 'wpvivid-backuprestore'); ?>
453
  </div>
454
  <?php
455
  }
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-backuprestore'); ?>
463
  </div>
464
  <div style="padding: 10px 10px 10px 0;">
465
+ <strong><?php _e('Enter Your Dropbox Information', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></i>
528
  </div>
529
  </td>
530
  </tr>
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></i>
615
  </div>
616
  </td>
617
  </tr>
includes/customclass/class-wpvivid-ftpclass.php CHANGED
@@ -33,7 +33,7 @@ class WPvivid_FTPClass extends WPvivid_Remote{
33
  {
34
  ?>
35
  <div class="storage-providers" remote_type="ftp" onclick="select_remote_storage(event, 'storage_account_ftp');">
36
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-ftp.png'); ?>" style="vertical-align:middle;"/><?php _e('FTP', 'wpvivid'); ?>
37
  </div>
38
  <?php
39
  }
@@ -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><?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,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"><?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,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 /><?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,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 /><?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,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="<?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,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><?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,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 /><?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,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="<?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>
@@ -294,7 +294,7 @@ class WPvivid_FTPClass extends WPvivid_Remote{
294
  $ret['result']=WPVIVID_FAILED;
295
  if(!isset($this->options['name']))
296
  {
297
- $ret['error']=__('Warning: An alias for remote storage is required.','wpvivid');
298
  return $ret;
299
  }
300
 
@@ -302,7 +302,7 @@ class WPvivid_FTPClass extends WPvivid_Remote{
302
 
303
  if(empty($this->options['name']))
304
  {
305
- $ret['error']=__('Warning: An alias for remote storage is required.','wpvivid');
306
  return $ret;
307
  }
308
 
33
  {
34
  ?>
35
  <div class="storage-providers" remote_type="ftp" onclick="select_remote_storage(event, 'storage_account_ftp');">
36
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-ftp.png'); ?>" style="vertical-align:middle;"/><?php _e('FTP', 'wpvivid-backuprestore'); ?>
37
  </div>
38
  <?php
39
  }
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></i>
260
  </div>
261
  </td>
262
  </tr>
294
  $ret['result']=WPVIVID_FAILED;
295
  if(!isset($this->options['name']))
296
  {
297
+ $ret['error']=__('Warning: An alias for remote storage is required.','wpvivid-backuprestore');
298
  return $ret;
299
  }
300
 
302
 
303
  if(empty($this->options['name']))
304
  {
305
+ $ret['error']=__('Warning: An alias for remote storage is required.','wpvivid-backuprestore');
306
  return $ret;
307
  }
308
 
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
- 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,7 +86,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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
  }
@@ -108,11 +108,11 @@ 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.', '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{
@@ -175,7 +175,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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,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
- 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,11 +204,11 @@ 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.', '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{
@@ -269,7 +269,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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;
@@ -277,7 +277,7 @@ class Wpvivid_Google_drive extends WPvivid_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;
@@ -289,7 +289,7 @@ class Wpvivid_Google_drive extends WPvivid_Remote
289
  {
290
  ?>
291
  <div class="storage-providers storage-providers-active" remote_type="googledrive" onclick="select_remote_storage(event, 'storage_account_google_drive');">
292
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/stroage-google-drive.png'); ?>" style="vertical-align:middle;"/><?php _e('Google Drive', 'wpvivid'); ?>
293
  </div>
294
  <?php
295
  }
@@ -301,22 +301,22 @@ class Wpvivid_Google_drive extends WPvivid_Remote
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,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><?php _e('All backups will be uploaded to this directory.', 'wpvivid'); ?></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"><?php _e('Pro feature: Create a directory for storing the backups of the site', 'wpvivid'); ?></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 /><?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>
@@ -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><?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>
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-backuprestore').'</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-backuprestore').'</p></div>';
90
  return;
91
  }
92
  }
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-backuprestore');
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-backuprestore');
116
  echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
117
  }
118
  else{
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-backuprestore').'</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-backuprestore').'</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-backuprestore');
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-backuprestore');
212
  echo '<div class="notice notice-error"><p>'.$error_msg.'</p></div>';
213
  }
214
  else{
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-backuprestore').'</p></div>';
273
  }
274
  public function wpvivid_show_notice_add_google_drive_error(){
275
  global $wpvivid_plugin;
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-backuprestore').'</p></div>';
281
  }
282
  public function wpvivid_show_notice_edit_google_drive_error(){
283
  global $wpvivid_plugin;
289
  {
290
  ?>
291
  <div class="storage-providers storage-providers-active" remote_type="googledrive" onclick="select_remote_storage(event, 'storage_account_google_drive');">
292
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/stroage-google-drive.png'); ?>" style="vertical-align:middle;"/><?php _e('Google Drive', 'wpvivid-backuprestore'); ?>
293
  </div>
294
  <?php
295
  }
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-backuprestore'); ?>
305
  </div>
306
  <div style="padding: 10px 10px 10px 0;">
307
+ <strong><?php _e('Enter Your Google Drive Information', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i>
370
  </div>
371
  </td>
372
  </tr>
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore');?></i>
460
  </div>
461
  </td>
462
  </tr>
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
- 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,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
- echo '<div class="notice notice-warning is-dismissible"><p>'.__('Warning: The alias already exists in storage list.', 'wpvivid').'</p></div>';
90
  return;
91
  }
92
  }
@@ -159,7 +159,7 @@ class WPvivid_one_drive extends WPvivid_Remote
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,7 +168,7 @@ class WPvivid_one_drive extends WPvivid_Remote
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
  }
@@ -237,7 +237,7 @@ class WPvivid_one_drive extends WPvivid_Remote
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;
@@ -245,7 +245,7 @@ class WPvivid_one_drive extends WPvivid_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;
@@ -257,7 +257,7 @@ class WPvivid_one_drive extends WPvivid_Remote
257
  {
258
  ?>
259
  <div class="storage-providers" remote_type="one_drive" onclick="select_remote_storage(event, 'storage_account_one_drive');">
260
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-microsoft-onedrive.png'); ?>" style="vertical-align:middle;"/><?php _e('Microsoft OneDrive', 'wpvivid'); ?>
261
  </div>
262
  <?php
263
  }
@@ -269,22 +269,22 @@ class WPvivid_one_drive extends WPvivid_Remote
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,7 +296,7 @@ class WPvivid_one_drive extends WPvivid_Remote
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,7 +308,7 @@ class WPvivid_one_drive extends WPvivid_Remote
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,25 +316,25 @@ class WPvivid_one_drive extends WPvivid_Remote
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>
@@ -400,31 +400,31 @@ class WPvivid_one_drive extends WPvivid_Remote
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>
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-backuprestore').'</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-backuprestore').'</p></div>';
90
  return;
91
  }
92
  }
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-backuprestore').'</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-backuprestore').'</p></div>';
172
  return;
173
  }
174
  }
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-backuprestore').'</p></div>';
241
  }
242
  public function wpvivid_show_notice_add_onedrive_error(){
243
  global $wpvivid_plugin;
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-backuprestore').'</p></div>';
249
  }
250
  public function wpvivid_show_notice_edit_onedrive_error(){
251
  global $wpvivid_plugin;
257
  {
258
  ?>
259
  <div class="storage-providers" remote_type="one_drive" onclick="select_remote_storage(event, 'storage_account_one_drive');">
260
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-microsoft-onedrive.png'); ?>" style="vertical-align:middle;"/><?php _e('Microsoft OneDrive', 'wpvivid-backuprestore'); ?>
261
  </div>
262
  <?php
263
  }
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-backuprestore'); ?>
273
  </div>
274
  <div style="padding: 10px 10px 10px 0;">
275
+ <strong><?php _e('Enter Your Microsoft OneDrive Information', 'wpvivid-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></i>
338
  </div>
339
  </td>
340
  </tr>
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>">
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-backuprestore'); ?></i>
428
  </div>
429
  </td>
430
  </tr>
includes/customclass/class-wpvivid-s3compat.php CHANGED
@@ -400,7 +400,7 @@ class Wpvivid_S3Compat extends WPvivid_Remote{
400
  public function wpvivid_add_storage_tab_s3compat(){
401
  ?>
402
  <div class="storage-providers" remote_type="s3compat" onclick="select_remote_storage(event, 'storage_account_s3compat');">
403
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-digitalocean.png'); ?>" style="vertical-align:middle;"/><?php _e('DigitalOcean Spaces', 'wpvivid'); ?>
404
  </div>
405
  <?php
406
  }
@@ -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><?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,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="<?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,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 /><?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,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="<?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,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><?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,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="<?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,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="<?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>
400
  public function wpvivid_add_storage_tab_s3compat(){
401
  ?>
402
  <div class="storage-providers" remote_type="s3compat" onclick="select_remote_storage(event, 'storage_account_s3compat');">
403
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-digitalocean.png'); ?>" style="vertical-align:middle;"/><?php _e('DigitalOcean Spaces', 'wpvivid-backuprestore'); ?>
404
  </div>
405
  <?php
406
  }
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i>
614
  </div>
615
  </td>
616
  </tr>
includes/customclass/class-wpvivid-sftpclass.php CHANGED
@@ -35,7 +35,7 @@ class WPvivid_SFTPClass extends WPvivid_Remote{
35
  {
36
  ?>
37
  <div class="storage-providers" remote_type="sftp" onclick="select_remote_storage(event, 'storage_account_sftp');">
38
- <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-sftp.png'); ?>" style="vertical-align:middle;"/><?php _e('SFTP', 'wpvivid'); ?>
39
  </div>
40
  <?php
41
  }
@@ -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><?php _e('Enter Your SFTP Account', 'wpvivid'); ?></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="<?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,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 /><?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,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="<?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,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><?php _e('Enter Your SFTP Account', 'wpvivid'); ?></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="<?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,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="<?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>
35
  {
36
  ?>
37
  <div class="storage-providers" remote_type="sftp" onclick="select_remote_storage(event, 'storage_account_sftp');">
38
+ <img src="<?php echo esc_url(WPVIVID_PLUGIN_URL.'/admin/partials/images/storage-sftp.png'); ?>" style="vertical-align:middle;"/><?php _e('SFTP', 'wpvivid-backuprestore'); ?>
39
  </div>
40
  <?php
41
  }
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" 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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></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-backuprestore'); ?>" />
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-backuprestore'); ?></i>
250
  </div>
251
  </td>
252
  </tr>
languages/{wpvivid-bg_BG.mo → wpvivid-backuprestore-bg_BG.mo} RENAMED
Binary file
languages/{wpvivid-bg_BG.po → wpvivid-backuprestore-bg_BG.po} RENAMED
@@ -1,7 +1,7 @@
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: wpvivid backup plugin\n"
4
- "Last-Translator: 刘赓 <420723111@qq.com>\n"
5
  "Language-Team: Български\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -12,7 +12,7 @@ msgstr ""
12
  "X-Poedit-SourceCharset: utf-8\n"
13
  "Report-Msgid-Bugs-To: \n"
14
  "POT-Creation-Date: 2020-06-09 14:13+0000\n"
15
- "PO-Revision-Date: 2020-06-21 13:08+0800\n"
16
  "Language: bg_BG\n"
17
  "X-Generator: Poedit 2.3.1\n"
18
  "X-Loco-Version: 2.4.0; wp-5.4.1\n"
1
  msgid ""
2
  msgstr ""
3
  "Project-Id-Version: wpvivid backup plugin\n"
4
+ "Last-Translator: \n"
5
  "Language-Team: Български\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "X-Poedit-SourceCharset: utf-8\n"
13
  "Report-Msgid-Bugs-To: \n"
14
  "POT-Creation-Date: 2020-06-09 14:13+0000\n"
15
+ "PO-Revision-Date: 2020-07-27 18:41+0800\n"
16
  "Language: bg_BG\n"
17
  "X-Generator: Poedit 2.3.1\n"
18
  "X-Loco-Version: 2.4.0; wp-5.4.1\n"
languages/wpvivid-backuprestore-it_IT.mo ADDED
Binary file
languages/{wpvivid-it_IT.po → wpvivid-backuprestore-it_IT.po} RENAMED
@@ -10,20 +10,22 @@ msgstr ""
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
  "Report-Msgid-Bugs-To: \n"
15
  "POT-Creation-Date: 2020-05-12 15:27+0000\n"
16
- "PO-Revision-Date: 2020-05-12 22:21+0000\n"
17
  "Language: it_IT\n"
18
  "X-Generator: Loco https://localise.biz/\n"
19
- "X-Loco-Version: 2.3.3; wp-5.4.1"
 
20
 
21
- #: admin/class-wpvivid-admin.php:100 admin/class-wpvivid-admin.php:114
 
22
  #: admin/class-wpvivid-admin.php:635
23
  msgid "Backup & Restore"
24
  msgstr "Backup & Ripristino"
25
 
26
- #: admin/class-wpvivid-admin.php:123 admin/class-wpvivid-admin.php:313
 
27
  #: admin/class-wpvivid-admin.php:653
28
  msgid "Settings"
29
  msgstr "Impostazioni"
@@ -41,22 +43,12 @@ msgid "Troubleshooting"
41
  msgstr "Risoluzione dei problemi"
42
 
43
  #: admin/class-wpvivid-admin.php:154
44
- msgid ""
45
- "Read <a href=\"https://wpvivid.com/troubleshooting-issues-wpvivid-backup-"
46
- "plugin\" target=\"_blank\">Troubleshooting page</a> for faster solutions."
47
- msgstr ""
48
- "Leggi <a href=\"https://wpvivid.com/troubleshooting-issues-wpvivid-backup-"
49
- "plugin\" target=\"_blank\">la pagina di Risoluzione dei problemi</a> per "
50
- "soluzioni più rapide."
51
 
52
  #: admin/class-wpvivid-admin.php:157
53
- msgid ""
54
- "Adjust <a href=\"https://wpvivid.com/wpvivid-backup-plugin-advanced-settings."
55
- "html\" target=\"_blank\">Advanced Settings</a> for higher task success rate."
56
- msgstr ""
57
- "Configura le <a href=\"https://wpvivid.com/wpvivid-backup-plugin-advanced-"
58
- "settings.html\" target=\"_blank\">Impostazioni avanzate</a> per una "
59
- "percentuale più alta di successo nello svolgimento delle attività."
60
 
61
  #: admin/class-wpvivid-admin.php:164
62
  msgid "How-to"
@@ -95,95 +87,57 @@ msgid "Warning: The alias already exists in storage list."
95
  msgstr "Attenzione: l'alias esiste già nella lista degli storage."
96
 
97
  #: admin/class-wpvivid-admin.php:213
98
- msgid ""
99
- "Calculating the size of files, folder and database timed out. If you "
100
- "continue to receive this error, please go to the plugin settings, uncheck "
101
- "'Calculate the size of files, folder and database before backing up', save "
102
- "changes, then try again."
103
- msgstr ""
104
- "Il calcolo delle dimensioni dei file, delle cartelle e database è terminata "
105
- "a causa di un time out. Se si continua a ricevere questo errore, si prega di "
106
- "andare alle impostazioni dei plug-in, deselezionare 'Calcolare le dimensioni "
107
- "dei file, delle cartelle e database prima di eseguire il backup', salvare le "
108
- "modifiche, quindi provare di nuovo."
109
 
110
  #: admin/class-wpvivid-admin.php:346
111
- msgid ""
112
- "Migration is complete and htaccess file is replaced. In order to "
113
- "successfully complete the migration, you'd better reinstall 301 redirect "
114
- "plugin, firewall and security plugin, and caching plugin if they exist."
115
- msgstr ""
116
- "La migrazione è completa e il file htaccess è stato sostituito. Per "
117
- "completare con successo la migrazione, è meglio reinstallare il plugin 301 "
118
- "redirect, il plugin firewall e il plugin di sicurezza e il plugin di caching,"
119
- " se esistono."
120
 
121
  #: admin/class-wpvivid-admin.php:361
122
- msgid ""
123
- "Cheers! WPvivid Backup plugin has restored successfully your website. If you "
124
- "found WPvivid Backup plugin helpful, a 5-star rating would be highly "
125
- "appreciated, which motivates us to keep providing new features."
126
- msgstr ""
127
- "Evviva! WPvivid Backup plugin ha ripristinato con successo il tuo sito web. "
128
- "Se hai trovato WPvivid Backup plugin utile, una valutazione di 5 stelle "
129
- "sarebbe molto apprezzata, cosa che ci spinge a continuare a offrire nuove "
130
- "funzionalità."
131
 
132
  #: admin/class-wpvivid-admin.php:367
133
  msgid "Restore completed successfully."
134
  msgstr "Ripristino completato."
135
 
136
- #: admin/class-wpvivid-admin.php:454 admin/class-wpvivid-admin.php:471
 
137
  msgid "Rate Us"
138
  msgstr "Votaci"
139
 
140
- #: admin/class-wpvivid-admin.php:455 admin/class-wpvivid-admin.php:472
 
141
  msgid "Maybe Later"
142
  msgstr "Forse Più Tardi"
143
 
144
- #: admin/class-wpvivid-admin.php:456 admin/class-wpvivid-admin.php:473
 
145
  msgid "Never"
146
  msgstr "Mai"
147
 
148
  #: admin/class-wpvivid-admin.php:509
149
- msgid ""
150
- "As Amazon S3 and DigitalOcean Space have upgraded their connection methods, "
151
- "please delete the previous connections and re-add your Amazon "
152
- "S3/DigitalOcean Space accounts to make sure the connections work."
153
- msgstr ""
154
- "Poiché Amazon S3 e DigitalOcean Space hanno aggiornato i loro metodi di "
155
- "connessione, si prega di cancellare le precedenti connessioni e ri-"
156
- "aggiungere i tuoi account tuo Amazon S3/DigitalOcean Space per assicurarti "
157
- "che le connessioni funzionino."
158
 
159
  #: admin/class-wpvivid-admin.php:561
160
  #, php-format
161
  msgid "The %s extension is not detected. Please install the extension first."
162
- msgstr ""
163
- "L'estensione %s non è stata rilevata. Si prega di installare prima "
164
- "l'estensione."
165
 
166
  #: admin/class-wpvivid-admin.php:564
167
  #, php-format
168
- msgid ""
169
- "The %s extensions are not detected. Please install the extensions first."
170
- msgstr ""
171
- "Le estensioni %s non sono state rilevate. Si prega di installare prima le "
172
- "estensioni."
173
 
174
  #: admin/class-wpvivid-admin.php:570
175
- msgid ""
176
- "Class PclZip is not detected. Please update or reinstall your WordPress."
177
- msgstr ""
178
- "Classe PclZip non rilevata. Si prega di aggiornare o reinstallare WordPress."
179
 
180
  #: admin/class-wpvivid-admin.php:575
181
- msgid ""
182
- "In order to execute the scheduled backups properly, please set the "
183
- "DISABLE_WP_CRON constant to false."
184
- msgstr ""
185
- "Per eseguire correttamente i backup pianificati, impostare la costante "
186
- "DISABLE_WP_CRON su false."
187
 
188
  #: admin/class-wpvivid-admin.php:641
189
  msgid "Schedule"
@@ -215,36 +169,23 @@ msgstr "MainWP"
215
  msgid "Premium"
216
  msgstr "Premium"
217
 
218
- #: admin/class-wpvivid-admin.php:735 admin/class-wpvivid-admin.php:822
 
219
  #: admin/partials/wpvivid-remote-storage-page-display.php:48
220
  msgid "Save Changes"
221
  msgstr "Salvare le modifiche"
222
 
223
  #: admin/class-wpvivid-admin.php:870
224
- msgid ""
225
- "There are two ways available to send us the debug information. The first one "
226
- "is recommended."
227
- msgstr ""
228
- "Ci sono due modi per inviarci le informazioni di debug. Il primo è "
229
- "raccomandato."
230
 
231
  #: admin/class-wpvivid-admin.php:872
232
  msgid "Method 1."
233
  msgstr "Metodo 1."
234
 
235
  #: admin/class-wpvivid-admin.php:872
236
- msgid ""
237
- "If you have configured SMTP on your site, enter your email address and click "
238
- "the button below to send us the relevant information (website info and "
239
- "errors logs) when you are encountering errors. This will help us figure out "
240
- "what happened. Once the issue is resolved, we will inform you by your email "
241
- "address."
242
- msgstr ""
243
- "Se è stato configurato l'SMTP sul tuo sito, inserisci il tuo indirizzo e-"
244
- "mail e fai clic sul pulsante qui sotto per inviarci le informazioni "
245
- "rilevanti (informazioni sul sito e gli errori di log) quando si verificano "
246
- "errori. Questo ci aiuterà a capire cosa è successo. Una volta risolto il "
247
- "problema, provvederemo ad informarti per tuo indirizzo e-mail."
248
 
249
  #: admin/class-wpvivid-admin.php:875
250
  msgid "WPvivid support email:"
@@ -275,16 +216,8 @@ msgid "Method 2."
275
  msgstr "Metodo 2."
276
 
277
  #: admin/class-wpvivid-admin.php:909
278
- msgid ""
279
- "If you didn’t configure SMTP on your site, click the button below to "
280
- "download the relevant information (website info and error logs) to your PC "
281
- "when you are encountering some errors. Sending the files to us will help us "
282
- "diagnose what happened."
283
- msgstr ""
284
- "Se non hai configurato l'SMTP sul tuo sito, clicca sul pulsante qui sotto "
285
- "per scaricare le informazioni rilevanti (informazioni sul sito web e "
286
- "registri degli errori) sul tuo PC quando incontrate degli errori. L'invio "
287
- "dei file ci aiuterà a diagnosticare l'accaduto."
288
 
289
  #: admin/class-wpvivid-admin.php:912
290
  #: admin/partials/wpvivid-backup-restore-page-display.php:178
@@ -324,14 +257,8 @@ msgid " Next page > "
324
  msgstr "Pagina Seguente >"
325
 
326
  #: admin/class-wpvivid-admin.php:1164
327
- msgid ""
328
- "If you are a MainWP user, you can set up and control WPvivid Backup Free and "
329
- "Pro for every child site directly from your MainWP dashboard, using our "
330
- "WPvivid Backup for MainWP extension."
331
- msgstr ""
332
- "Se sei un utente MainWP, puoi impostare e controllare WPvivid Backup Free e "
333
- "Pro per ogni sito child direttamente dalla Bacheca di MainWP, utilizzando la "
334
- "nostra estensione WPvivid Backup for MainWP."
335
 
336
  #: admin/class-wpvivid-admin.php:1167
337
  msgid "Download WPvivid Backup for MainWP"
@@ -347,30 +274,20 @@ msgstr "2. Pianifica backup per tutti i siti child"
347
 
348
  #: admin/class-wpvivid-admin.php:1177
349
  msgid "3. Set WPvivid Backup Free and Pro settings for all child sites"
350
- msgstr ""
351
- "3. Configura le impostazioni di WPvivid Backup Free e Pro per tutti i siti "
352
- "child"
353
 
354
  #: admin/class-wpvivid-admin.php:1182
355
  msgid "4. Install, claim and update WPvivid Backup Pro for child sites in bulk"
356
- msgstr ""
357
- "4. Installa, attiva e aggiorna WPvivid Backup Pro in massa per i siti child"
358
 
359
  #: admin/class-wpvivid-admin.php:1187
360
- msgid ""
361
- "5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro "
362
- "only)"
363
- msgstr ""
364
- "5. Imposta in massa l'archiviazione remota per i siti child (per WPvivid "
365
- "Backup Pro)."
366
 
367
  #: admin/class-wpvivid-admin.php:1192
368
  #, php-format
369
- msgid ""
370
- "We also offer a 40% off discount on WPvivid Backup Pro for MainWP users."
371
- msgstr ""
372
- "Offriamo anche uno sconto del 40% su WPvivid Backup Pro per gli utenti "
373
- "MainWP."
374
 
375
  #: admin/class-wpvivid-admin.php:1196
376
  msgid "Ask For A 40% OFF Discount"
@@ -396,12 +313,15 @@ msgstr "Ultimate"
396
  msgid "Websites"
397
  msgstr "Siti web"
398
 
399
- #: admin/class-wpvivid-admin.php:1229 admin/class-wpvivid-admin.php:1230
400
- #: admin/class-wpvivid-admin.php:1231 admin/class-wpvivid-admin.php:1232
 
 
401
  msgid "Backup:"
402
  msgstr "Backup:"
403
 
404
- #: admin/class-wpvivid-admin.php:1229 admin/class-wpvivid-admin.php:1233
 
405
  msgid "Custom Content"
406
  msgstr "Contenuto Personalizzato"
407
 
@@ -417,7 +337,8 @@ msgstr "Crea un punto di ripristino"
417
  msgid "Include/exclude files/folders"
418
  msgstr "Includere/escludere i file e le cartelle"
419
 
420
- #: admin/class-wpvivid-admin.php:1233 admin/class-wpvivid-admin.php:1234
 
421
  msgid "Migration:"
422
  msgstr "Migrazione:"
423
 
@@ -425,7 +346,8 @@ msgstr "Migrazione:"
425
  msgid "Migration via remote storage"
426
  msgstr "Migrazione tramite archiviazione remota"
427
 
428
- #: admin/class-wpvivid-admin.php:1235 admin/class-wpvivid-admin.php:1236
 
429
  msgid "Remote Storage:"
430
  msgstr "Archiviazione Remota:"
431
 
@@ -437,8 +359,10 @@ msgstr "Directory personalizzata (fornitori leader di cloud storage)"
437
  msgid "WASABI/Pcloud (Only Pro)"
438
  msgstr "WASABI/Pcloud (Solo Pro)"
439
 
440
- #: admin/class-wpvivid-admin.php:1237 admin/class-wpvivid-admin.php:1238
441
- #: admin/class-wpvivid-admin.php:1239 admin/class-wpvivid-admin.php:1240
 
 
442
  msgid "Schedule:"
443
  msgstr "Pianificazione:"
444
 
@@ -458,7 +382,8 @@ msgstr "Contenuti personalizzati per ogni programma"
458
  msgid "Custom start time of schedule"
459
  msgstr "Orario personalizzato di inizio del programma "
460
 
461
- #: admin/class-wpvivid-admin.php:1241 admin/class-wpvivid-admin.php:1242
 
462
  msgid "Restore:"
463
  msgstr "Ripristino:"
464
 
@@ -478,7 +403,8 @@ msgstr "Rapporti E-Mail:"
478
  msgid "Send email reports to multiple email addresses"
479
  msgstr "Invia rapporti e-mail a più indirizzi e-mail"
480
 
481
- #: admin/class-wpvivid-admin.php:1244 admin/class-wpvivid-admin.php:1245
 
482
  msgid "Staging (add-on):"
483
  msgstr "Staging (add-on):"
484
 
@@ -496,8 +422,7 @@ msgstr "Ruoli e capacità (add-on):"
496
 
497
  #: admin/class-wpvivid-admin.php:1246
498
  msgid "Display the individual sections according to user roles & capabilities"
499
- msgstr ""
500
- "Visualizza le singole sezioni in base ai ruoli e alle capacità dell'utente"
501
 
502
  #: admin/class-wpvivid-admin.php:1247
503
  msgid "Support:"
@@ -520,12 +445,8 @@ msgid "Unlimited"
520
  msgstr "Illimitato"
521
 
522
  #: admin/class-wpvivid-admin.php:1319
523
- msgid ""
524
- "*No credit card needed. Trial starts with the Free Trial plan with 2 sites. "
525
- "You can choose a plan at the end of the trial."
526
- msgstr ""
527
- "*Non è necessaria la carta di credito. La prova inizia con il piano di prova "
528
- "gratuita con 2 siti. È possibile scegliere un piano alla fine della prova."
529
 
530
  #: admin/class-wpvivid-admin.php:1320
531
  msgid "START 14-DAY FREE TRIAL"
@@ -536,12 +457,8 @@ msgid "WPvivid Backup Plugin"
536
  msgstr "WPvivid Backup Plugin"
537
 
538
  #: admin/partials/wpvivid-admin-display.php:63
539
- msgid ""
540
- "Warning: There is no default remote storage available for the scheduled "
541
- "backups, please set up it first."
542
- msgstr ""
543
- "Attenzione: non è disponibile uno storage remoto predefinito per i backup "
544
- "pianificati, si prega di impostarla prima."
545
 
546
  #: admin/partials/wpvivid-backup-restore-page-display.php:7
547
  #: admin/partials/wpvivid-schedule-page-display.php:126
@@ -581,32 +498,16 @@ msgid "About backup download"
581
  msgstr "Riguardo il download dei backup "
582
 
583
  #: admin/partials/wpvivid-backup-restore-page-display.php:102
584
- msgid ""
585
- "->If backups are stored in remote storage, our plugin will retrieve the "
586
- "backup to your web server first. This may take a little time depending on "
587
- "the size of backup files. Please be patient. Then you can download them to "
588
- "your PC."
589
- msgstr ""
590
- "->Se i backup sono memorizzati nello storage remoto, il nostro plugin "
591
- "recupererà prima il backup sul tuo server web. Questo può richiedere un po' "
592
- "di tempo a seconda della dimensione dei file di backup. Si prega di avere "
593
- "pazienza. Poi potrai scaricarli sul vostro PC."
594
 
595
  #: admin/partials/wpvivid-backup-restore-page-display.php:103
596
- msgid ""
597
- "->If backups are stored in web server, the plugin will list all relevant "
598
- "files immediately."
599
- msgstr ""
600
- "->Se i backup sono memorizzati nel server web, il plugin elencherà "
601
- "immediatamente tutti i file rilevanti."
602
 
603
  #: admin/partials/wpvivid-backup-restore-page-display.php:109
604
- msgid ""
605
- "How to restore your website from a backup(scheduled, manual, uploaded and "
606
- "received backup)"
607
- msgstr ""
608
- "Come ripristinare il vostro sito web da un backup(programmato, manuale, "
609
- "caricato e ricevuto)"
610
 
611
  #: admin/partials/wpvivid-backup-restore-page-display.php:123
612
  msgid "Backups"
@@ -635,63 +536,36 @@ msgid "Delete the selected backups"
635
  msgstr "Elimina i backup selezionati"
636
 
637
  #: admin/partials/wpvivid-backup-restore-page-display.php:725
638
- msgid ""
639
- "This backup is locked, are you sure to remove it? This backup will be "
640
- "deleted permanently from your hosting (localhost) and remote storages."
641
- msgstr ""
642
- "Questo backup è bloccato, sei sicuro di poterlo rimuovere? Questo backup "
643
- "sarà cancellato in modo permanente dal vostro hosting (localhost) e dai "
644
- "magazzini remoti."
645
 
646
  #: admin/partials/wpvivid-backup-restore-page-display.php:729
647
- msgid ""
648
- "Are you sure to remove this backup? This backup will be deleted permanently "
649
- "from your hosting (localhost) and remote storages."
650
- msgstr ""
651
- "Sei sicuro di voler rimuovere questo backup? Questo backup verrà eliminato "
652
- "in modo permanente dal tuo hosting (localhost) e storage remoto."
653
 
654
  #: admin/partials/wpvivid-backup-restore-page-display.php:734
655
- msgid ""
656
- "This request will delete the backup being downloaded, are you sure you want "
657
- "to continue?"
658
- msgstr ""
659
- "Questa richiesta cancellerà il backup in fase di download, sei sicuro di "
660
- "voler continuare?"
661
 
662
  #: admin/partials/wpvivid-backup-restore-page-display.php:773
663
  msgid "Please select at least one item."
664
  msgstr "Si prega di selezionare almeno un elemento."
665
 
666
  #: admin/partials/wpvivid-backup-restore-page-display.php:778
667
- msgid ""
668
- "This request might delete the backup being downloaded, are you sure you want "
669
- "to continue?"
670
- msgstr ""
671
- "Questa richiesta potrebbe cancellare il backup in fase di download, sei "
672
- "sicuro di voler continuare?"
673
 
674
  #: admin/partials/wpvivid-backup-restore-page-display.php:781
675
- msgid ""
676
- "Are you sure to remove the selected backups? These backups will be deleted "
677
- "permanently from your hosting (localhost)."
678
- msgstr ""
679
- "Sei sicuro di voler rimuovere il backup? Questi backup verranno eliminati in "
680
- "modo permanente dal tuo hosting (localhost)."
681
 
682
  #: admin/partials/wpvivid-backup-restore-page-display.php:842
683
- msgid ""
684
- "Step One: In the backup list, click the 'Restore' button on the backup you "
685
- "want to restore. This will bring up the restore tab"
686
- msgstr ""
687
- "Passo 1: Nell'elenco dei backup, fare clic sul pulsante 'Ripristina' del "
688
- "backup che si desidera ripristinare. In questo modo si aprirà la scheda di "
689
- "ripristino"
690
 
691
  #: admin/partials/wpvivid-backup-restore-page-display.php:843
692
  msgid "Step Two: Choose an option to complete restore, if any"
693
- msgstr ""
694
- "Fase Due: Scegliere una opzione per completare il ripristino, se presente"
695
 
696
  #: admin/partials/wpvivid-backup-restore-page-display.php:844
697
  msgid "Step Three: Click 'Restore' button"
@@ -702,29 +576,17 @@ msgid "Restore backup from:"
702
  msgstr "Ripristino backup da:"
703
 
704
  #: admin/partials/wpvivid-backup-restore-page-display.php:878
705
- msgid ""
706
- "Please do not close the page or switch to other pages when a restore task is "
707
- "running, as it could trigger some unexpected errors."
708
- msgstr ""
709
- "Si prega di non chiudere la pagina o di non passare ad altre pagine quando è "
710
- "in corso un'attività di ripristino, in quanto potrebbe innescare alcuni "
711
- "errori imprevisti."
712
 
713
  #: admin/partials/wpvivid-backup-restore-page-display.php:879
714
- msgid ""
715
- "Restore function will replace the current site's themes, plugins, uploads, "
716
- "database and/or other content directories with the existing equivalents in "
717
- "the selected backup."
718
- msgstr ""
719
- "La funzione Ripristino sostituirà i temi, i plugin, gli upload, i database "
720
- "e/o altre directory di contenuti del sito corrente con gli equivalenti "
721
- "esistenti nel backup selezionato."
722
 
723
  #: admin/partials/wpvivid-backup-restore-page-display.php:882
724
  #, php-format
725
  msgid "Restore and replace the original domain (URL) with %s (migration)"
726
- msgstr ""
727
- "Ripristina e sostituisci il dominio originale (URL) con %s (migrazione)"
728
 
729
  #: admin/partials/wpvivid-backup-restore-page-display.php:885
730
  msgid "Restore and keep the original domain (URL) unchanged"
@@ -736,19 +598,8 @@ msgid "Tips:"
736
  msgstr "Suggerimenti:"
737
 
738
  #: admin/partials/wpvivid-backup-restore-page-display.php:889
739
- msgid ""
740
- "The plugin detects automatically either site restoration or migration "
741
- "(replacing the domain name) based on the current domain name. If the domain "
742
- "name in backup file is same as the current one, it starts restoring. On the "
743
- "contrary, restoring backup means to replace with the current domain name. "
744
- "The precondition is that the backup is created by version 0.9.21 or later."
745
- msgstr ""
746
- "Il plugin rileva automaticamente il ripristino del sito o la migrazione "
747
- "(sostituzione del nome a dominio) in base al nome a dominio corrente. Se il "
748
- "nome del dominio nel file di backup è uguale a quello attuale, inizia il "
749
- "ripristino. Al contrario, ripristinare il backup significa sostituire con il "
750
- "nome di dominio corrente. Il presupposto è che il backup venga creato dalla "
751
- "versione 0.9.21 o successiva."
752
 
753
  #: admin/partials/wpvivid-backup-restore-page-display.php:893
754
  msgid "Terminate"
@@ -763,12 +614,8 @@ msgid "Retrieve the backup to localhost"
763
  msgstr "Recupera il backup su localhost"
764
 
765
  #: admin/partials/wpvivid-backup-restore-page-display.php:897
766
- msgid ""
767
- "The backup is stored on the remote storage, click on the button to download "
768
- "it to localhost."
769
- msgstr ""
770
- "Il backup viene memorizzato sullo storage remoto, fai clic sul pulsante per "
771
- "scaricarlo su localhost."
772
 
773
  #: admin/partials/wpvivid-backup-restore-page-display.php:1489
774
  msgid "Database Size:"
@@ -836,12 +683,8 @@ msgid "This backup can only be deleted manually"
836
  msgstr "Questo backup può essere cancellato solo manualmente"
837
 
838
  #: admin/partials/wpvivid-backup-restore-page-display.php:1787
839
- msgid ""
840
- "The settings are only for manual backup, which won't affect schedule "
841
- "settings."
842
- msgstr ""
843
- "Le impostazioni sono solo per il backup manuale, che non influisce sulle "
844
- "impostazioni di programmazione."
845
 
846
  #: admin/partials/wpvivid-backup-restore-page-display.php:1806
847
  msgid "Backup Schedule"
@@ -906,12 +749,8 @@ msgid "Advanced Schedule"
906
  msgstr "Pianificazione Avanzata"
907
 
908
  #: admin/partials/wpvivid-schedule-page-display.php:85
909
- msgid ""
910
- "Highlighted icon illuminates that you have choosed a remote storage to store "
911
- "backups"
912
- msgstr ""
913
- "L'icona evidenziata indica che è stata scelta uno storage remoto per "
914
- "memorizzare i backup"
915
 
916
  #: admin/partials/wpvivid-schedule-page-display.php:95
917
  msgid "+ Add another schedule"
@@ -922,13 +761,8 @@ msgid "Scheduled job will start at <strong>UTC</strong> time:"
922
  msgstr "Il lavoro pianificato inizierà a <strong>UTC</strong> time:"
923
 
924
  #: admin/partials/wpvivid-schedule-page-display.php:118
925
- msgid ""
926
- "Being subjected to mechanisms of PHP, a scheduled backup task for your site "
927
- "will be triggered only when the site receives at least a visit at any page."
928
- msgstr ""
929
- "Essendo soggetto a meccanismi di PHP, un'attività di backup pianificata per "
930
- "il vostro sito verrà attivata solo quando il sito riceverà almeno una visita "
931
- "in qualsiasi pagina."
932
 
933
  #: admin/partials/wpvivid-settings-page-display.php:88
934
  msgid "backups retained"
@@ -940,53 +774,35 @@ msgstr "Funzionalità Pro: conserva più copie di backup"
940
 
941
  #: admin/partials/wpvivid-settings-page-display.php:93
942
  msgid "Calculate the size of files, folder and database before backing up"
943
- msgstr ""
944
- "Calcola la dimensione dei file, delle cartelle e del database prima di "
945
- "eseguire il backup"
946
 
947
  #: admin/partials/wpvivid-settings-page-display.php:99
948
  msgid "Show WPvivid backup plugin on top admin bar"
949
  msgstr "Mostra WPvivid backup plugin in cima all'admin bar"
950
 
951
  #: admin/partials/wpvivid-settings-page-display.php:105
952
- msgid ""
953
- "Merge all the backup files into single package when a backup completes. This "
954
- "will save great disk spaces, though takes longer time. We recommended you "
955
- "check the option especially on sites with insufficient server resources."
956
- msgstr ""
957
- "Unisci tutti i file di backup in un unico pacchetto quando un backup è "
958
- "completato. In questo modo si risparmiano grandi spazi su disco, anche se ci "
959
- "vuole più tempo. Si consiglia di controllare l'opzione soprattutto su siti "
960
- "con risorse server insufficienti."
961
 
962
  #: admin/partials/wpvivid-settings-page-display.php:111
963
  msgid "Keep storing the backups in localhost after uploading to remote storage"
964
- msgstr ""
965
- "Continua a memorizzare i backup in localhost dopo l'upload nello storage "
966
- "remoto"
967
 
968
  #: admin/partials/wpvivid-settings-page-display.php:116
969
  msgid "Backup Folder"
970
  msgstr "Cartella Di Backup"
971
 
972
  #: admin/partials/wpvivid-settings-page-display.php:118
973
- msgid ""
974
- "Name your folder, this folder must be writable for creating backup files."
975
- msgstr ""
976
- "Dai un nome alla tua cartella, questa cartella deve essere scrivibile per la "
977
- "creazione di file di backup."
978
 
979
  #: admin/partials/wpvivid-settings-page-display.php:120
980
  msgid "Local storage directory:"
981
  msgstr "Directory di archiviazione locale:"
982
 
983
  #: admin/partials/wpvivid-settings-page-display.php:125
984
- msgid ""
985
- "Display domain(url) of current site in backup name. (e.g. domain_wpvivid-"
986
- "5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)"
987
- msgstr ""
988
- "Visualizza il dominio(url) del sito corrente nel nome di backup. (ad esempio "
989
- "dominio_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)"
990
 
991
  #: admin/partials/wpvivid-settings-page-display.php:130
992
  msgid "Remove out-of-date backups"
@@ -1005,29 +821,12 @@ msgid "Remove"
1005
  msgstr "Rimuovere"
1006
 
1007
  #: admin/partials/wpvivid-settings-page-display.php:148
1008
- msgid ""
1009
- "The action is irreversible! It will remove all backups are out-of-date "
1010
- "(including local web server and remote storage) if they exist."
1011
- msgstr ""
1012
- "L'azione è irreversibile! Rimuove tutti i backup non aggiornati (incluso il "
1013
- "server web locale e l'archiviazione remota) se presenti."
1014
 
1015
  #: admin/partials/wpvivid-settings-page-display.php:208
1016
- msgid ""
1017
- "In order to use this function, please install a <strong><a target=\"_blank\" "
1018
- "href=\"https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html\" "
1019
- "style=\"text-decoration: none;\">WordPress SMTP plugin</a></strong> of your "
1020
- "preference and configure your SMTP server first. This is because WordPress "
1021
- "uses the PHP Mail function to send its emails by default, which is not "
1022
- "supported by many hosts and can cause issues if it is not set properly."
1023
- msgstr ""
1024
- "Per utilizzare questa funzione, si prega di installare un <strong><a "
1025
- "target=\"_blank\" href=\"https://wpvivid.com/8-best-smtp-plugins-for-"
1026
- "wordpress.html\" style=\"text-decoration: none;\">plugin di SMTP di "
1027
- "WordPress </a></strong> di tua preferenza e configurare prima il tuo server "
1028
- "SMTP. Questo perché WordPress utilizza la funzione PHP Mail per inviare le "
1029
- "sue e-mail di default, che non è supportata da molti host e può causare "
1030
- "problemi se non è impostata correttamente."
1031
 
1032
  #: admin/partials/wpvivid-settings-page-display.php:213
1033
  msgid "Enable email report"
@@ -1047,8 +846,7 @@ msgstr "Invia una notifica via e-mail solo quando un backup non riesce"
1047
 
1048
  #: admin/partials/wpvivid-settings-page-display.php:240
1049
  msgid "Pro feature: Add another email address to get report"
1050
- msgstr ""
1051
- "Funzionalità Pro: aggiungi un altro indirizzo email per ottenere report"
1052
 
1053
  #: admin/partials/wpvivid-settings-page-display.php:287
1054
  msgid "Web-server disk space in use by WPvivid"
@@ -1082,9 +880,7 @@ msgstr "File Temporanei"
1082
 
1083
  #: admin/partials/wpvivid-settings-page-display.php:318
1084
  msgid "Temporary Files are created by wpvivid when restoring a website."
1085
- msgstr ""
1086
- "I file temporanei vengono creati da wpvivid durante il ripristino di un sito "
1087
- "web."
1088
 
1089
  #: admin/partials/wpvivid-settings-page-display.php:322
1090
  msgid "Empty"
@@ -1096,21 +892,15 @@ msgstr "Esporta"
1096
 
1097
  #: admin/partials/wpvivid-settings-page-display.php:425
1098
  msgid "Click 'Export' button to save WPvivid settings on your local computer."
1099
- msgstr ""
1100
- "Clicca sul pulsante \"Esporta\" per salvare le impostazioni di WPvivid sul "
1101
- "computer locale."
1102
 
1103
  #: admin/partials/wpvivid-settings-page-display.php:429
1104
  msgid "Import"
1105
  msgstr "Importazione"
1106
 
1107
  #: admin/partials/wpvivid-settings-page-display.php:430
1108
- msgid ""
1109
- "Importing the json file can help you set WPvivid's configuration on another "
1110
- "wordpress site quickly."
1111
- msgstr ""
1112
- "L'importazione del file json può aiutare ad impostare rapidamente la "
1113
- "configurazione di WPvivid su un altro sito WordPress."
1114
 
1115
  #: admin/partials/wpvivid-settings-page-display.php:550
1116
  msgid "Enable the option when backup failed."
@@ -1122,57 +912,35 @@ msgstr "Ottimizzazione speciale per il web hosting/hosting condiviso"
1122
 
1123
  #: admin/partials/wpvivid-settings-page-display.php:554
1124
  msgid "Enable optimization mode for web hosting/shared hosting"
1125
- msgstr ""
1126
- "Attiva la modalità di ottimizzazione per il web hosting/hosting condiviso"
1127
 
1128
  #: admin/partials/wpvivid-settings-page-display.php:557
1129
- msgid ""
1130
- "Enabling this option can improve the backup success rate, but it will take "
1131
- "more time for backup."
1132
- msgstr ""
1133
- "L'attivazione di questa opzione consente di migliorare il tasso di successo "
1134
- "del backup, ma richiede più tempo per il backup."
1135
 
1136
  #: admin/partials/wpvivid-settings-page-display.php:564
1137
  msgid "Database access method."
1138
  msgstr "Metodo di accesso al database."
1139
 
1140
  #: admin/partials/wpvivid-settings-page-display.php:569
1141
- msgid ""
1142
- "WPDB option has a better compatibility, but the speed of backup and restore "
1143
- "is slower."
1144
- msgstr ""
1145
- "L'opzione WPDB ha una migliore compatibilità, ma la velocità di backup e "
1146
- "ripristino è più lenta."
1147
 
1148
  #: admin/partials/wpvivid-settings-page-display.php:575
1149
- msgid ""
1150
- "It is recommended to choose PDO option if pdo_mysql extension is installed "
1151
- "on your server, which lets you backup and restore your site faster."
1152
- msgstr ""
1153
- "Si consiglia di scegliere l'opzione PDO se l'estensione pdo_mysql è "
1154
- "installata sul vostro server, che consente di eseguire il backup e il "
1155
- "ripristino del sito più velocemente."
1156
 
1157
  #: admin/partials/wpvivid-settings-page-display.php:583
1158
- msgid ""
1159
- "It will cause a lower CPU Usage and is recommended in a web hosting/ shared "
1160
- "hosting environment."
1161
- msgstr ""
1162
- "Ciò comporterà un minore utilizzo della CPU e non è raccomandato in un web "
1163
- "hosting/ ambiente di hosting condiviso."
1164
 
1165
  #: admin/partials/wpvivid-settings-page-display.php:583
1166
  msgid "Only Archive without compressing"
1167
  msgstr "Solo archivio senza compressione"
1168
 
1169
  #: admin/partials/wpvivid-settings-page-display.php:587
1170
- msgid ""
1171
- "It will cause a higher CPU Usage and is recommended in a VPS/ dedicated "
1172
- "hosting environment."
1173
- msgstr ""
1174
- "Provocherà un maggiore utilizzo della CPU ed è raccomandato in un ambiente "
1175
- "di hosting dedicato o VPS."
1176
 
1177
  #: admin/partials/wpvivid-settings-page-display.php:587
1178
  msgid "Compress and Archive"
@@ -1183,119 +951,61 @@ msgid "Compress Files Every"
1183
  msgstr "Comprimi ogni File"
1184
 
1185
  #: admin/partials/wpvivid-settings-page-display.php:599
1186
- msgid ""
1187
- "Some web hosting providers limit large zip files (e.g. 200MB), and therefore "
1188
- "splitting your backup into many parts is an ideal way to avoid hitting the "
1189
- "limitation if you are running a big website. Please try to adjust the value "
1190
- "if you are encountering backup errors. If you use a value of 0 MB, any "
1191
- "backup files won't be split."
1192
- msgstr ""
1193
- "Alcuni fornitori di web hosting limitano i file zip di grandi dimensioni (ad "
1194
- "esempio 200 MB), e quindi dividere il backup in molte parti è un modo ideale "
1195
- "per evitare di colpire la limitazione se si esegue un grande sito web. Si "
1196
- "prega di provare a regolare tale valore se si riscontrano errori di backup. "
1197
- "Se si utilizza un valore di 0 MB, i file di backup non verranno divisi."
1198
 
1199
  #: admin/partials/wpvivid-settings-page-display.php:601
1200
  msgid "Exclude the files which are larger than"
1201
  msgstr "Escludi i file che sono più grandi di"
1202
 
1203
  #: admin/partials/wpvivid-settings-page-display.php:604
1204
- msgid ""
1205
- "Using the option will ignore the file larger than the certain size in MB "
1206
- "when backing up, '0' (zero) means unlimited."
1207
- msgstr ""
1208
- "Usando l'opzione si ignorerà il file più grande della dimensione determinata "
1209
- "in MB durante il backup, '0' (zero) significa illimitato."
1210
 
1211
  #: admin/partials/wpvivid-settings-page-display.php:606
1212
  msgid "PHP script execution timeout for backup"
1213
  msgstr "Timeout di esecuzione dello script PHP per il backup"
1214
 
1215
  #: admin/partials/wpvivid-settings-page-display.php:609
1216
- msgid ""
1217
- "The time-out is not your server PHP time-out. With the execution time "
1218
- "exhausted, our plugin will shut the process of backup down. If the progress "
1219
- "of backup encounters a time-out, that means you have a medium or large sized "
1220
- "website, please try to scale the value bigger."
1221
- msgstr ""
1222
- "Il time-out non è il time-out del vostro server PHP. Con il tempo di "
1223
- "esecuzione esaurito, il nostro plugin interromperà il processo di backup. Se "
1224
- "l'avanzamento del backup incontra un time-out, ciò significa che hai un sito "
1225
- "web di medie o grandi dimensioni, prova ad aumentare il valore."
1226
 
1227
  #: admin/partials/wpvivid-settings-page-display.php:611
1228
  msgid "PHP script execution timeout for restore"
1229
  msgstr "Timeout di esecuzione dello script PHP per il ripristino"
1230
 
1231
  #: admin/partials/wpvivid-settings-page-display.php:614
1232
- msgid ""
1233
- "The time-out is not your server PHP time-out. With the execution time "
1234
- "exhausted, our plugin will shut the process of restore down. If the progress "
1235
- "of restore encounters a time-out, that means you have a medium or large "
1236
- "sized website, please try to scale the value bigger."
1237
- msgstr ""
1238
- "Il time-out non è il time-out del vostro server PHP. Con il tempo di "
1239
- "esecuzione esaurito, il nostro plugin chiuderà il processo di ripristino. Se "
1240
- "il processo di ripristino incontra un time-out, ciò significa che avete un "
1241
- "sito web di medie o grandi dimensioni, prova ad aumentare il valore."
1242
 
1243
  #: admin/partials/wpvivid-settings-page-display.php:616
1244
  msgid "PHP Memory Limit for backup"
1245
  msgstr "Limite di memoria PHP per il backup"
1246
 
1247
  #: admin/partials/wpvivid-settings-page-display.php:619
1248
- msgid ""
1249
- "Adjust this value to apply for a temporary PHP memory limit for WPvivid "
1250
- "backup plugin to run a backup. We set this value to 256M by default. "
1251
- "Increase the value if you encounter a memory exhausted error. Note: some web "
1252
- "hosting providers may not support this."
1253
- msgstr ""
1254
- "Regola questo valore da applicare temporaneamente a PHP memory limit per "
1255
- "WPvivid backup plugin nel processo di ripristino. Per impostazione "
1256
- "predefinita abbiamo regolato questo valore a 256M. Aumenta il valore se si "
1257
- "verifica un errore di memoria esaurita,. Nota: per alcuni provider di web "
1258
- "hosting questo valore non può essere modificato."
1259
 
1260
  #: admin/partials/wpvivid-settings-page-display.php:621
1261
  msgid "PHP Memory Limit for restoration"
1262
  msgstr "Limite di memoria PHP per il ripristino"
1263
 
1264
  #: admin/partials/wpvivid-settings-page-display.php:624
1265
- msgid ""
1266
- "Adjust this value to apply for a temporary PHP memory limit for WPvivid "
1267
- "backup plugin in restore process. We set this value to 256M by default. "
1268
- "Increase the value if you encounter a memory exhausted error. Note: some web "
1269
- "hosting providers may not support this."
1270
- msgstr ""
1271
- "Regola questo valore da applicare temporaneamente a PHP memory limit per "
1272
- "WPvivid backup plugin nel processo di ripristino. Per impostazione "
1273
- "predefinita abbiamo regolato questo valore a 256M. Aumenta il valore se si "
1274
- "verifica un errore di memoria esaurita,. Nota: per alcuni provider di web "
1275
- "hosting questo valore non può essere modificato."
1276
 
1277
  #: admin/partials/wpvivid-settings-page-display.php:626
1278
  msgid "Chunk Size"
1279
  msgstr "Dimensione del Blocco"
1280
 
1281
  #: admin/partials/wpvivid-settings-page-display.php:629
1282
- msgid ""
1283
- "e.g.  if you choose a chunk size of 2MB, a 8MB file will use 4 chunks. "
1284
- "Decreasing this value will break the ISP's transmission limit, for example:"
1285
- "512KB"
1286
- msgstr ""
1287
- "ad esempio, se si sceglie una dimensione del blocco di 2MB, un file da 8MB "
1288
- "userà 4 blocchi. Ridurre questo valore per spezzare il limite di "
1289
- "trasmissione ISP, ad esempio:512 KB"
1290
 
1291
  #: admin/partials/wpvivid-settings-page-display.php:643
1292
  #, php-format
1293
- msgid ""
1294
- "<strong>Retrying </strong>%s<strong> times when encountering a time-out "
1295
- "error</strong>"
1296
- msgstr ""
1297
- "<strong>Riprovando </strong>%s<strong>volte</strong> quando si verifica un "
1298
- "errore di timeout</strong>"
1299
 
1300
  #: admin/partials/wpvivid-settings-page-display.php:659
1301
  msgid "General Settings"
@@ -1306,12 +1016,8 @@ msgid "Advanced Settings"
1306
  msgstr "Impostazioni Avanzate"
1307
 
1308
  #: includes/class-wpvivid-backup-uploader.php:493
1309
- msgid ""
1310
- "Tips: Click the button below to scan all uploaded or received backups in "
1311
- "directory"
1312
- msgstr ""
1313
- "Suggerimenti: Fare clic sul pulsante qui sotto per scansionare tutti i "
1314
- "backup caricati o ricevuti nella directory"
1315
 
1316
  #: includes/class-wpvivid-backup-uploader.php:496
1317
  msgid "Scan uploaded backup or received backup"
@@ -1345,8 +1051,7 @@ msgstr "tempo di esecuzione: "
1345
  #: includes/class-wpvivid-backup.php:1133
1346
  #: includes/class-wpvivid-function-realize.php:42
1347
  msgid "The backup will be canceled after backing up the current chunk ends."
1348
- msgstr ""
1349
- "Il backup sarà annullato dopo aver eseguito il backup delle parti correnti."
1350
 
1351
  #: includes/class-wpvivid-backup.php:2256
1352
  #, php-format
@@ -1373,12 +1078,8 @@ msgid "Learn more"
1373
  msgstr "Per saperne di più"
1374
 
1375
  #: includes/class-wpvivid-export-import.php:124
1376
- msgid ""
1377
- "This will contain all of your posts, pages, comments, terms and images "
1378
- "(original images, featured images and thumbnails)."
1379
- msgstr ""
1380
- "Questo conterrà tutti i vostri post, pagine, commenti, termini e immagini "
1381
- "(immagini originali, immagini in primo piano e miniature)."
1382
 
1383
  #: includes/class-wpvivid-export-import.php:125
1384
  #: includes/class-wpvivid-export-import.php:1518
@@ -1386,19 +1087,13 @@ msgid "Note:"
1386
  msgstr "Nota:"
1387
 
1388
  #: includes/class-wpvivid-export-import.php:125
1389
- msgid ""
1390
- "Try to select fewer items when you are facing a shortage of server resources "
1391
- "(typically presented as a timeout error)."
1392
- msgstr ""
1393
- "Provare a selezionare un numero inferiore di elementi quando si trovano di "
1394
- "fronte a una carenza di risorse del server (in genere presentato come un "
1395
- "errore di timeout)."
1396
 
1397
  #: includes/class-wpvivid-export-import.php:135
1398
  #, php-format
1399
  msgid "Exported files will be temporarily stored in %s directory"
1400
- msgstr ""
1401
- "I file esportati saranno temporaneamente memorizzati nella directory %s"
1402
 
1403
  #: includes/class-wpvivid-export-import.php:141
1404
  msgid "Choose post type"
@@ -1497,25 +1192,16 @@ msgstr "Post id vuoto "
1497
 
1498
  #: includes/class-wpvivid-export-import.php:1123
1499
  #: includes/class-wpvivid-export-import.php:1159
1500
- msgid ""
1501
- "A task is already running. Please wait until the running task is complete, "
1502
- "and try again."
1503
- msgstr ""
1504
- "Un task è già in esecuzione. Si prega di attendere fino a quando il task in "
1505
- "esecuzione sia completato, e di provare di nuovo."
1506
 
1507
  #: includes/class-wpvivid-export-import.php:1149
1508
- msgid ""
1509
- "Error occurred while parsing the request data. Please try to run export task "
1510
- "again."
1511
- msgstr ""
1512
- "Si è verificato un errore durante l'analisi dei dati della richiesta. Si "
1513
- "prega di provare a eseguire di nuovo l'attività di esportazione."
1514
 
1515
  #: includes/class-wpvivid-export-import.php:1304
1516
  msgid "Ready to export. Progress: 0%, running time: 0second."
1517
- msgstr ""
1518
- "Pronto per l'esportazione. Progressi: 0%, tempo di esecuzione: 0 secondi."
1519
 
1520
  #: includes/class-wpvivid-export-import.php:1316
1521
  msgid "The export task is not responding."
@@ -1542,20 +1228,13 @@ msgid "Import posts or pages with images in bulk."
1542
  msgstr "Importa in massa post o pagine con immagini."
1543
 
1544
  #: includes/class-wpvivid-export-import.php:1519
1545
- msgid ""
1546
- "To properly display the imported content, please make sure that the "
1547
- "importing and exporting sites have the same environment, for example, same "
1548
- "theme or pages built with the same page builder."
1549
- msgstr ""
1550
- "Per visualizzare correttamente il contenuto importato, si prega di "
1551
- "assicurarsi che l'importazione e l'esportazione siti abbiano lo stesso "
1552
- "ambiente, per esempio, lo stesso tema o pagine costruite con lo page-builder."
1553
 
1554
  #: includes/class-wpvivid-export-import.php:1528
1555
  #, php-format
1556
  msgid "Imported files will be temporarily stored in directory %s"
1557
- msgstr ""
1558
- "I file importati saranno temporaneamente memorizzati nella directory %s"
1559
 
1560
  #: includes/class-wpvivid-export-import.php:1529
1561
  msgid "Delete Exported Files In Folder"
@@ -1571,13 +1250,8 @@ msgstr "Carica e Importa"
1571
 
1572
  #: includes/class-wpvivid-export-import.php:1538
1573
  #, php-format
1574
- msgid ""
1575
- "Or you can use ftp to upload the export to the directory %s. Then click the "
1576
- "button below to scan the file to import."
1577
- msgstr ""
1578
- "Oppure puoi usare ftp per caricare il file di esportazione nella directory "
1579
- "%s. Quindi clicca sul pulsante qui sotto per scansionare il file da "
1580
- "importare."
1581
 
1582
  #: includes/class-wpvivid-export-import.php:1539
1583
  msgid "Scan Uploaded Exports"
@@ -1608,12 +1282,8 @@ msgid "Overwrite existing pages"
1608
  msgstr "Sovrascrivere le pagine esistenti"
1609
 
1610
  #: includes/class-wpvivid-export-import.php:1559
1611
- msgid ""
1612
- "With this option checked, Pages/posts already existing will be overwritten "
1613
- "with the updated ones in an import."
1614
- msgstr ""
1615
- "Con questa opzione selezionata, le pagine/pubbliche già esistenti saranno "
1616
- "sovrascritte con quelle aggiornate in un'importazione."
1617
 
1618
  #: includes/class-wpvivid-export-import.php:1561
1619
  msgid "Start to Import"
@@ -1690,12 +1360,8 @@ msgstr "Ultima pagina"
1690
 
1691
  #: includes/class-wpvivid-function-realize.php:65
1692
  #: includes/class-wpvivid-function-realize.php:93
1693
- msgid ""
1694
- "Retrieving the backup information failed while showing log. Please try again "
1695
- "later."
1696
- msgstr ""
1697
- "Il recupero delle informazioni di backup non è riuscito mentre si mostrava "
1698
- "il log. Riprovare più tardi."
1699
 
1700
  #: includes/class-wpvivid-function-realize.php:70
1701
  #: includes/class-wpvivid-function-realize.php:82
@@ -1730,8 +1396,7 @@ msgstr "Il File non esiste, file:"
1730
  #: includes/class-wpvivid-importer.php:1676
1731
  #: includes/class-wpvivid-importer.php:1777
1732
  msgid "Sorry, this file type is not permitted for security reasons."
1733
- msgstr ""
1734
- "Mi dispiace, questo tipo di file non è consentito per motivi di sicurezza."
1735
 
1736
  #: includes/class-wpvivid-importer.php:1724
1737
  msgid "Fetching attachments is not enabled"
@@ -1752,30 +1417,19 @@ msgid "There was an error when reading this WXR file"
1752
  msgstr "Si è verificato un errore durante la lettura di questo file WXR"
1753
 
1754
  #: includes/class-wpvivid-importer.php:1878
1755
- msgid ""
1756
- "Details are shown above. The importer will now try again with a different "
1757
- "parser..."
1758
- msgstr ""
1759
- "I dettagli sono riportati sopra. L'importatore ora riproverà con un altro "
1760
- "parser..."
1761
 
1762
  #: includes/class-wpvivid-importer.php:1925
1763
  #: includes/class-wpvivid-importer.php:1930
1764
  #: includes/class-wpvivid-importer.php:2155
1765
  #: includes/class-wpvivid-importer.php:2351
1766
- msgid ""
1767
- "This does not appear to be a WXR file, missing/invalid WXR version number"
1768
- msgstr ""
1769
- "Questo non sembra essere un file WXR, numero di versione WXR mancante/non "
1770
- "valido"
1771
 
1772
  #: includes/class-wpvivid-interface-mainwp.php:138
1773
- msgid ""
1774
- "Error occurred while parsing the request data. Please try to run backup "
1775
- "again."
1776
- msgstr ""
1777
- "Si è verificato un errore durante l'analisi dei dati della richiesta. Si "
1778
- "prega di provare a eseguire di nuovo il backup."
1779
 
1780
  #: includes/class-wpvivid-interface-mainwp.php:182
1781
  #: includes/class-wpvivid-interface-mainwp.php:220
@@ -1789,9 +1443,7 @@ msgstr "La lettura del registro dei log non è riuscita. Riprovare."
1789
 
1790
  #: includes/class-wpvivid-mail-report.php:558
1791
  msgid "Unable to send email. Please check the configuration of email server."
1792
- msgstr ""
1793
- "Impossibile inviare e-mail. Si prega di controllare la configurazione del "
1794
- "server di posta elettronica."
1795
 
1796
  #: includes/class-wpvivid-migrate.php:49
1797
  msgid "Auto-Migration"
@@ -1802,28 +1454,16 @@ msgid "Key"
1802
  msgstr "Chiave"
1803
 
1804
  #: includes/class-wpvivid-migrate.php:390
1805
- msgid ""
1806
- "In order to allow another site to send a backup to this site, please "
1807
- "generate a key below. Once the key is generated, this site is ready to "
1808
- "receive a backup from another site. Then, please copy and paste the key in "
1809
- "sending site and save it."
1810
- msgstr ""
1811
- "Per consentire ad un altro sito di inviare un backup a questo sito, si prega "
1812
- "di generare una chiave qui sotto. Una volta generata la chiave, questo sito "
1813
- "è pronto a ricevere un backup da un altro sito. Quindi, si prega di copiare "
1814
- "e incollare la chiave nel sito di invio e salvarla."
1815
 
1816
  #: includes/class-wpvivid-migrate.php:392
1817
  msgid "The key will expire in "
1818
  msgstr "La chiave scadrà in "
1819
 
1820
  #: includes/class-wpvivid-migrate.php:399
1821
- msgid ""
1822
- "Tips: For security reason, please choose an appropriate expiration time for "
1823
- "the key."
1824
- msgstr ""
1825
- "Suggerimenti: Per motivi di sicurezza, si prega di scegliere un tempo di "
1826
- "scadenza appropriato per la chiave."
1827
 
1828
  #: includes/class-wpvivid-migrate.php:401
1829
  msgid "Generate"
@@ -1843,31 +1483,19 @@ msgstr "Salva"
1843
 
1844
  #: includes/class-wpvivid-migrate.php:969
1845
  msgid "1. Visit Key tab page of WPvivid backup plugin of destination site."
1846
- msgstr ""
1847
- "1. Visita la scheda Chiave nella pagina di WPvivid backup plugin del sito di "
1848
- "destinazione."
1849
 
1850
  #: includes/class-wpvivid-migrate.php:970
1851
  msgid "2. Generate a key by clicking Generate button and copy it."
1852
  msgstr "2. Genera una chiave cliccando il pulsante Genera e copialo."
1853
 
1854
  #: includes/class-wpvivid-migrate.php:971
1855
- msgid ""
1856
- "3. Go back to this page and paste the key in key box below. Lastly, click "
1857
- "Save button."
1858
- msgstr ""
1859
- "3. Torna a questa pagina e incolla il codice nella casella chiave "
1860
- "sottostante. Infine, fai clic su Salva."
1861
 
1862
  #: includes/class-wpvivid-migrate.php:985
1863
- msgid ""
1864
- "The feature can help you transfer a Wordpress site to a new domain(site). It "
1865
- "would be a convenient way to migrate your WP site from dev environment to "
1866
- "live server or from old server to the new."
1867
- msgstr ""
1868
- "La funzione può aiutare a trasferire un sito Wordpress su un nuovo dominio "
1869
- "(sito). Sarebbe un modo conveniente per migrare il vostro sito WP "
1870
- "dall'ambiente dev al live server o dal vecchio server al nuovo."
1871
 
1872
  #: includes/class-wpvivid-migrate.php:995
1873
  msgid "Choose the content you want to transfer"
@@ -1882,100 +1510,49 @@ msgid "Note: "
1882
  msgstr "Nota: "
1883
 
1884
  #: includes/class-wpvivid-migrate.php:1091
1885
- msgid ""
1886
- "1. In order to successfully complete the migration, you'd better deactivate "
1887
- "<a href=\"https://wpvivid.com/best-redirect-plugins.html\" target=\"_blank\" "
1888
- "style=\"text-decoration: none;\">301 redirect plugin</a>, <a href=\"https:"
1889
- "//wpvivid.com/8-best-wordpress-firewall-plugins.html\" target=\"_blank\" "
1890
- "style=\"text-decoration: none;\">firewall and security plugin</a>, and <a "
1891
- "href=\"https://wpvivid.com/best-free-wordpress-caching-plugins.html\" "
1892
- "target=\"_blank\" style=\"text-decoration: none;\">caching plugin</a> (if "
1893
- "they exist) before transferring website."
1894
- msgstr ""
1895
- "1. Per completare con successo la migrazione, è meglio disattivare <a "
1896
- "href=\"https://wpvivid.com/best-redirect-plugins.html\" target=\"_blank\" "
1897
- "style=\"text-decoration: none;\">plugin di reindirizzamento 301</a>, <a "
1898
- "href=\"https://wpvivid.com/8-best-wordpress-firewall-plugins. html\" "
1899
- "target=\"_blank\" style=\"text-decoration: nessuno;\">firewall e plugin di "
1900
- "sicurezza</a>, e <a href=\"https://wpvivid.com/best-free-wordpress-caching-"
1901
- "plugins.html\" target=\"_blank\" style=\"text-decoration: nessuno;\">plugin "
1902
- "di caching</a> (se esistono) prima di trasferire il sito web."
1903
 
1904
  #: includes/class-wpvivid-migrate.php:1092
1905
- msgid ""
1906
- "2. Please migrate website with the manual way when using <strong>Local by "
1907
- "Flywheel</strong> environment."
1908
- msgstr ""
1909
- "2. Si prega di migrare sito web manualmente quando si utilizza <strong>Local "
1910
- "by Flywheel</strong>."
1911
 
1912
  #: includes/class-wpvivid-migrate.php:1098
1913
- msgid ""
1914
- "<strong>Tips: </strong>The unstable connection between sites could cause a "
1915
- "failure of files transfer. In this case, uploading backups to destination "
1916
- "site is a good alternative to the automatic website migration."
1917
- msgstr ""
1918
- "<strong>Suggerimenti: </strong>La connessione instabile tra i siti potrebbe "
1919
- "causare un fallimento del trasferimento dei file. In questo caso, il "
1920
- "caricamento del backup sul sito di destinazione è una buona alternativa alla "
1921
- "migrazione automatica del sito web."
1922
 
1923
  #: includes/class-wpvivid-migrate.php:1099
1924
- msgid ""
1925
- "How to migrate Wordpress site manually to a new domain(site) with WPvivid "
1926
- "backup plugin?"
1927
- msgstr ""
1928
- "Come migrare manualmente il sito Wordpress su un nuovo dominio (sito) con il "
1929
- "plugin di backup WPvivid?"
1930
 
1931
  #: includes/class-wpvivid-migrate.php:1100
1932
  msgid "1. Download a backup in backups list to your computer."
1933
  msgstr "1. Scarica un backup dall'elenco di backup sul tuo computer."
1934
 
1935
  #: includes/class-wpvivid-migrate.php:1101
1936
- msgid ""
1937
- "2. Upload the backup to destination site. There are two ways available to "
1938
- "use:"
1939
- msgstr ""
1940
- "2. Carica il backup del sito di destinazione. Ci sono due modi disponibili:"
1941
 
1942
  #: includes/class-wpvivid-migrate.php:1102
1943
- msgid ""
1944
- "2.1 Upload the backup to the upload section of WPvivid backup plugin in "
1945
- "destination site."
1946
- msgstr ""
1947
- "2.1 Carica il backup nella sezione di caricamento di WPvivid backup plugin "
1948
- "nel sito di destinazione."
1949
 
1950
  #: includes/class-wpvivid-migrate.php:1103
1951
  #, php-format
1952
- msgid ""
1953
- "2.2 Upload the backup with FTP client to backup directory %s in destination "
1954
- "site, then click <strong>Scan uploaded backup or received backup</strong> "
1955
- "button."
1956
- msgstr ""
1957
- "2.2 Carica il backup tramite client FTP nella directory di backup %s del "
1958
- "sito di destinazione, quindi fai clic sul pulsante <strong>Scan backup "
1959
- "caricato o backup ricevuto</strong>."
1960
 
1961
  #: includes/class-wpvivid-migrate.php:1104
1962
- msgid ""
1963
- "3. Once done, the backup appears in backups list. Then, restore the backup."
1964
- msgstr ""
1965
- "3. Una volta fatto, il backup viene visualizzato nell'elenco dei backup. "
1966
- "Quindi, ripristina il backup."
1967
 
1968
  #: includes/class-wpvivid-migrate.php:1124
1969
  msgid "Choose what to migrate"
1970
  msgstr "Scegli ciò che vuoi migrare"
1971
 
1972
  #: includes/class-wpvivid-migrate.php:1185
1973
- msgid ""
1974
- "Transfer succeeded. Please scan the backup list on the destination site to "
1975
- "display the backup, then restore the backup."
1976
- msgstr ""
1977
- "Il trasferimento è riuscito. Si prega di scansione l'elenco di backup del "
1978
- "sito di destinazione per visualizzare il backup e poi ripristinare il backup."
1979
 
1980
  #: includes/class-wpvivid-migrate.php:1245
1981
  msgid "Upload"
@@ -1987,14 +1564,8 @@ msgid "The backups will be uploaded to %s directory."
1987
  msgstr "I backup verranno caricati nella directory %s."
1988
 
1989
  #: includes/class-wpvivid-migrate.php:1258
1990
- msgid ""
1991
- "Note: The files you want to upload must be a backup created by WPvivid "
1992
- "backup plugin. Make sure that uploading every part of a backup to the "
1993
- "directory if the backup is split into many parts"
1994
- msgstr ""
1995
- "Nota: I file che si desidera caricare devono essere un backup creato dal "
1996
- "plugin di backup di WPvivid. Assicurarsi di aver caricato ogni parte del "
1997
- "backup nella directory se il backup è suddiviso in più parti"
1998
 
1999
  #: includes/class-wpvivid-schedule.php:34
2000
  msgid "12 Hours"
@@ -2027,66 +1598,55 @@ msgstr "12 ore"
2027
  #: includes/class-wpvivid-schedule.php:282
2028
  #: includes/class-wpvivid-schedule.php:296
2029
  msgid "Creating scheduled tasks failed. Please try again later."
2030
- msgstr ""
2031
- "Creazione di attività pianificate non riuscita. Si prega di riprovare più "
2032
- "tardi."
2033
 
2034
- #: includes/class-wpvivid.php:507 includes/class-wpvivid.php:515
 
2035
  msgid "A backup type is required."
2036
  msgstr "È richiesto un tipo di backup."
2037
 
2038
- #: includes/class-wpvivid.php:521 includes/class-wpvivid.php:530
 
2039
  msgid "Choose at least one storage location for backups."
2040
  msgstr "Scegli almeno una posizione di archiviazione per il backup."
2041
 
2042
- #: includes/class-wpvivid.php:541 includes/class-wpvivid.php:4557
 
2043
  msgid "There is no default remote storage configured. Please set it up first."
2044
- msgstr ""
2045
- "Non è stata configurata una memoria remota predefinita. Si prega di "
2046
- "impostarla prima."
2047
 
2048
- #: includes/class-wpvivid.php:1408 includes/class-wpvivid.php:1430
2049
- #: includes/class-wpvivid.php:1456 includes/class-wpvivid.php:1581
 
 
2050
  #: includes/class-wpvivid.php:1701
2051
  msgid "Too many resumption attempts."
2052
  msgstr "Troppi tentativi di ripresa."
2053
 
2054
- #: includes/class-wpvivid.php:1589 includes/class-wpvivid.php:1709
 
2055
  msgid "Task timed out."
2056
  msgstr "Task è scaduto."
2057
 
2058
  #: includes/class-wpvivid.php:2479
2059
- msgid ""
2060
- "Retrieving the backup(s) information failed while deleting the selected "
2061
- "backup(s). Please try again later."
2062
- msgstr ""
2063
- "Il recupero delle informazioni del backup non è riuscito mentre si "
2064
- "cancellavano i backup selezionati. Riprovare più tardi."
2065
 
2066
  #: includes/class-wpvivid.php:2489
2067
- msgid ""
2068
- "Unable to delete the locked backup. Please unlock it first and try again."
2069
- msgstr ""
2070
- "Non è possibile cancellare il backup bloccato. Si prega di sbloccarlo prima "
2071
- "e provare di nuovo."
2072
 
2073
  #: includes/class-wpvivid.php:2592
2074
  msgid "You have successfully added a remote storage."
2075
  msgstr "Hai aggiunto con successo uno storage remoto."
2076
 
2077
  #: includes/class-wpvivid.php:2644
2078
- msgid ""
2079
- "Fail to delete the remote storage, can not retrieve the storage infomation. "
2080
- "Please try again."
2081
- msgstr ""
2082
- "Impossibile cancellare lo storage remoto, non è possibile recuperare le "
2083
- "informazioni sulla storage. Si prega di riprovare."
2084
 
2085
  #: includes/class-wpvivid.php:2672
2086
  msgid "Failed to get the remote storage information. Please try again later."
2087
- msgstr ""
2088
- "Impossibile ottenere le informazioni di archiviazione remota. Si prega di "
2089
- "riprovare più tardi."
2090
 
2091
  #: includes/class-wpvivid.php:3416
2092
  msgid "restore failed error unknown"
@@ -2094,11 +1654,10 @@ msgstr "ripristino non riuscito errore sconosciuto"
2094
 
2095
  #: includes/class-wpvivid.php:3449
2096
  msgid "The restore file not found. Please verify the file exists."
2097
- msgstr ""
2098
- "Il file di ripristino non è stato trovato. Si prega di verificare che il "
2099
- "file esista."
2100
 
2101
- #: includes/class-wpvivid.php:3561 includes/class-wpvivid.php:3577
 
2102
  msgid "The last backup message not found."
2103
  msgstr "L'ultimo messaggio di backup non è stato trovato."
2104
 
@@ -2108,14 +1667,8 @@ msgstr "Ultimo Backup: "
2108
 
2109
  #: includes/class-wpvivid.php:3677
2110
  #, php-format
2111
- msgid ""
2112
- "%d backup tasks have been completed. Please switch to <a href=\"#\" "
2113
- "onclick=\"wpvivid_click_switch_page('wrap', 'wpvivid_tab_log', true);\">"
2114
- "Log</a> page to check the details."
2115
- msgstr ""
2116
- "%d I task di backup sono stati completati.. Vai alla <a href=\"#\" "
2117
- "onclick=\"wpvivid_click_switch_page('wrap', 'wpvivid_tab_log', true);\">"
2118
- "Pagina di Log</a> per controllare i dettagli."
2119
 
2120
  #: includes/class-wpvivid.php:3770
2121
  msgid "Getting backup directory failed. Please try again later."
@@ -2133,19 +1686,23 @@ msgstr "I file spazzatura selezionati sono stati cancellati."
2133
  msgid "Choose one storage from the list to be the default storage."
2134
  msgstr "Scegli uno storage dalla lista come storage predefinito."
2135
 
2136
- #: includes/class-wpvivid.php:4465 includes/class-wpvivid.php:4473
 
2137
  msgid "The maximum zip file size is required."
2138
  msgstr "È richiesta la dimensione massima del file zip."
2139
 
2140
- #: includes/class-wpvivid.php:4479 includes/class-wpvivid.php:4486
 
2141
  msgid "The size for excluded files is required."
2142
  msgstr "È richiesta la dimensione per i file esclusi."
2143
 
2144
- #: includes/class-wpvivid.php:4492 includes/class-wpvivid.php:4499
 
2145
  msgid "The maximum execution time for PHP script is required."
2146
  msgstr "È richiesto il tempo di esecuzione massimo per gli script PHP."
2147
 
2148
- #: includes/class-wpvivid.php:4505 includes/class-wpvivid.php:4512
 
2149
  msgid "The local storage path is required."
2150
  msgstr "È necessario il percorso di storage locale."
2151
 
@@ -2153,22 +1710,14 @@ msgstr "È necessario il percorso di storage locale."
2153
  msgid "An email address is required."
2154
  msgstr "Un indirizzo e-mail è obbligatorio."
2155
 
2156
- #: includes/class-wpvivid.php:4531 includes/class-wpvivid.php:4535
2157
- msgid ""
2158
- "The pdo_mysql extension is not detected. Please install the extension first "
2159
- "or choose wpdb option for Database connection method."
2160
- msgstr ""
2161
- "L'estensione pdo_mysql non viene rilevata. Si prega di installare prima "
2162
- "l'estensione o di scegliere l'opzione wpdb per il metodo di connessione al "
2163
- "database."
2164
 
2165
  #: includes/class-wpvivid.php:4654
2166
- msgid ""
2167
- "The selected file is not the setting file for WPvivid. Please upload the "
2168
- "right file."
2169
- msgstr ""
2170
- "Il file selezionato non è il file di impostazione di WPvivid. Si prega di "
2171
- "caricare il file giusto."
2172
 
2173
  #: includes/class-wpvivid.php:4676
2174
  msgid "Invalid email address"
@@ -2183,12 +1732,8 @@ msgid "Save backups on localhost (web server)"
2183
  msgstr "Salva i backup su localhost (server web)"
2184
 
2185
  #: includes/class-wpvivid.php:5406
2186
- msgid ""
2187
- "Send backups to remote storage (choose this option, the local backup will be "
2188
- "deleted after uploading to remote storage completely)"
2189
- msgstr ""
2190
- "Invia i backup allo storage remoto (scegli questa opzione, il backup locale "
2191
- "verrà cancellato dopo averlo caricato completamente nello storage remoto)"
2192
 
2193
  #: includes/class-wpvivid.php:5571
2194
  msgid "User's email address is required."
@@ -2220,12 +1765,8 @@ msgstr "Inserisci un alias univoco: ad esempio, Amazon S3-001"
2220
  #: includes/customclass/class-wpvivid-ftpclass.php:184
2221
  #: includes/customclass/class-wpvivid-google-drive.php:319
2222
  #: includes/customclass/class-wpvivid-google-drive.php:447
2223
- msgid ""
2224
- "A name to help you identify the storage if you have multiple remote storage "
2225
- "connected."
2226
- msgstr ""
2227
- "Un nome per aiutarti a identificare lo storage se hai collegato più storage "
2228
- "remoti."
2229
 
2230
  #: includes/customclass/class-wpvivid-amazons3-plus.php:82
2231
  #: includes/customclass/class-wpvivid-amazons3-plus.php:220
@@ -2265,9 +1806,7 @@ msgstr "Nome del Bucket di Amazon S3 (ad esempio, test)"
2265
  #: includes/customclass/class-wpvivid-amazons3-plus.php:111
2266
  #: includes/customclass/class-wpvivid-amazons3-plus.php:249
2267
  msgid "Enter an existed Bucket to create a custom backup storage directory."
2268
- msgstr ""
2269
- "Inserisci un Bucket esistente per creare una directory di archiviazione di "
2270
- "backup personalizzata."
2271
 
2272
  #: includes/customclass/class-wpvivid-amazons3-plus.php:118
2273
  #: includes/customclass/class-wpvivid-amazons3-plus.php:256
@@ -2276,11 +1815,8 @@ msgstr "Percorso Personalizzato"
2276
 
2277
  #: includes/customclass/class-wpvivid-amazons3-plus.php:123
2278
  #: includes/customclass/class-wpvivid-amazons3-plus.php:261
2279
- msgid ""
2280
- "Customize the directory where you want to store backups within the Bucket."
2281
- msgstr ""
2282
- "Personalizza la directory in cui si desidera archiviare i backup all'interno "
2283
- "del Bucket."
2284
 
2285
  #: includes/customclass/class-wpvivid-amazons3-plus.php:131
2286
  #: includes/customclass/class-wpvivid-dropbox.php:509
@@ -2293,12 +1829,8 @@ msgstr "Impostato come storage remoto predefinito."
2293
  #: includes/customclass/class-wpvivid-dropbox.php:515
2294
  #: includes/customclass/class-wpvivid-ftpclass.php:131
2295
  #: includes/customclass/class-wpvivid-google-drive.php:357
2296
- msgid ""
2297
- "Once checked, all this sites backups sent to a remote storage destination "
2298
- "will be uploaded to this storage by default."
2299
- msgstr ""
2300
- "Una volta spuntati, tutti i backup di questi siti inviati a una destinazione "
2301
- "di archiviazione remota saranno caricati in questo storage di default."
2302
 
2303
  #: includes/customclass/class-wpvivid-amazons3-plus.php:145
2304
  #: includes/customclass/class-wpvivid-amazons3-plus.php:269
@@ -2307,12 +1839,8 @@ msgstr "Classe di storage: Standard (accesso non frequente)."
2307
 
2308
  #: includes/customclass/class-wpvivid-amazons3-plus.php:151
2309
  #: includes/customclass/class-wpvivid-amazons3-plus.php:275
2310
- msgid ""
2311
- "Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA)"
2312
- " storage class for data transfer."
2313
- msgstr ""
2314
- "Seleziona l'opzione per utilizzare la classe di archiviazione Amazon S3 "
2315
- "Standard-Infrequent Access (S3 Standard-IA) per il trasferimento dei dati."
2316
 
2317
  #: includes/customclass/class-wpvivid-amazons3-plus.php:159
2318
  #: includes/customclass/class-wpvivid-amazons3-plus.php:283
@@ -2321,11 +1849,8 @@ msgstr "Crittografia Lato Server."
2321
 
2322
  #: includes/customclass/class-wpvivid-amazons3-plus.php:165
2323
  #: includes/customclass/class-wpvivid-amazons3-plus.php:289
2324
- msgid ""
2325
- "Check the option to use Amazon S3 server-side encryption to protect data."
2326
- msgstr ""
2327
- "Seleziona l'opzione per utilizzare la crittazione lato server di Amazon S3 "
2328
- "per proteggere i dati."
2329
 
2330
  #: includes/customclass/class-wpvivid-amazons3-plus.php:173
2331
  #: includes/customclass/class-wpvivid-ftpclass.php:153
@@ -2333,19 +1858,12 @@ msgid "Test and Add"
2333
  msgstr "Testa e Aggiungi"
2334
 
2335
  #: includes/customclass/class-wpvivid-amazons3-plus.php:178
2336
- msgid ""
2337
- "Click the button to connect to Amazon S3 storage and add it to the storage "
2338
- "list below."
2339
- msgstr ""
2340
- "Clicca il pulsante per connetterti allo storage di Amazon S3 e aggiungerlo "
2341
- "alla lista degli storage qui di seguito."
2342
 
2343
  #: includes/customclass/class-wpvivid-amazons3-plus.php:187
2344
- msgid ""
2345
- "The simplexml extension is not detected. Please install the extension first."
2346
- msgstr ""
2347
- "L'estensione simplexml non viene rilevata. Si prega di installare prima "
2348
- "l'estensione."
2349
 
2350
  #: includes/customclass/class-wpvivid-amazons3-plus.php:302
2351
  #: includes/customclass/class-wpvivid-dropbox.php:614
@@ -2368,15 +1886,8 @@ msgid "Dropbox"
2368
  msgstr "Dropbox"
2369
 
2370
  #: includes/customclass/class-wpvivid-dropbox.php:462
2371
- msgid ""
2372
- "Please read <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" "
2373
- "style=\"text-decoration: none;\">this privacy policy</a> for use of our "
2374
- "Dropbox authorization app (none of your backup data is sent to us)."
2375
- msgstr ""
2376
- "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-"
2377
- "policy\" style=\"text-decoration: none;\">questa informativa sulla "
2378
- "privacy</a> per l'utilizzo della nostra applicazione di autorizzazione per "
2379
- "Dropbox (nessuno dei dati di backup viene inviato a noi)."
2380
 
2381
  #: includes/customclass/class-wpvivid-dropbox.php:465
2382
  #: includes/customclass/class-wpvivid-dropbox.php:590
@@ -2403,12 +1914,8 @@ msgid "Authenticate with Dropbox"
2403
  msgstr "Autenticati con Dropbox"
2404
 
2405
  #: includes/customclass/class-wpvivid-dropbox.php:527
2406
- msgid ""
2407
- "Click the button to get Dropbox authentication and add it to the storage "
2408
- "list below."
2409
- msgstr ""
2410
- "Clicca il pulsante per ottenere il codice di autenticazione di Dropbox e "
2411
- "aggiungerlo alla lista degli storage qui di seguito."
2412
 
2413
  #: includes/customclass/class-wpvivid-ftpclass.php:36
2414
  msgid "FTP"
@@ -2465,58 +1972,32 @@ msgstr "Un percorso assoluto deve esistere(per esempio, /home/nomeutente)"
2465
 
2466
  #: includes/customclass/class-wpvivid-ftpclass.php:117
2467
  #: includes/customclass/class-wpvivid-ftpclass.php:232
2468
- msgid ""
2469
- "Enter an absolute path and a custom subdirectory (optional) for holding the "
2470
- "backups of current website. For example, /home/username/customfolder"
2471
- msgstr ""
2472
- "Inserisci un percorso assoluto e una sottodirectory personalizzata "
2473
- "(opzionale) per tenere i backup del sito web corrente. Ad esempio, "
2474
- "/home/nomeutente/cartellapersonalizzata"
2475
 
2476
  #: includes/customclass/class-wpvivid-ftpclass.php:139
2477
  #: includes/customclass/class-wpvivid-ftpclass.php:240
2478
  msgid "Uncheck this to enable FTP active mode."
2479
- msgstr ""
2480
- "Deseleziona questa opzione per abilitare il server FTP in modalità attiva."
2481
 
2482
  #: includes/customclass/class-wpvivid-ftpclass.php:145
2483
  #: includes/customclass/class-wpvivid-ftpclass.php:246
2484
- msgid ""
2485
- "Uncheck the option to use FTP active mode when transferring files. Make sure "
2486
- "the FTP server you are configuring supports the active FTP mode."
2487
- msgstr ""
2488
- "Deselezionare l'opzione per utilizzare l'FTP in modalità attiva quando il "
2489
- "trasferimento di file. Assicurarsi che il server FTP configurazione supporti "
2490
- "la modalità FTP attiva."
2491
 
2492
  #: includes/customclass/class-wpvivid-ftpclass.php:158
2493
- msgid ""
2494
- "Click the button to connect to FTP server and add it to the storage list "
2495
- "below."
2496
- msgstr ""
2497
- "Clicca il pulsante per connetterti al server FTP e aggiungerlo alla lista "
2498
- "degli storage qui di seguito."
2499
 
2500
  #: includes/customclass/class-wpvivid-google-drive.php:111
2501
  #: includes/customclass/class-wpvivid-google-drive.php:207
2502
- msgid ""
2503
- "Authentication failed, the client_secrets.json file is missing. Please make "
2504
- "sure the client_secrets.json file is in wpvivid-"
2505
- "backuprestore\\includes\\customclass directory."
2506
- msgstr ""
2507
- "Autenticazione non riuscita, il file client_secrets.json è mancante. Si "
2508
- "prega di assicurarsi che il file client_secrets.json sia in wpvivid-"
2509
- "backuprestore\\include\\customclass directory."
2510
 
2511
  #: includes/customclass/class-wpvivid-google-drive.php:115
2512
  #: includes/customclass/class-wpvivid-google-drive.php:211
2513
- msgid ""
2514
- "Authentication failed, the format of the client_secrets.json file is "
2515
- "incorrect. Please delete and re-install the plugin to recreate the file."
2516
- msgstr ""
2517
- "Autenticazione non riuscita, il formato del file client_secrets.json non è "
2518
- "corretto. Si consiglia di cancellare e re-installare il plugin per ricreare "
2519
- "il file."
2520
 
2521
  #: includes/customclass/class-wpvivid-google-drive.php:272
2522
  msgid "You have authenticated the Google Drive account as your remote storage."
@@ -2527,15 +2008,8 @@ msgid "Google Drive"
2527
  msgstr "Google Drive"
2528
 
2529
  #: includes/customclass/class-wpvivid-google-drive.php:304
2530
- msgid ""
2531
- "Please read <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" "
2532
- "style=\"text-decoration: none;\">this privacy policy</a> for use of our "
2533
- "Google Drive authorization app (none of your backup data is sent to us)."
2534
- msgstr ""
2535
- "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-"
2536
- "policy\" style=\"text-decoration: none;\">questa informativa sulla "
2537
- "privacy</a> per l'utilizzo della nostra applicazione di autorizzazione a "
2538
- "Google Drive (nessuno dei dati di backup viene inviato a noi)."
2539
 
2540
  #: includes/customclass/class-wpvivid-google-drive.php:307
2541
  #: includes/customclass/class-wpvivid-google-drive.php:435
@@ -2552,16 +2026,11 @@ msgid "Authenticate with Google Drive"
2552
  msgstr "Autenticati con Google Drive"
2553
 
2554
  #: includes/customclass/class-wpvivid-google-drive.php:369
2555
- msgid ""
2556
- "Click the button to get Google authentication and add it to the storage list "
2557
- "below."
2558
- msgstr ""
2559
- "Clicca il pulsante per ottenere il codice di autenticazione di Google e "
2560
- "aggiungerlo alla lista degli storage qui di seguito."
2561
 
2562
  #: includes/customclass/class-wpvivid-one-drive.php:240
2563
- msgid ""
2564
- "You have authenticated the Microsoft OneDrive account as your remote storage."
2565
  msgstr "Hai autenticato l'account Microsoft OneDrive come tuo storage remoto."
2566
 
2567
  #: includes/customclass/class-wpvivid-one-drive.php:260
@@ -2569,16 +2038,8 @@ msgid "Microsoft OneDrive"
2569
  msgstr "Microsoft OneDrive"
2570
 
2571
  #: includes/customclass/class-wpvivid-one-drive.php:272
2572
- msgid ""
2573
- "Please read <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" "
2574
- "style=\"text-decoration: none;\">this privacy policy</a> for use of our "
2575
- "Microsoft OneDrive authorization app (none of your backup data is sent to us)"
2576
- "."
2577
- msgstr ""
2578
- "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-"
2579
- "policy\" style=\"text-decoration: none;\">questa informativa sulla "
2580
- "privacy</a> per l'utilizzo della nostra applicazione di autorizzazione a "
2581
- "Microsoft OneDrive (nessuno dei dati di backup viene inviato a noi)."
2582
 
2583
  #: includes/customclass/class-wpvivid-one-drive.php:275
2584
  #: includes/customclass/class-wpvivid-one-drive.php:403
@@ -2595,12 +2056,8 @@ msgid "Authenticate with Microsoft OneDrive"
2595
  msgstr "Autenticati con Microsoft OneDrive"
2596
 
2597
  #: includes/customclass/class-wpvivid-one-drive.php:337
2598
- msgid ""
2599
- "Click the button to get Microsoft authentication and add it to the storage "
2600
- "list below."
2601
- msgstr ""
2602
- "Clicca il pulsante per ottenere il codice di autenticazione di Microsoft e "
2603
- "aggiungerlo alla lista degli storage qui di seguito."
2604
 
2605
  #: includes/customclass/class-wpvivid-s3compat.php:403
2606
  msgid "DigitalOcean Spaces"
@@ -2644,17 +2101,12 @@ msgstr "Nome dello spazio(ad esempio test)"
2644
  #: includes/customclass/class-wpvivid-s3compat.php:461
2645
  #: includes/customclass/class-wpvivid-s3compat.php:576
2646
  msgid "Enter an existed Space to create a custom backup storage directory."
2647
- msgstr ""
2648
- "Inserisci uno Spazio esistente per creare una directory di archiviazione di "
2649
- "backup personalizzata."
2650
 
2651
  #: includes/customclass/class-wpvivid-s3compat.php:473
2652
  #: includes/customclass/class-wpvivid-s3compat.php:588
2653
- msgid ""
2654
- "Customize the directory where you want to store backups within the Space."
2655
- msgstr ""
2656
- "Personalizzare la directory in cui si desidera archiviare i backup "
2657
- "all'interno dello Spazio."
2658
 
2659
  #: includes/customclass/class-wpvivid-s3compat.php:480
2660
  #: includes/customclass/class-wpvivid-s3compat.php:595
@@ -2667,12 +2119,8 @@ msgid "Enter the DigitalOcean Endpoint for the storage"
2667
  msgstr "Inserisci l'Endpoint di DigitalOcean per l'archiviazione"
2668
 
2669
  #: includes/customclass/class-wpvivid-s3compat.php:512
2670
- msgid ""
2671
- "Click the button to connect to DigitalOcean Spaces storage and add it to the "
2672
- "storage list below."
2673
- msgstr ""
2674
- "Clicca il pulsante per connetterti allo storage di DigitalOcean Space e di "
2675
- "aggiungerlo alla lista degli storage qui di seguito."
2676
 
2677
  #: includes/customclass/class-wpvivid-sftpclass.php:38
2678
  msgid "SFTP"
@@ -2735,18 +2183,10 @@ msgstr "Un percorso assoluto deve esistere(ad esempio, /var)"
2735
 
2736
  #: includes/customclass/class-wpvivid-sftpclass.php:121
2737
  #: includes/customclass/class-wpvivid-sftpclass.php:236
2738
- msgid ""
2739
- "Enter an absolute path and a custom subdirectory (optional) for holding the "
2740
- "backups of current website. For example, /var/customfolder/"
2741
- msgstr ""
2742
- "Inserisci un percorso assoluto e una sottodirectory personalizzata "
2743
- "(opzionale) per tenere i backup del sito web corrente. Per esempio, "
2744
- "/var/cartellapersonalizzata/"
2745
 
2746
  #: includes/customclass/class-wpvivid-sftpclass.php:148
2747
- msgid ""
2748
- "Click the button to connect to SFTP server and add it to the storage list "
2749
- "below."
2750
- msgstr ""
2751
- "Clicca il pulsante per connetterti al server SFTP e aggiungerlo alla lista "
2752
- "degli storage qui di seguito."
10
  "X-Poedit-Basepath: ..\n"
11
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
12
  "X-Poedit-SourceCharset: utf-8\n"
 
13
  "Report-Msgid-Bugs-To: \n"
14
  "POT-Creation-Date: 2020-05-12 15:27+0000\n"
15
+ "PO-Revision-Date: 2020-07-27 18:40+0800\n"
16
  "Language: it_IT\n"
17
  "X-Generator: Loco https://localise.biz/\n"
18
+ "X-Loco-Version: 2.3.3; wp-5.4.1\n"
19
+ "X-Poedit-SearchPath-0: .\n"
20
 
21
+ #: admin/class-wpvivid-admin.php:100
22
+ #: admin/class-wpvivid-admin.php:114
23
  #: admin/class-wpvivid-admin.php:635
24
  msgid "Backup & Restore"
25
  msgstr "Backup & Ripristino"
26
 
27
+ #: admin/class-wpvivid-admin.php:123
28
+ #: admin/class-wpvivid-admin.php:313
29
  #: admin/class-wpvivid-admin.php:653
30
  msgid "Settings"
31
  msgstr "Impostazioni"
43
  msgstr "Risoluzione dei problemi"
44
 
45
  #: admin/class-wpvivid-admin.php:154
46
+ msgid "Read <a href=\"https://wpvivid.com/troubleshooting-issues-wpvivid-backup-plugin\" target=\"_blank\">Troubleshooting page</a> for faster solutions."
47
+ msgstr "Leggi <a href=\"https://wpvivid.com/troubleshooting-issues-wpvivid-backup-plugin\" target=\"_blank\">la pagina di Risoluzione dei problemi</a> per soluzioni più rapide."
 
 
 
 
 
48
 
49
  #: admin/class-wpvivid-admin.php:157
50
+ msgid "Adjust <a href=\"https://wpvivid.com/wpvivid-backup-plugin-advanced-settings.html\" target=\"_blank\">Advanced Settings</a> for higher task success rate."
51
+ msgstr "Configura le <a href=\"https://wpvivid.com/wpvivid-backup-plugin-advanced-settings.html\" target=\"_blank\">Impostazioni avanzate</a> per una percentuale più alta di successo nello svolgimento delle attività."
 
 
 
 
 
52
 
53
  #: admin/class-wpvivid-admin.php:164
54
  msgid "How-to"
87
  msgstr "Attenzione: l'alias esiste già nella lista degli storage."
88
 
89
  #: admin/class-wpvivid-admin.php:213
90
+ 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."
91
+ msgstr "Il calcolo delle dimensioni dei file, delle cartelle e database è terminata a causa di un time out. Se si continua a ricevere questo errore, si prega di andare alle impostazioni dei plug-in, deselezionare 'Calcolare le dimensioni dei file, delle cartelle e database prima di eseguire il backup', salvare le modifiche, quindi provare di nuovo."
 
 
 
 
 
 
 
 
 
92
 
93
  #: admin/class-wpvivid-admin.php:346
94
+ 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."
95
+ msgstr "La migrazione è completa e il file htaccess è stato sostituito. Per completare con successo la migrazione, è meglio reinstallare il plugin 301 redirect, il plugin firewall e il plugin di sicurezza e il plugin di caching, se esistono."
 
 
 
 
 
 
 
96
 
97
  #: admin/class-wpvivid-admin.php:361
98
+ 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."
99
+ msgstr "Evviva! WPvivid Backup plugin ha ripristinato con successo il tuo sito web. Se hai trovato WPvivid Backup plugin utile, una valutazione di 5 stelle sarebbe molto apprezzata, cosa che ci spinge a continuare a offrire nuove funzionalità."
 
 
 
 
 
 
 
100
 
101
  #: admin/class-wpvivid-admin.php:367
102
  msgid "Restore completed successfully."
103
  msgstr "Ripristino completato."
104
 
105
+ #: admin/class-wpvivid-admin.php:454
106
+ #: admin/class-wpvivid-admin.php:471
107
  msgid "Rate Us"
108
  msgstr "Votaci"
109
 
110
+ #: admin/class-wpvivid-admin.php:455
111
+ #: admin/class-wpvivid-admin.php:472
112
  msgid "Maybe Later"
113
  msgstr "Forse Più Tardi"
114
 
115
+ #: admin/class-wpvivid-admin.php:456
116
+ #: admin/class-wpvivid-admin.php:473
117
  msgid "Never"
118
  msgstr "Mai"
119
 
120
  #: admin/class-wpvivid-admin.php:509
121
+ 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."
122
+ msgstr "Poiché Amazon S3 e DigitalOcean Space hanno aggiornato i loro metodi di connessione, si prega di cancellare le precedenti connessioni e ri-aggiungere i tuoi account tuo Amazon S3/DigitalOcean Space per assicurarti che le connessioni funzionino."
 
 
 
 
 
 
 
123
 
124
  #: admin/class-wpvivid-admin.php:561
125
  #, php-format
126
  msgid "The %s extension is not detected. Please install the extension first."
127
+ msgstr "L'estensione %s non è stata rilevata. Si prega di installare prima l'estensione."
 
 
128
 
129
  #: admin/class-wpvivid-admin.php:564
130
  #, php-format
131
+ msgid "The %s extensions are not detected. Please install the extensions first."
132
+ msgstr "Le estensioni %s non sono state rilevate. Si prega di installare prima le estensioni."
 
 
 
133
 
134
  #: admin/class-wpvivid-admin.php:570
135
+ msgid "Class PclZip is not detected. Please update or reinstall your WordPress."
136
+ msgstr "Classe PclZip non rilevata. Si prega di aggiornare o reinstallare WordPress."
 
 
137
 
138
  #: admin/class-wpvivid-admin.php:575
139
+ msgid "In order to execute the scheduled backups properly, please set the DISABLE_WP_CRON constant to false."
140
+ msgstr "Per eseguire correttamente i backup pianificati, impostare la costante DISABLE_WP_CRON su false."
 
 
 
 
141
 
142
  #: admin/class-wpvivid-admin.php:641
143
  msgid "Schedule"
169
  msgid "Premium"
170
  msgstr "Premium"
171
 
172
+ #: admin/class-wpvivid-admin.php:735
173
+ #: admin/class-wpvivid-admin.php:822
174
  #: admin/partials/wpvivid-remote-storage-page-display.php:48
175
  msgid "Save Changes"
176
  msgstr "Salvare le modifiche"
177
 
178
  #: admin/class-wpvivid-admin.php:870
179
+ msgid "There are two ways available to send us the debug information. The first one is recommended."
180
+ msgstr "Ci sono due modi per inviarci le informazioni di debug. Il primo è raccomandato."
 
 
 
 
181
 
182
  #: admin/class-wpvivid-admin.php:872
183
  msgid "Method 1."
184
  msgstr "Metodo 1."
185
 
186
  #: admin/class-wpvivid-admin.php:872
187
+ 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."
188
+ msgstr "Se è stato configurato l'SMTP sul tuo sito, inserisci il tuo indirizzo e-mail e fai clic sul pulsante qui sotto per inviarci le informazioni rilevanti (informazioni sul sito e gli errori di log) quando si verificano errori. Questo ci aiuterà a capire cosa è successo. Una volta risolto il problema, provvederemo ad informarti per tuo indirizzo e-mail."
 
 
 
 
 
 
 
 
 
 
189
 
190
  #: admin/class-wpvivid-admin.php:875
191
  msgid "WPvivid support email:"
216
  msgstr "Metodo 2."
217
 
218
  #: admin/class-wpvivid-admin.php:909
219
+ 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."
220
+ msgstr "Se non hai configurato l'SMTP sul tuo sito, clicca sul pulsante qui sotto per scaricare le informazioni rilevanti (informazioni sul sito web e registri degli errori) sul tuo PC quando incontrate degli errori. L'invio dei file ci aiuterà a diagnosticare l'accaduto."
 
 
 
 
 
 
 
 
221
 
222
  #: admin/class-wpvivid-admin.php:912
223
  #: admin/partials/wpvivid-backup-restore-page-display.php:178
257
  msgstr "Pagina Seguente >"
258
 
259
  #: admin/class-wpvivid-admin.php:1164
260
+ 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."
261
+ msgstr "Se sei un utente MainWP, puoi impostare e controllare WPvivid Backup Free e Pro per ogni sito child direttamente dalla Bacheca di MainWP, utilizzando la nostra estensione WPvivid Backup for MainWP."
 
 
 
 
 
 
262
 
263
  #: admin/class-wpvivid-admin.php:1167
264
  msgid "Download WPvivid Backup for MainWP"
274
 
275
  #: admin/class-wpvivid-admin.php:1177
276
  msgid "3. Set WPvivid Backup Free and Pro settings for all child sites"
277
+ msgstr "3. Configura le impostazioni di WPvivid Backup Free e Pro per tutti i siti child"
 
 
278
 
279
  #: admin/class-wpvivid-admin.php:1182
280
  msgid "4. Install, claim and update WPvivid Backup Pro for child sites in bulk"
281
+ msgstr "4. Installa, attiva e aggiorna WPvivid Backup Pro in massa per i siti child"
 
282
 
283
  #: admin/class-wpvivid-admin.php:1187
284
+ msgid "5. Set up remote storage for child sites in bulk (for WPvivid Backup Pro only)"
285
+ msgstr "5. Imposta in massa l'archiviazione remota per i siti child (per WPvivid Backup Pro)."
 
 
 
 
286
 
287
  #: admin/class-wpvivid-admin.php:1192
288
  #, php-format
289
+ msgid "We also offer a 40% off discount on WPvivid Backup Pro for MainWP users."
290
+ msgstr "Offriamo anche uno sconto del 40% su WPvivid Backup Pro per gli utenti MainWP."
 
 
 
291
 
292
  #: admin/class-wpvivid-admin.php:1196
293
  msgid "Ask For A 40% OFF Discount"
313
  msgid "Websites"
314
  msgstr "Siti web"
315
 
316
+ #: admin/class-wpvivid-admin.php:1229
317
+ #: admin/class-wpvivid-admin.php:1230
318
+ #: admin/class-wpvivid-admin.php:1231
319
+ #: admin/class-wpvivid-admin.php:1232
320
  msgid "Backup:"
321
  msgstr "Backup:"
322
 
323
+ #: admin/class-wpvivid-admin.php:1229
324
+ #: admin/class-wpvivid-admin.php:1233
325
  msgid "Custom Content"
326
  msgstr "Contenuto Personalizzato"
327
 
337
  msgid "Include/exclude files/folders"
338
  msgstr "Includere/escludere i file e le cartelle"
339
 
340
+ #: admin/class-wpvivid-admin.php:1233
341
+ #: admin/class-wpvivid-admin.php:1234
342
  msgid "Migration:"
343
  msgstr "Migrazione:"
344
 
346
  msgid "Migration via remote storage"
347
  msgstr "Migrazione tramite archiviazione remota"
348
 
349
+ #: admin/class-wpvivid-admin.php:1235
350
+ #: admin/class-wpvivid-admin.php:1236
351
  msgid "Remote Storage:"
352
  msgstr "Archiviazione Remota:"
353
 
359
  msgid "WASABI/Pcloud (Only Pro)"
360
  msgstr "WASABI/Pcloud (Solo Pro)"
361
 
362
+ #: admin/class-wpvivid-admin.php:1237
363
+ #: admin/class-wpvivid-admin.php:1238
364
+ #: admin/class-wpvivid-admin.php:1239
365
+ #: admin/class-wpvivid-admin.php:1240
366
  msgid "Schedule:"
367
  msgstr "Pianificazione:"
368
 
382
  msgid "Custom start time of schedule"
383
  msgstr "Orario personalizzato di inizio del programma "
384
 
385
+ #: admin/class-wpvivid-admin.php:1241
386
+ #: admin/class-wpvivid-admin.php:1242
387
  msgid "Restore:"
388
  msgstr "Ripristino:"
389
 
403
  msgid "Send email reports to multiple email addresses"
404
  msgstr "Invia rapporti e-mail a più indirizzi e-mail"
405
 
406
+ #: admin/class-wpvivid-admin.php:1244
407
+ #: admin/class-wpvivid-admin.php:1245
408
  msgid "Staging (add-on):"
409
  msgstr "Staging (add-on):"
410
 
422
 
423
  #: admin/class-wpvivid-admin.php:1246
424
  msgid "Display the individual sections according to user roles & capabilities"
425
+ msgstr "Visualizza le singole sezioni in base ai ruoli e alle capacità dell'utente"
 
426
 
427
  #: admin/class-wpvivid-admin.php:1247
428
  msgid "Support:"
445
  msgstr "Illimitato"
446
 
447
  #: admin/class-wpvivid-admin.php:1319
448
+ 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."
449
+ msgstr "*Non è necessaria la carta di credito. La prova inizia con il piano di prova gratuita con 2 siti. È possibile scegliere un piano alla fine della prova."
 
 
 
 
450
 
451
  #: admin/class-wpvivid-admin.php:1320
452
  msgid "START 14-DAY FREE TRIAL"
457
  msgstr "WPvivid Backup Plugin"
458
 
459
  #: admin/partials/wpvivid-admin-display.php:63
460
+ msgid "Warning: There is no default remote storage available for the scheduled backups, please set up it first."
461
+ msgstr "Attenzione: non è disponibile uno storage remoto predefinito per i backup pianificati, si prega di impostarla prima."
 
 
 
 
462
 
463
  #: admin/partials/wpvivid-backup-restore-page-display.php:7
464
  #: admin/partials/wpvivid-schedule-page-display.php:126
498
  msgstr "Riguardo il download dei backup "
499
 
500
  #: admin/partials/wpvivid-backup-restore-page-display.php:102
501
+ 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."
502
+ msgstr "->Se i backup sono memorizzati nello storage remoto, il nostro plugin recupererà prima il backup sul tuo server web. Questo può richiedere un po' di tempo a seconda della dimensione dei file di backup. Si prega di avere pazienza. Poi potrai scaricarli sul vostro PC."
 
 
 
 
 
 
 
 
503
 
504
  #: admin/partials/wpvivid-backup-restore-page-display.php:103
505
+ msgid "->If backups are stored in web server, the plugin will list all relevant files immediately."
506
+ msgstr "->Se i backup sono memorizzati nel server web, il plugin elencherà immediatamente tutti i file rilevanti."
 
 
 
 
507
 
508
  #: admin/partials/wpvivid-backup-restore-page-display.php:109
509
+ msgid "How to restore your website from a backup(scheduled, manual, uploaded and received backup)"
510
+ msgstr "Come ripristinare il vostro sito web da un backup(programmato, manuale, caricato e ricevuto)"
 
 
 
 
511
 
512
  #: admin/partials/wpvivid-backup-restore-page-display.php:123
513
  msgid "Backups"
536
  msgstr "Elimina i backup selezionati"
537
 
538
  #: admin/partials/wpvivid-backup-restore-page-display.php:725
539
+ msgid "This backup is locked, are you sure to remove it? This backup will be deleted permanently from your hosting (localhost) and remote storages."
540
+ msgstr "Questo backup è bloccato, sei sicuro di poterlo rimuovere? Questo backup sarà cancellato in modo permanente dal vostro hosting (localhost) e dai magazzini remoti."
 
 
 
 
 
541
 
542
  #: admin/partials/wpvivid-backup-restore-page-display.php:729
543
+ msgid "Are you sure to remove this backup? This backup will be deleted permanently from your hosting (localhost) and remote storages."
544
+ msgstr "Sei sicuro di voler rimuovere questo backup? Questo backup verrà eliminato in modo permanente dal tuo hosting (localhost) e storage remoto."
 
 
 
 
545
 
546
  #: admin/partials/wpvivid-backup-restore-page-display.php:734
547
+ msgid "This request will delete the backup being downloaded, are you sure you want to continue?"
548
+ msgstr "Questa richiesta cancellerà il backup in fase di download, sei sicuro di voler continuare?"
 
 
 
 
549
 
550
  #: admin/partials/wpvivid-backup-restore-page-display.php:773
551
  msgid "Please select at least one item."
552
  msgstr "Si prega di selezionare almeno un elemento."
553
 
554
  #: admin/partials/wpvivid-backup-restore-page-display.php:778
555
+ msgid "This request might delete the backup being downloaded, are you sure you want to continue?"
556
+ msgstr "Questa richiesta potrebbe cancellare il backup in fase di download, sei sicuro di voler continuare?"
 
 
 
 
557
 
558
  #: admin/partials/wpvivid-backup-restore-page-display.php:781
559
+ msgid "Are you sure to remove the selected backups? These backups will be deleted permanently from your hosting (localhost)."
560
+ msgstr "Sei sicuro di voler rimuovere il backup? Questi backup verranno eliminati in modo permanente dal tuo hosting (localhost)."
 
 
 
 
561
 
562
  #: admin/partials/wpvivid-backup-restore-page-display.php:842
563
+ 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"
564
+ msgstr "Passo 1: Nell'elenco dei backup, fare clic sul pulsante 'Ripristina' del backup che si desidera ripristinare. In questo modo si aprirà la scheda di ripristino"
 
 
 
 
 
565
 
566
  #: admin/partials/wpvivid-backup-restore-page-display.php:843
567
  msgid "Step Two: Choose an option to complete restore, if any"
568
+ msgstr "Fase Due: Scegliere una opzione per completare il ripristino, se presente"
 
569
 
570
  #: admin/partials/wpvivid-backup-restore-page-display.php:844
571
  msgid "Step Three: Click 'Restore' button"
576
  msgstr "Ripristino backup da:"
577
 
578
  #: admin/partials/wpvivid-backup-restore-page-display.php:878
579
+ 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."
580
+ msgstr "Si prega di non chiudere la pagina o di non passare ad altre pagine quando è in corso un'attività di ripristino, in quanto potrebbe innescare alcuni errori imprevisti."
 
 
 
 
 
581
 
582
  #: admin/partials/wpvivid-backup-restore-page-display.php:879
583
+ 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."
584
+ msgstr "La funzione Ripristino sostituirà i temi, i plugin, gli upload, i database e/o altre directory di contenuti del sito corrente con gli equivalenti esistenti nel backup selezionato."
 
 
 
 
 
 
585
 
586
  #: admin/partials/wpvivid-backup-restore-page-display.php:882
587
  #, php-format
588
  msgid "Restore and replace the original domain (URL) with %s (migration)"
589
+ msgstr "Ripristina e sostituisci il dominio originale (URL) con %s (migrazione)"
 
590
 
591
  #: admin/partials/wpvivid-backup-restore-page-display.php:885
592
  msgid "Restore and keep the original domain (URL) unchanged"
598
  msgstr "Suggerimenti:"
599
 
600
  #: admin/partials/wpvivid-backup-restore-page-display.php:889
601
+ 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."
602
+ msgstr "Il plugin rileva automaticamente il ripristino del sito o la migrazione (sostituzione del nome a dominio) in base al nome a dominio corrente. Se il nome del dominio nel file di backup è uguale a quello attuale, inizia il ripristino. Al contrario, ripristinare il backup significa sostituire con il nome di dominio corrente. Il presupposto è che il backup venga creato dalla versione 0.9.21 o successiva."
 
 
 
 
 
 
 
 
 
 
 
603
 
604
  #: admin/partials/wpvivid-backup-restore-page-display.php:893
605
  msgid "Terminate"
614
  msgstr "Recupera il backup su localhost"
615
 
616
  #: admin/partials/wpvivid-backup-restore-page-display.php:897
617
+ msgid "The backup is stored on the remote storage, click on the button to download it to localhost."
618
+ msgstr "Il backup viene memorizzato sullo storage remoto, fai clic sul pulsante per scaricarlo su localhost."
 
 
 
 
619
 
620
  #: admin/partials/wpvivid-backup-restore-page-display.php:1489
621
  msgid "Database Size:"
683
  msgstr "Questo backup può essere cancellato solo manualmente"
684
 
685
  #: admin/partials/wpvivid-backup-restore-page-display.php:1787
686
+ msgid "The settings are only for manual backup, which won't affect schedule settings."
687
+ msgstr "Le impostazioni sono solo per il backup manuale, che non influisce sulle impostazioni di programmazione."
 
 
 
 
688
 
689
  #: admin/partials/wpvivid-backup-restore-page-display.php:1806
690
  msgid "Backup Schedule"
749
  msgstr "Pianificazione Avanzata"
750
 
751
  #: admin/partials/wpvivid-schedule-page-display.php:85
752
+ msgid "Highlighted icon illuminates that you have choosed a remote storage to store backups"
753
+ msgstr "L'icona evidenziata indica che è stata scelta uno storage remoto per memorizzare i backup"
 
 
 
 
754
 
755
  #: admin/partials/wpvivid-schedule-page-display.php:95
756
  msgid "+ Add another schedule"
761
  msgstr "Il lavoro pianificato inizierà a <strong>UTC</strong> time:"
762
 
763
  #: admin/partials/wpvivid-schedule-page-display.php:118
764
+ 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."
765
+ msgstr "Essendo soggetto a meccanismi di PHP, un'attività di backup pianificata per il vostro sito verrà attivata solo quando il sito riceverà almeno una visita in qualsiasi pagina."
 
 
 
 
 
766
 
767
  #: admin/partials/wpvivid-settings-page-display.php:88
768
  msgid "backups retained"
774
 
775
  #: admin/partials/wpvivid-settings-page-display.php:93
776
  msgid "Calculate the size of files, folder and database before backing up"
777
+ msgstr "Calcola la dimensione dei file, delle cartelle e del database prima di eseguire il backup"
 
 
778
 
779
  #: admin/partials/wpvivid-settings-page-display.php:99
780
  msgid "Show WPvivid backup plugin on top admin bar"
781
  msgstr "Mostra WPvivid backup plugin in cima all'admin bar"
782
 
783
  #: admin/partials/wpvivid-settings-page-display.php:105
784
+ 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."
785
+ msgstr "Unisci tutti i file di backup in un unico pacchetto quando un backup è completato. In questo modo si risparmiano grandi spazi su disco, anche se ci vuole più tempo. Si consiglia di controllare l'opzione soprattutto su siti con risorse server insufficienti."
 
 
 
 
 
 
 
786
 
787
  #: admin/partials/wpvivid-settings-page-display.php:111
788
  msgid "Keep storing the backups in localhost after uploading to remote storage"
789
+ msgstr "Continua a memorizzare i backup in localhost dopo l'upload nello storage remoto"
 
 
790
 
791
  #: admin/partials/wpvivid-settings-page-display.php:116
792
  msgid "Backup Folder"
793
  msgstr "Cartella Di Backup"
794
 
795
  #: admin/partials/wpvivid-settings-page-display.php:118
796
+ msgid "Name your folder, this folder must be writable for creating backup files."
797
+ msgstr "Dai un nome alla tua cartella, questa cartella deve essere scrivibile per la creazione di file di backup."
 
 
 
798
 
799
  #: admin/partials/wpvivid-settings-page-display.php:120
800
  msgid "Local storage directory:"
801
  msgstr "Directory di archiviazione locale:"
802
 
803
  #: admin/partials/wpvivid-settings-page-display.php:125
804
+ msgid "Display domain(url) of current site in backup name. (e.g. domain_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)"
805
+ msgstr "Visualizza il dominio(url) del sito corrente nel nome di backup. (ad esempio dominio_wpvivid-5ceb938b6dca9_2019-05-27-07-36_backup_all.zip)"
 
 
 
 
806
 
807
  #: admin/partials/wpvivid-settings-page-display.php:130
808
  msgid "Remove out-of-date backups"
821
  msgstr "Rimuovere"
822
 
823
  #: admin/partials/wpvivid-settings-page-display.php:148
824
+ msgid "The action is irreversible! It will remove all backups are out-of-date (including local web server and remote storage) if they exist."
825
+ msgstr "L'azione è irreversibile! Rimuove tutti i backup non aggiornati (incluso il server web locale e l'archiviazione remota) se presenti."
 
 
 
 
826
 
827
  #: admin/partials/wpvivid-settings-page-display.php:208
828
+ 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."
829
+ msgstr "Per utilizzare questa funzione, si prega di installare un <strong><a target=\"_blank\" href=\"https://wpvivid.com/8-best-smtp-plugins-for-wordpress.html\" style=\"text-decoration: none;\">plugin di SMTP di WordPress </a></strong> di tua preferenza e configurare prima il tuo server SMTP. Questo perché WordPress utilizza la funzione PHP Mail per inviare le sue e-mail di default, che non è supportata da molti host e può causare problemi se non è impostata correttamente."
 
 
 
 
 
 
 
 
 
 
 
 
 
830
 
831
  #: admin/partials/wpvivid-settings-page-display.php:213
832
  msgid "Enable email report"
846
 
847
  #: admin/partials/wpvivid-settings-page-display.php:240
848
  msgid "Pro feature: Add another email address to get report"
849
+ msgstr "Funzionalità Pro: aggiungi un altro indirizzo email per ottenere report"
 
850
 
851
  #: admin/partials/wpvivid-settings-page-display.php:287
852
  msgid "Web-server disk space in use by WPvivid"
880
 
881
  #: admin/partials/wpvivid-settings-page-display.php:318
882
  msgid "Temporary Files are created by wpvivid when restoring a website."
883
+ msgstr "I file temporanei vengono creati da wpvivid durante il ripristino di un sito web."
 
 
884
 
885
  #: admin/partials/wpvivid-settings-page-display.php:322
886
  msgid "Empty"
892
 
893
  #: admin/partials/wpvivid-settings-page-display.php:425
894
  msgid "Click 'Export' button to save WPvivid settings on your local computer."
895
+ msgstr "Clicca sul pulsante \"Esporta\" per salvare le impostazioni di WPvivid sul computer locale."
 
 
896
 
897
  #: admin/partials/wpvivid-settings-page-display.php:429
898
  msgid "Import"
899
  msgstr "Importazione"
900
 
901
  #: admin/partials/wpvivid-settings-page-display.php:430
902
+ msgid "Importing the json file can help you set WPvivid's configuration on another wordpress site quickly."
903
+ msgstr "L'importazione del file json può aiutare ad impostare rapidamente la configurazione di WPvivid su un altro sito WordPress."
 
 
 
 
904
 
905
  #: admin/partials/wpvivid-settings-page-display.php:550
906
  msgid "Enable the option when backup failed."
912
 
913
  #: admin/partials/wpvivid-settings-page-display.php:554
914
  msgid "Enable optimization mode for web hosting/shared hosting"
915
+ msgstr "Attiva la modalità di ottimizzazione per il web hosting/hosting condiviso"
 
916
 
917
  #: admin/partials/wpvivid-settings-page-display.php:557
918
+ msgid "Enabling this option can improve the backup success rate, but it will take more time for backup."
919
+ msgstr "L'attivazione di questa opzione consente di migliorare il tasso di successo del backup, ma richiede più tempo per il backup."
 
 
 
 
920
 
921
  #: admin/partials/wpvivid-settings-page-display.php:564
922
  msgid "Database access method."
923
  msgstr "Metodo di accesso al database."
924
 
925
  #: admin/partials/wpvivid-settings-page-display.php:569
926
+ msgid "WPDB option has a better compatibility, but the speed of backup and restore is slower."
927
+ msgstr "L'opzione WPDB ha una migliore compatibilità, ma la velocità di backup e ripristino è più lenta."
 
 
 
 
928
 
929
  #: admin/partials/wpvivid-settings-page-display.php:575
930
+ 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."
931
+ msgstr "Si consiglia di scegliere l'opzione PDO se l'estensione pdo_mysql è installata sul vostro server, che consente di eseguire il backup e il ripristino del sito più velocemente."
 
 
 
 
 
932
 
933
  #: admin/partials/wpvivid-settings-page-display.php:583
934
+ msgid "It will cause a lower CPU Usage and is recommended in a web hosting/ shared hosting environment."
935
+ msgstr "Ciò comporterà un minore utilizzo della CPU e non è raccomandato in un web hosting/ ambiente di hosting condiviso."
 
 
 
 
936
 
937
  #: admin/partials/wpvivid-settings-page-display.php:583
938
  msgid "Only Archive without compressing"
939
  msgstr "Solo archivio senza compressione"
940
 
941
  #: admin/partials/wpvivid-settings-page-display.php:587
942
+ msgid "It will cause a higher CPU Usage and is recommended in a VPS/ dedicated hosting environment."
943
+ msgstr "Provocherà un maggiore utilizzo della CPU ed è raccomandato in un ambiente di hosting dedicato o VPS."
 
 
 
 
944
 
945
  #: admin/partials/wpvivid-settings-page-display.php:587
946
  msgid "Compress and Archive"
951
  msgstr "Comprimi ogni File"
952
 
953
  #: admin/partials/wpvivid-settings-page-display.php:599
954
+ 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."
955
+ msgstr "Alcuni fornitori di web hosting limitano i file zip di grandi dimensioni (ad esempio 200 MB), e quindi dividere il backup in molte parti è un modo ideale per evitare di colpire la limitazione se si esegue un grande sito web. Si prega di provare a regolare tale valore se si riscontrano errori di backup. Se si utilizza un valore di 0 MB, i file di backup non verranno divisi."
 
 
 
 
 
 
 
 
 
 
956
 
957
  #: admin/partials/wpvivid-settings-page-display.php:601
958
  msgid "Exclude the files which are larger than"
959
  msgstr "Escludi i file che sono più grandi di"
960
 
961
  #: admin/partials/wpvivid-settings-page-display.php:604
962
+ msgid "Using the option will ignore the file larger than the certain size in MB when backing up, '0' (zero) means unlimited."
963
+ msgstr "Usando l'opzione si ignorerà il file più grande della dimensione determinata in MB durante il backup, '0' (zero) significa illimitato."
 
 
 
 
964
 
965
  #: admin/partials/wpvivid-settings-page-display.php:606
966
  msgid "PHP script execution timeout for backup"
967
  msgstr "Timeout di esecuzione dello script PHP per il backup"
968
 
969
  #: admin/partials/wpvivid-settings-page-display.php:609
970
+ 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."
971
+ msgstr "Il time-out non è il time-out del vostro server PHP. Con il tempo di esecuzione esaurito, il nostro plugin interromperà il processo di backup. Se l'avanzamento del backup incontra un time-out, ciò significa che hai un sito web di medie o grandi dimensioni, prova ad aumentare il valore."
 
 
 
 
 
 
 
 
972
 
973
  #: admin/partials/wpvivid-settings-page-display.php:611
974
  msgid "PHP script execution timeout for restore"
975
  msgstr "Timeout di esecuzione dello script PHP per il ripristino"
976
 
977
  #: admin/partials/wpvivid-settings-page-display.php:614
978
+ 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."
979
+ msgstr "Il time-out non è il time-out del vostro server PHP. Con il tempo di esecuzione esaurito, il nostro plugin chiuderà il processo di ripristino. Se il processo di ripristino incontra un time-out, ciò significa che avete un sito web di medie o grandi dimensioni, prova ad aumentare il valore."
 
 
 
 
 
 
 
 
980
 
981
  #: admin/partials/wpvivid-settings-page-display.php:616
982
  msgid "PHP Memory Limit for backup"
983
  msgstr "Limite di memoria PHP per il backup"
984
 
985
  #: admin/partials/wpvivid-settings-page-display.php:619
986
+ 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."
987
+ msgstr "Regola questo valore da applicare temporaneamente a PHP memory limit per WPvivid backup plugin nel processo di ripristino. Per impostazione predefinita abbiamo regolato questo valore a 256M. Aumenta il valore se si verifica un errore di memoria esaurita,. Nota: per alcuni provider di web hosting questo valore non può essere modificato."
 
 
 
 
 
 
 
 
 
988
 
989
  #: admin/partials/wpvivid-settings-page-display.php:621
990
  msgid "PHP Memory Limit for restoration"
991
  msgstr "Limite di memoria PHP per il ripristino"
992
 
993
  #: admin/partials/wpvivid-settings-page-display.php:624
994
+ 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."
995
+ msgstr "Regola questo valore da applicare temporaneamente a PHP memory limit per WPvivid backup plugin nel processo di ripristino. Per impostazione predefinita abbiamo regolato questo valore a 256M. Aumenta il valore se si verifica un errore di memoria esaurita,. Nota: per alcuni provider di web hosting questo valore non può essere modificato."
 
 
 
 
 
 
 
 
 
996
 
997
  #: admin/partials/wpvivid-settings-page-display.php:626
998
  msgid "Chunk Size"
999
  msgstr "Dimensione del Blocco"
1000
 
1001
  #: admin/partials/wpvivid-settings-page-display.php:629
1002
+ 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"
1003
+ msgstr "ad esempio, se si sceglie una dimensione del blocco di 2MB, un file da 8MB userà 4 blocchi. Ridurre questo valore per spezzare il limite di trasmissione ISP, ad esempio:512 KB"
 
 
 
 
 
 
1004
 
1005
  #: admin/partials/wpvivid-settings-page-display.php:643
1006
  #, php-format
1007
+ msgid "<strong>Retrying </strong>%s<strong> times when encountering a time-out error</strong>"
1008
+ msgstr "<strong>Riprovando </strong>%s<strong>volte</strong> quando si verifica un errore di timeout</strong>"
 
 
 
 
1009
 
1010
  #: admin/partials/wpvivid-settings-page-display.php:659
1011
  msgid "General Settings"
1016
  msgstr "Impostazioni Avanzate"
1017
 
1018
  #: includes/class-wpvivid-backup-uploader.php:493
1019
+ msgid "Tips: Click the button below to scan all uploaded or received backups in directory"
1020
+ msgstr "Suggerimenti: Fare clic sul pulsante qui sotto per scansionare tutti i backup caricati o ricevuti nella directory"
 
 
 
 
1021
 
1022
  #: includes/class-wpvivid-backup-uploader.php:496
1023
  msgid "Scan uploaded backup or received backup"
1051
  #: includes/class-wpvivid-backup.php:1133
1052
  #: includes/class-wpvivid-function-realize.php:42
1053
  msgid "The backup will be canceled after backing up the current chunk ends."
1054
+ msgstr "Il backup sarà annullato dopo aver eseguito il backup delle parti correnti."
 
1055
 
1056
  #: includes/class-wpvivid-backup.php:2256
1057
  #, php-format
1078
  msgstr "Per saperne di più"
1079
 
1080
  #: includes/class-wpvivid-export-import.php:124
1081
+ msgid "This will contain all of your posts, pages, comments, terms and images (original images, featured images and thumbnails)."
1082
+ msgstr "Questo conterrà tutti i vostri post, pagine, commenti, termini e immagini (immagini originali, immagini in primo piano e miniature)."
 
 
 
 
1083
 
1084
  #: includes/class-wpvivid-export-import.php:125
1085
  #: includes/class-wpvivid-export-import.php:1518
1087
  msgstr "Nota:"
1088
 
1089
  #: includes/class-wpvivid-export-import.php:125
1090
+ msgid "Try to select fewer items when you are facing a shortage of server resources (typically presented as a timeout error)."
1091
+ msgstr "Provare a selezionare un numero inferiore di elementi quando si trovano di fronte a una carenza di risorse del server (in genere presentato come un errore di timeout)."
 
 
 
 
 
1092
 
1093
  #: includes/class-wpvivid-export-import.php:135
1094
  #, php-format
1095
  msgid "Exported files will be temporarily stored in %s directory"
1096
+ msgstr "I file esportati saranno temporaneamente memorizzati nella directory %s"
 
1097
 
1098
  #: includes/class-wpvivid-export-import.php:141
1099
  msgid "Choose post type"
1192
 
1193
  #: includes/class-wpvivid-export-import.php:1123
1194
  #: includes/class-wpvivid-export-import.php:1159
1195
+ msgid "A task is already running. Please wait until the running task is complete, and try again."
1196
+ msgstr "Un task è già in esecuzione. Si prega di attendere fino a quando il task in esecuzione sia completato, e di provare di nuovo."
 
 
 
 
1197
 
1198
  #: includes/class-wpvivid-export-import.php:1149
1199
+ msgid "Error occurred while parsing the request data. Please try to run export task again."
1200
+ msgstr "Si è verificato un errore durante l'analisi dei dati della richiesta. Si prega di provare a eseguire di nuovo l'attività di esportazione."
 
 
 
 
1201
 
1202
  #: includes/class-wpvivid-export-import.php:1304
1203
  msgid "Ready to export. Progress: 0%, running time: 0second."
1204
+ msgstr "Pronto per l'esportazione. Progressi: 0%, tempo di esecuzione: 0 secondi."
 
1205
 
1206
  #: includes/class-wpvivid-export-import.php:1316
1207
  msgid "The export task is not responding."
1228
  msgstr "Importa in massa post o pagine con immagini."
1229
 
1230
  #: includes/class-wpvivid-export-import.php:1519
1231
+ 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."
1232
+ msgstr "Per visualizzare correttamente il contenuto importato, si prega di assicurarsi che l'importazione e l'esportazione siti abbiano lo stesso ambiente, per esempio, lo stesso tema o pagine costruite con lo page-builder."
 
 
 
 
 
 
1233
 
1234
  #: includes/class-wpvivid-export-import.php:1528
1235
  #, php-format
1236
  msgid "Imported files will be temporarily stored in directory %s"
1237
+ msgstr "I file importati saranno temporaneamente memorizzati nella directory %s"
 
1238
 
1239
  #: includes/class-wpvivid-export-import.php:1529
1240
  msgid "Delete Exported Files In Folder"
1250
 
1251
  #: includes/class-wpvivid-export-import.php:1538
1252
  #, php-format
1253
+ 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."
1254
+ msgstr "Oppure puoi usare ftp per caricare il file di esportazione nella directory %s. Quindi clicca sul pulsante qui sotto per scansionare il file da importare."
 
 
 
 
 
1255
 
1256
  #: includes/class-wpvivid-export-import.php:1539
1257
  msgid "Scan Uploaded Exports"
1282
  msgstr "Sovrascrivere le pagine esistenti"
1283
 
1284
  #: includes/class-wpvivid-export-import.php:1559
1285
+ msgid "With this option checked, Pages/posts already existing will be overwritten with the updated ones in an import."
1286
+ msgstr "Con questa opzione selezionata, le pagine/pubbliche già esistenti saranno sovrascritte con quelle aggiornate in un'importazione."
 
 
 
 
1287
 
1288
  #: includes/class-wpvivid-export-import.php:1561
1289
  msgid "Start to Import"
1360
 
1361
  #: includes/class-wpvivid-function-realize.php:65
1362
  #: includes/class-wpvivid-function-realize.php:93
1363
+ msgid "Retrieving the backup information failed while showing log. Please try again later."
1364
+ msgstr "Il recupero delle informazioni di backup non è riuscito mentre si mostrava il log. Riprovare più tardi."
 
 
 
 
1365
 
1366
  #: includes/class-wpvivid-function-realize.php:70
1367
  #: includes/class-wpvivid-function-realize.php:82
1396
  #: includes/class-wpvivid-importer.php:1676
1397
  #: includes/class-wpvivid-importer.php:1777
1398
  msgid "Sorry, this file type is not permitted for security reasons."
1399
+ msgstr "Mi dispiace, questo tipo di file non è consentito per motivi di sicurezza."
 
1400
 
1401
  #: includes/class-wpvivid-importer.php:1724
1402
  msgid "Fetching attachments is not enabled"
1417
  msgstr "Si è verificato un errore durante la lettura di questo file WXR"
1418
 
1419
  #: includes/class-wpvivid-importer.php:1878
1420
+ msgid "Details are shown above. The importer will now try again with a different parser..."
1421
+ msgstr "I dettagli sono riportati sopra. L'importatore ora riproverà con un altro parser..."
 
 
 
 
1422
 
1423
  #: includes/class-wpvivid-importer.php:1925
1424
  #: includes/class-wpvivid-importer.php:1930
1425
  #: includes/class-wpvivid-importer.php:2155
1426
  #: includes/class-wpvivid-importer.php:2351
1427
+ msgid "This does not appear to be a WXR file, missing/invalid WXR version number"
1428
+ msgstr "Questo non sembra essere un file WXR, numero di versione WXR mancante/non valido"
 
 
 
1429
 
1430
  #: includes/class-wpvivid-interface-mainwp.php:138
1431
+ msgid "Error occurred while parsing the request data. Please try to run backup again."
1432
+ msgstr "Si è verificato un errore durante l'analisi dei dati della richiesta. Si prega di provare a eseguire di nuovo il backup."
 
 
 
 
1433
 
1434
  #: includes/class-wpvivid-interface-mainwp.php:182
1435
  #: includes/class-wpvivid-interface-mainwp.php:220
1443
 
1444
  #: includes/class-wpvivid-mail-report.php:558
1445
  msgid "Unable to send email. Please check the configuration of email server."
1446
+ msgstr "Impossibile inviare e-mail. Si prega di controllare la configurazione del server di posta elettronica."
 
 
1447
 
1448
  #: includes/class-wpvivid-migrate.php:49
1449
  msgid "Auto-Migration"
1454
  msgstr "Chiave"
1455
 
1456
  #: includes/class-wpvivid-migrate.php:390
1457
+ 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."
1458
+ msgstr "Per consentire ad un altro sito di inviare un backup a questo sito, si prega di generare una chiave qui sotto. Una volta generata la chiave, questo sito è pronto a ricevere un backup da un altro sito. Quindi, si prega di copiare e incollare la chiave nel sito di invio e salvarla."
 
 
 
 
 
 
 
 
1459
 
1460
  #: includes/class-wpvivid-migrate.php:392
1461
  msgid "The key will expire in "
1462
  msgstr "La chiave scadrà in "
1463
 
1464
  #: includes/class-wpvivid-migrate.php:399
1465
+ msgid "Tips: For security reason, please choose an appropriate expiration time for the key."
1466
+ msgstr "Suggerimenti: Per motivi di sicurezza, si prega di scegliere un tempo di scadenza appropriato per la chiave."
 
 
 
 
1467
 
1468
  #: includes/class-wpvivid-migrate.php:401
1469
  msgid "Generate"
1483
 
1484
  #: includes/class-wpvivid-migrate.php:969
1485
  msgid "1. Visit Key tab page of WPvivid backup plugin of destination site."
1486
+ msgstr "1. Visita la scheda Chiave nella pagina di WPvivid backup plugin del sito di destinazione."
 
 
1487
 
1488
  #: includes/class-wpvivid-migrate.php:970
1489
  msgid "2. Generate a key by clicking Generate button and copy it."
1490
  msgstr "2. Genera una chiave cliccando il pulsante Genera e copialo."
1491
 
1492
  #: includes/class-wpvivid-migrate.php:971
1493
+ msgid "3. Go back to this page and paste the key in key box below. Lastly, click Save button."
1494
+ msgstr "3. Torna a questa pagina e incolla il codice nella casella chiave sottostante. Infine, fai clic su Salva."
 
 
 
 
1495
 
1496
  #: includes/class-wpvivid-migrate.php:985
1497
+ 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."
1498
+ msgstr "La funzione può aiutare a trasferire un sito Wordpress su un nuovo dominio (sito). Sarebbe un modo conveniente per migrare il vostro sito WP dall'ambiente dev al live server o dal vecchio server al nuovo."
 
 
 
 
 
 
1499
 
1500
  #: includes/class-wpvivid-migrate.php:995
1501
  msgid "Choose the content you want to transfer"
1510
  msgstr "Nota: "
1511
 
1512
  #: includes/class-wpvivid-migrate.php:1091
1513
+ 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."
1514
+ msgstr "1. Per completare con successo la migrazione, è meglio disattivare <a href=\"https://wpvivid.com/best-redirect-plugins.html\" target=\"_blank\" style=\"text-decoration: none;\">plugin di reindirizzamento 301</a>, <a href=\"https://wpvivid.com/8-best-wordpress-firewall-plugins. html\" target=\"_blank\" style=\"text-decoration: nessuno;\">firewall e plugin di sicurezza</a>, e <a href=\"https://wpvivid.com/best-free-wordpress-caching-plugins.html\" target=\"_blank\" style=\"text-decoration: nessuno;\">plugin di caching</a> (se esistono) prima di trasferire il sito web."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1515
 
1516
  #: includes/class-wpvivid-migrate.php:1092
1517
+ msgid "2. Please migrate website with the manual way when using <strong>Local by Flywheel</strong> environment."
1518
+ msgstr "2. Si prega di migrare sito web manualmente quando si utilizza <strong>Local by Flywheel</strong>."
 
 
 
 
1519
 
1520
  #: includes/class-wpvivid-migrate.php:1098
1521
+ 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."
1522
+ msgstr "<strong>Suggerimenti: </strong>La connessione instabile tra i siti potrebbe causare un fallimento del trasferimento dei file. In questo caso, il caricamento del backup sul sito di destinazione è una buona alternativa alla migrazione automatica del sito web."
 
 
 
 
 
 
 
1523
 
1524
  #: includes/class-wpvivid-migrate.php:1099
1525
+ msgid "How to migrate Wordpress site manually to a new domain(site) with WPvivid backup plugin?"
1526
+ msgstr "Come migrare manualmente il sito Wordpress su un nuovo dominio (sito) con il plugin di backup WPvivid?"
 
 
 
 
1527
 
1528
  #: includes/class-wpvivid-migrate.php:1100
1529
  msgid "1. Download a backup in backups list to your computer."
1530
  msgstr "1. Scarica un backup dall'elenco di backup sul tuo computer."
1531
 
1532
  #: includes/class-wpvivid-migrate.php:1101
1533
+ msgid "2. Upload the backup to destination site. There are two ways available to use:"
1534
+ msgstr "2. Carica il backup del sito di destinazione. Ci sono due modi disponibili:"
 
 
 
1535
 
1536
  #: includes/class-wpvivid-migrate.php:1102
1537
+ msgid "2.1 Upload the backup to the upload section of WPvivid backup plugin in destination site."
1538
+ msgstr "2.1 Carica il backup nella sezione di caricamento di WPvivid backup plugin nel sito di destinazione."
 
 
 
 
1539
 
1540
  #: includes/class-wpvivid-migrate.php:1103
1541
  #, php-format
1542
+ 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."
1543
+ msgstr "2.2 Carica il backup tramite client FTP nella directory di backup %s del sito di destinazione, quindi fai clic sul pulsante <strong>Scan backup caricato o backup ricevuto</strong>."
 
 
 
 
 
 
1544
 
1545
  #: includes/class-wpvivid-migrate.php:1104
1546
+ msgid "3. Once done, the backup appears in backups list. Then, restore the backup."
1547
+ msgstr "3. Una volta fatto, il backup viene visualizzato nell'elenco dei backup. Quindi, ripristina il backup."
 
 
 
1548
 
1549
  #: includes/class-wpvivid-migrate.php:1124
1550
  msgid "Choose what to migrate"
1551
  msgstr "Scegli ciò che vuoi migrare"
1552
 
1553
  #: includes/class-wpvivid-migrate.php:1185
1554
+ msgid "Transfer succeeded. Please scan the backup list on the destination site to display the backup, then restore the backup."
1555
+ msgstr "Il trasferimento è riuscito. Si prega di scansione l'elenco di backup del sito di destinazione per visualizzare il backup e poi ripristinare il backup."
 
 
 
 
1556
 
1557
  #: includes/class-wpvivid-migrate.php:1245
1558
  msgid "Upload"
1564
  msgstr "I backup verranno caricati nella directory %s."
1565
 
1566
  #: includes/class-wpvivid-migrate.php:1258
1567
+ 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"
1568
+ msgstr "Nota: I file che si desidera caricare devono essere un backup creato dal plugin di backup di WPvivid. Assicurarsi di aver caricato ogni parte del backup nella directory se il backup è suddiviso in più parti"
 
 
 
 
 
 
1569
 
1570
  #: includes/class-wpvivid-schedule.php:34
1571
  msgid "12 Hours"
1598
  #: includes/class-wpvivid-schedule.php:282
1599
  #: includes/class-wpvivid-schedule.php:296
1600
  msgid "Creating scheduled tasks failed. Please try again later."
1601
+ msgstr "Creazione di attività pianificate non riuscita. Si prega di riprovare più tardi."
 
 
1602
 
1603
+ #: includes/class-wpvivid.php:507
1604
+ #: includes/class-wpvivid.php:515
1605
  msgid "A backup type is required."
1606
  msgstr "È richiesto un tipo di backup."
1607
 
1608
+ #: includes/class-wpvivid.php:521
1609
+ #: includes/class-wpvivid.php:530
1610
  msgid "Choose at least one storage location for backups."
1611
  msgstr "Scegli almeno una posizione di archiviazione per il backup."
1612
 
1613
+ #: includes/class-wpvivid.php:541
1614
+ #: includes/class-wpvivid.php:4557
1615
  msgid "There is no default remote storage configured. Please set it up first."
1616
+ msgstr "Non è stata configurata una memoria remota predefinita. Si prega di impostarla prima."
 
 
1617
 
1618
+ #: includes/class-wpvivid.php:1408
1619
+ #: includes/class-wpvivid.php:1430
1620
+ #: includes/class-wpvivid.php:1456
1621
+ #: includes/class-wpvivid.php:1581
1622
  #: includes/class-wpvivid.php:1701
1623
  msgid "Too many resumption attempts."
1624
  msgstr "Troppi tentativi di ripresa."
1625
 
1626
+ #: includes/class-wpvivid.php:1589
1627
+ #: includes/class-wpvivid.php:1709
1628
  msgid "Task timed out."
1629
  msgstr "Task è scaduto."
1630
 
1631
  #: includes/class-wpvivid.php:2479
1632
+ msgid "Retrieving the backup(s) information failed while deleting the selected backup(s). Please try again later."
1633
+ msgstr "Il recupero delle informazioni del backup non è riuscito mentre si cancellavano i backup selezionati. Riprovare più tardi."
 
 
 
 
1634
 
1635
  #: includes/class-wpvivid.php:2489
1636
+ msgid "Unable to delete the locked backup. Please unlock it first and try again."
1637
+ msgstr "Non è possibile cancellare il backup bloccato. Si prega di sbloccarlo prima e provare di nuovo."
 
 
 
1638
 
1639
  #: includes/class-wpvivid.php:2592
1640
  msgid "You have successfully added a remote storage."
1641
  msgstr "Hai aggiunto con successo uno storage remoto."
1642
 
1643
  #: includes/class-wpvivid.php:2644
1644
+ msgid "Fail to delete the remote storage, can not retrieve the storage infomation. Please try again."
1645
+ msgstr "Impossibile cancellare lo storage remoto, non è possibile recuperare le informazioni sulla storage. Si prega di riprovare."
 
 
 
 
1646
 
1647
  #: includes/class-wpvivid.php:2672
1648
  msgid "Failed to get the remote storage information. Please try again later."
1649
+ msgstr "Impossibile ottenere le informazioni di archiviazione remota. Si prega di riprovare più tardi."
 
 
1650
 
1651
  #: includes/class-wpvivid.php:3416
1652
  msgid "restore failed error unknown"
1654
 
1655
  #: includes/class-wpvivid.php:3449
1656
  msgid "The restore file not found. Please verify the file exists."
1657
+ msgstr "Il file di ripristino non è stato trovato. Si prega di verificare che il file esista."
 
 
1658
 
1659
+ #: includes/class-wpvivid.php:3561
1660
+ #: includes/class-wpvivid.php:3577
1661
  msgid "The last backup message not found."
1662
  msgstr "L'ultimo messaggio di backup non è stato trovato."
1663
 
1667
 
1668
  #: includes/class-wpvivid.php:3677
1669
  #, php-format
1670
+ 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."
1671
+ msgstr "%d I task di backup sono stati completati.. Vai alla <a href=\"#\" onclick=\"wpvivid_click_switch_page('wrap', 'wpvivid_tab_log', true);\">Pagina di Log</a> per controllare i dettagli."
 
 
 
 
 
 
1672
 
1673
  #: includes/class-wpvivid.php:3770
1674
  msgid "Getting backup directory failed. Please try again later."
1686
  msgid "Choose one storage from the list to be the default storage."
1687
  msgstr "Scegli uno storage dalla lista come storage predefinito."
1688
 
1689
+ #: includes/class-wpvivid.php:4465
1690
+ #: includes/class-wpvivid.php:4473
1691
  msgid "The maximum zip file size is required."
1692
  msgstr "È richiesta la dimensione massima del file zip."
1693
 
1694
+ #: includes/class-wpvivid.php:4479
1695
+ #: includes/class-wpvivid.php:4486
1696
  msgid "The size for excluded files is required."
1697
  msgstr "È richiesta la dimensione per i file esclusi."
1698
 
1699
+ #: includes/class-wpvivid.php:4492
1700
+ #: includes/class-wpvivid.php:4499
1701
  msgid "The maximum execution time for PHP script is required."
1702
  msgstr "È richiesto il tempo di esecuzione massimo per gli script PHP."
1703
 
1704
+ #: includes/class-wpvivid.php:4505
1705
+ #: includes/class-wpvivid.php:4512
1706
  msgid "The local storage path is required."
1707
  msgstr "È necessario il percorso di storage locale."
1708
 
1710
  msgid "An email address is required."
1711
  msgstr "Un indirizzo e-mail è obbligatorio."
1712
 
1713
+ #: includes/class-wpvivid.php:4531
1714
+ #: includes/class-wpvivid.php:4535
1715
+ msgid "The pdo_mysql extension is not detected. Please install the extension first or choose wpdb option for Database connection method."
1716
+ msgstr "L'estensione pdo_mysql non viene rilevata. Si prega di installare prima l'estensione o di scegliere l'opzione wpdb per il metodo di connessione al database."
 
 
 
 
1717
 
1718
  #: includes/class-wpvivid.php:4654
1719
+ msgid "The selected file is not the setting file for WPvivid. Please upload the right file."
1720
+ msgstr "Il file selezionato non è il file di impostazione di WPvivid. Si prega di caricare il file giusto."
 
 
 
 
1721
 
1722
  #: includes/class-wpvivid.php:4676
1723
  msgid "Invalid email address"
1732
  msgstr "Salva i backup su localhost (server web)"
1733
 
1734
  #: includes/class-wpvivid.php:5406
1735
+ msgid "Send backups to remote storage (choose this option, the local backup will be deleted after uploading to remote storage completely)"
1736
+ msgstr "Invia i backup allo storage remoto (scegli questa opzione, il backup locale verrà cancellato dopo averlo caricato completamente nello storage remoto)"
 
 
 
 
1737
 
1738
  #: includes/class-wpvivid.php:5571
1739
  msgid "User's email address is required."
1765
  #: includes/customclass/class-wpvivid-ftpclass.php:184
1766
  #: includes/customclass/class-wpvivid-google-drive.php:319
1767
  #: includes/customclass/class-wpvivid-google-drive.php:447
1768
+ msgid "A name to help you identify the storage if you have multiple remote storage connected."
1769
+ msgstr "Un nome per aiutarti a identificare lo storage se hai collegato più storage remoti."
 
 
 
 
1770
 
1771
  #: includes/customclass/class-wpvivid-amazons3-plus.php:82
1772
  #: includes/customclass/class-wpvivid-amazons3-plus.php:220
1806
  #: includes/customclass/class-wpvivid-amazons3-plus.php:111
1807
  #: includes/customclass/class-wpvivid-amazons3-plus.php:249
1808
  msgid "Enter an existed Bucket to create a custom backup storage directory."
1809
+ msgstr "Inserisci un Bucket esistente per creare una directory di archiviazione di backup personalizzata."
 
 
1810
 
1811
  #: includes/customclass/class-wpvivid-amazons3-plus.php:118
1812
  #: includes/customclass/class-wpvivid-amazons3-plus.php:256
1815
 
1816
  #: includes/customclass/class-wpvivid-amazons3-plus.php:123
1817
  #: includes/customclass/class-wpvivid-amazons3-plus.php:261
1818
+ msgid "Customize the directory where you want to store backups within the Bucket."
1819
+ msgstr "Personalizza la directory in cui si desidera archiviare i backup all'interno del Bucket."
 
 
 
1820
 
1821
  #: includes/customclass/class-wpvivid-amazons3-plus.php:131
1822
  #: includes/customclass/class-wpvivid-dropbox.php:509
1829
  #: includes/customclass/class-wpvivid-dropbox.php:515
1830
  #: includes/customclass/class-wpvivid-ftpclass.php:131
1831
  #: includes/customclass/class-wpvivid-google-drive.php:357
1832
+ msgid "Once checked, all this sites backups sent to a remote storage destination will be uploaded to this storage by default."
1833
+ msgstr "Una volta spuntati, tutti i backup di questi siti inviati a una destinazione di archiviazione remota saranno caricati in questo storage di default."
 
 
 
 
1834
 
1835
  #: includes/customclass/class-wpvivid-amazons3-plus.php:145
1836
  #: includes/customclass/class-wpvivid-amazons3-plus.php:269
1839
 
1840
  #: includes/customclass/class-wpvivid-amazons3-plus.php:151
1841
  #: includes/customclass/class-wpvivid-amazons3-plus.php:275
1842
+ msgid "Check the option to use Amazon S3 Standard-Infrequent Access (S3 Standard-IA) storage class for data transfer."
1843
+ msgstr "Seleziona l'opzione per utilizzare la classe di archiviazione Amazon S3 Standard-Infrequent Access (S3 Standard-IA) per il trasferimento dei dati."
 
 
 
 
1844
 
1845
  #: includes/customclass/class-wpvivid-amazons3-plus.php:159
1846
  #: includes/customclass/class-wpvivid-amazons3-plus.php:283
1849
 
1850
  #: includes/customclass/class-wpvivid-amazons3-plus.php:165
1851
  #: includes/customclass/class-wpvivid-amazons3-plus.php:289
1852
+ msgid "Check the option to use Amazon S3 server-side encryption to protect data."
1853
+ msgstr "Seleziona l'opzione per utilizzare la crittazione lato server di Amazon S3 per proteggere i dati."
 
 
 
1854
 
1855
  #: includes/customclass/class-wpvivid-amazons3-plus.php:173
1856
  #: includes/customclass/class-wpvivid-ftpclass.php:153
1858
  msgstr "Testa e Aggiungi"
1859
 
1860
  #: includes/customclass/class-wpvivid-amazons3-plus.php:178
1861
+ msgid "Click the button to connect to Amazon S3 storage and add it to the storage list below."
1862
+ msgstr "Clicca il pulsante per connetterti allo storage di Amazon S3 e aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
1863
 
1864
  #: includes/customclass/class-wpvivid-amazons3-plus.php:187
1865
+ msgid "The simplexml extension is not detected. Please install the extension first."
1866
+ msgstr "L'estensione simplexml non viene rilevata. Si prega di installare prima l'estensione."
 
 
 
1867
 
1868
  #: includes/customclass/class-wpvivid-amazons3-plus.php:302
1869
  #: includes/customclass/class-wpvivid-dropbox.php:614
1886
  msgstr "Dropbox"
1887
 
1888
  #: includes/customclass/class-wpvivid-dropbox.php:462
1889
+ 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)."
1890
+ msgstr "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" style=\"text-decoration: none;\">questa informativa sulla privacy</a> per l'utilizzo della nostra applicazione di autorizzazione per Dropbox (nessuno dei dati di backup viene inviato a noi)."
 
 
 
 
 
 
 
1891
 
1892
  #: includes/customclass/class-wpvivid-dropbox.php:465
1893
  #: includes/customclass/class-wpvivid-dropbox.php:590
1914
  msgstr "Autenticati con Dropbox"
1915
 
1916
  #: includes/customclass/class-wpvivid-dropbox.php:527
1917
+ msgid "Click the button to get Dropbox authentication and add it to the storage list below."
1918
+ msgstr "Clicca il pulsante per ottenere il codice di autenticazione di Dropbox e aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
1919
 
1920
  #: includes/customclass/class-wpvivid-ftpclass.php:36
1921
  msgid "FTP"
1972
 
1973
  #: includes/customclass/class-wpvivid-ftpclass.php:117
1974
  #: includes/customclass/class-wpvivid-ftpclass.php:232
1975
+ msgid "Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /home/username/customfolder"
1976
+ msgstr "Inserisci un percorso assoluto e una sottodirectory personalizzata (opzionale) per tenere i backup del sito web corrente. Ad esempio, /home/nomeutente/cartellapersonalizzata"
 
 
 
 
 
1977
 
1978
  #: includes/customclass/class-wpvivid-ftpclass.php:139
1979
  #: includes/customclass/class-wpvivid-ftpclass.php:240
1980
  msgid "Uncheck this to enable FTP active mode."
1981
+ msgstr "Deseleziona questa opzione per abilitare il server FTP in modalità attiva."
 
1982
 
1983
  #: includes/customclass/class-wpvivid-ftpclass.php:145
1984
  #: includes/customclass/class-wpvivid-ftpclass.php:246
1985
+ 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."
1986
+ msgstr "Deselezionare l'opzione per utilizzare l'FTP in modalità attiva quando il trasferimento di file. Assicurarsi che il server FTP configurazione supporti la modalità FTP attiva."
 
 
 
 
 
1987
 
1988
  #: includes/customclass/class-wpvivid-ftpclass.php:158
1989
+ msgid "Click the button to connect to FTP server and add it to the storage list below."
1990
+ msgstr "Clicca il pulsante per connetterti al server FTP e aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
1991
 
1992
  #: includes/customclass/class-wpvivid-google-drive.php:111
1993
  #: includes/customclass/class-wpvivid-google-drive.php:207
1994
+ 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."
1995
+ msgstr "Autenticazione non riuscita, il file client_secrets.json è mancante. Si prega di assicurarsi che il file client_secrets.json sia in wpvivid-backuprestore\\include\\customclass directory."
 
 
 
 
 
 
1996
 
1997
  #: includes/customclass/class-wpvivid-google-drive.php:115
1998
  #: includes/customclass/class-wpvivid-google-drive.php:211
1999
+ msgid "Authentication failed, the format of the client_secrets.json file is incorrect. Please delete and re-install the plugin to recreate the file."
2000
+ msgstr "Autenticazione non riuscita, il formato del file client_secrets.json non è corretto. Si consiglia di cancellare e re-installare il plugin per ricreare il file."
 
 
 
 
 
2001
 
2002
  #: includes/customclass/class-wpvivid-google-drive.php:272
2003
  msgid "You have authenticated the Google Drive account as your remote storage."
2008
  msgstr "Google Drive"
2009
 
2010
  #: includes/customclass/class-wpvivid-google-drive.php:304
2011
+ 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)."
2012
+ msgstr "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" style=\"text-decoration: none;\">questa informativa sulla privacy</a> per l'utilizzo della nostra applicazione di autorizzazione a Google Drive (nessuno dei dati di backup viene inviato a noi)."
 
 
 
 
 
 
 
2013
 
2014
  #: includes/customclass/class-wpvivid-google-drive.php:307
2015
  #: includes/customclass/class-wpvivid-google-drive.php:435
2026
  msgstr "Autenticati con Google Drive"
2027
 
2028
  #: includes/customclass/class-wpvivid-google-drive.php:369
2029
+ msgid "Click the button to get Google authentication and add it to the storage list below."
2030
+ msgstr "Clicca il pulsante per ottenere il codice di autenticazione di Google e aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
2031
 
2032
  #: includes/customclass/class-wpvivid-one-drive.php:240
2033
+ msgid "You have authenticated the Microsoft OneDrive account as your remote storage."
 
2034
  msgstr "Hai autenticato l'account Microsoft OneDrive come tuo storage remoto."
2035
 
2036
  #: includes/customclass/class-wpvivid-one-drive.php:260
2038
  msgstr "Microsoft OneDrive"
2039
 
2040
  #: includes/customclass/class-wpvivid-one-drive.php:272
2041
+ 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)."
2042
+ msgstr "Si prega di leggere <a target=\"_blank\" href=\"https://wpvivid.com/privacy-policy\" style=\"text-decoration: none;\">questa informativa sulla privacy</a> per l'utilizzo della nostra applicazione di autorizzazione a Microsoft OneDrive (nessuno dei dati di backup viene inviato a noi)."
 
 
 
 
 
 
 
 
2043
 
2044
  #: includes/customclass/class-wpvivid-one-drive.php:275
2045
  #: includes/customclass/class-wpvivid-one-drive.php:403
2056
  msgstr "Autenticati con Microsoft OneDrive"
2057
 
2058
  #: includes/customclass/class-wpvivid-one-drive.php:337
2059
+ msgid "Click the button to get Microsoft authentication and add it to the storage list below."
2060
+ msgstr "Clicca il pulsante per ottenere il codice di autenticazione di Microsoft e aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
2061
 
2062
  #: includes/customclass/class-wpvivid-s3compat.php:403
2063
  msgid "DigitalOcean Spaces"
2101
  #: includes/customclass/class-wpvivid-s3compat.php:461
2102
  #: includes/customclass/class-wpvivid-s3compat.php:576
2103
  msgid "Enter an existed Space to create a custom backup storage directory."
2104
+ msgstr "Inserisci uno Spazio esistente per creare una directory di archiviazione di backup personalizzata."
 
 
2105
 
2106
  #: includes/customclass/class-wpvivid-s3compat.php:473
2107
  #: includes/customclass/class-wpvivid-s3compat.php:588
2108
+ msgid "Customize the directory where you want to store backups within the Space."
2109
+ msgstr "Personalizzare la directory in cui si desidera archiviare i backup all'interno dello Spazio."
 
 
 
2110
 
2111
  #: includes/customclass/class-wpvivid-s3compat.php:480
2112
  #: includes/customclass/class-wpvivid-s3compat.php:595
2119
  msgstr "Inserisci l'Endpoint di DigitalOcean per l'archiviazione"
2120
 
2121
  #: includes/customclass/class-wpvivid-s3compat.php:512
2122
+ msgid "Click the button to connect to DigitalOcean Spaces storage and add it to the storage list below."
2123
+ msgstr "Clicca il pulsante per connetterti allo storage di DigitalOcean Space e di aggiungerlo alla lista degli storage qui di seguito."
 
 
 
 
2124
 
2125
  #: includes/customclass/class-wpvivid-sftpclass.php:38
2126
  msgid "SFTP"
2183
 
2184
  #: includes/customclass/class-wpvivid-sftpclass.php:121
2185
  #: includes/customclass/class-wpvivid-sftpclass.php:236
2186
+ msgid "Enter an absolute path and a custom subdirectory (optional) for holding the backups of current website. For example, /var/customfolder/"
2187
+ msgstr "Inserisci un percorso assoluto e una sottodirectory personalizzata (opzionale) per tenere i backup del sito web corrente. Per esempio, /var/cartellapersonalizzata/"
 
 
 
 
 
2188
 
2189
  #: includes/customclass/class-wpvivid-sftpclass.php:148
2190
+ msgid "Click the button to connect to SFTP server and add it to the storage list below."
2191
+ msgstr "Clicca il pulsante per connetterti al server SFTP e aggiungerlo alla lista degli storage qui di seguito."
2192
+
 
 
 
languages/{wpvivid.pot → wpvivid-backuprestore.pot} RENAMED
File without changes
languages/wpvivid-it_IT.mo DELETED
Binary file
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
- === Migrate & Backup WordPress - WPvivid Backup Plugin ===
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.1
6
  Requires PHP: 5.3
7
- Stable tag: 0.9.42
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
@@ -179,6 +179,10 @@ Thank you for translating WPvivid Backup Plugin to your languages!
179
  * Valentin Lyong (Bulgarian)
180
 
181
  == Changelog ==
 
 
 
 
182
  = 0.9.42 =
183
  - Added Bulgarian language translation.
184
  - Fixed a fatal error occurred during website transfer in some cases.
1
+ === Migrate & Backup WordPress - WPvivid Backup Plugin ===
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.2
6
  Requires PHP: 5.3
7
+ Stable tag: 0.9.43
8
  License: GPLv3 or later
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
10
 
179
  * Valentin Lyong (Bulgarian)
180
 
181
  == Changelog ==
182
+ = 0.9.43 =
183
+ - Optimized migration process.
184
+ - Fixed some bugs in the plugin code.
185
+ - Optimized the plugin code.
186
  = 0.9.42 =
187
  - Added Bulgarian language translation.
188
  - Fixed a fatal error occurred during website transfer in some cases.
wpvivid-backuprestore.php CHANGED
@@ -7,12 +7,12 @@
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.42
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
14
  * License URI: http://www.gnu.org/copyleft/gpl.html
15
- * Text Domain: wpvivid
16
  * Domain Path: /languages
17
  */
18
 
@@ -21,7 +21,7 @@ if ( ! defined( 'WPINC' ) ) {
21
  die;
22
  }
23
 
24
- define( 'WPVIVID_PLUGIN_VERSION', '0.9.42' );
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.43
11
  * Author: WPvivid Team
12
  * Author URI: https://wpvivid.com
13
  * License: GPL-3.0+
14
  * License URI: http://www.gnu.org/copyleft/gpl.html
15
+ * Text Domain: wpvivid-backuprestore
16
  * Domain Path: /languages
17
  */
18
 
21
  die;
22
  }
23
 
24
+ define( 'WPVIVID_PLUGIN_VERSION', '0.9.43' );
25
  //
26
  define('WPVIVID_RESTORE_INIT','init');
27
  define('WPVIVID_RESTORE_READY','ready');