All-in-One WP Migration - Version 6.75

Version Description

Download this release

Release Info

Developer bangelov
Plugin Icon 128x128 All-in-One WP Migration
Version 6.75
Comparing to
See all releases

Code changes from version 6.74 to 6.75

all-in-one-wp-migration.php CHANGED
@@ -5,7 +5,7 @@
5
  * Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
6
  * Author: ServMask
7
  * Author URI: https://servmask.com/
8
- * Version: 6.74
9
  * Text Domain: all-in-one-wp-migration
10
  * Domain Path: /languages
11
  * Network: True
5
  * Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
6
  * Author: ServMask
7
  * Author URI: https://servmask.com/
8
+ * Version: 6.75
9
  * Text Domain: all-in-one-wp-migration
10
  * Domain Path: /languages
11
  * Network: True
constants.php CHANGED
@@ -31,7 +31,7 @@ define( 'AI1WM_DEBUG', false );
31
  // ==================
32
  // = Plugin Version =
33
  // ==================
34
- define( 'AI1WM_VERSION', '6.74' );
35
 
36
  // ===============
37
  // = Plugin Name =
31
  // ==================
32
  // = Plugin Version =
33
  // ==================
34
+ define( 'AI1WM_VERSION', '6.75' );
35
 
36
  // ===============
37
  // = Plugin Name =
lib/controller/class-ai1wm-main-controller.php CHANGED
@@ -840,7 +840,7 @@ class Ai1wm_Main_Controller {
840
  ),
841
  ) );
842
 
843
- wp_localize_script( 'ai1wm_backups', 'ai1wm_locale', array(
844
  'check_for_updates' => __( 'Check for updates', AI1WM_PLUGIN_NAME ),
845
  'invalid_purchase_id' => __( 'Your purchase ID is invalid, please <a href="mailto:support@servmask.com">contact us</a>', AI1WM_PLUGIN_NAME ),
846
  ) );
840
  ),
841
  ) );
842
 
843
+ wp_localize_script( 'ai1wm_updater', 'ai1wm_locale', array(
844
  'check_for_updates' => __( 'Check for updates', AI1WM_PLUGIN_NAME ),
845
  'invalid_purchase_id' => __( 'Your purchase ID is invalid, please <a href="mailto:support@servmask.com">contact us</a>', AI1WM_PLUGIN_NAME ),
846
  ) );
lib/model/class-ai1wm-extensions.php CHANGED
@@ -148,7 +148,7 @@ class Ai1wm_Extensions {
148
  'about' => AI1WMME_PLUGIN_ABOUT,
149
  'basename' => AI1WMME_PLUGIN_BASENAME,
150
  'version' => AI1WMME_VERSION,
151
- 'requires' => '3.56',
152
  'short' => AI1WMME_PLUGIN_SHORT,
153
  );
154
  }
148
  'about' => AI1WMME_PLUGIN_ABOUT,
149
  'basename' => AI1WMME_PLUGIN_BASENAME,
150
  'version' => AI1WMME_VERSION,
151
+ 'requires' => '3.57',
152
  'short' => AI1WMME_PLUGIN_SHORT,
153
  );
154
  }
lib/model/class-ai1wm-feedback.php CHANGED
@@ -40,7 +40,7 @@ class Ai1wm_Feedback {
40
 
41
  // Submit feedback to ServMask
42
  if ( empty( $type ) ) {
43
- $errors[] = __( 'Feedback type is invalid.', AI1WM_PLUGIN_NAME );
44
  } elseif ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
45
  $errors[] = __( 'Your email is not valid.', AI1WM_PLUGIN_NAME );
46
  } elseif ( empty( $message ) ) {
40
 
41
  // Submit feedback to ServMask
42
  if ( empty( $type ) ) {
43
+ $errors[] = __( 'Feedback type is not valid.', AI1WM_PLUGIN_NAME );
44
  } elseif ( ! filter_var( $email, FILTER_VALIDATE_EMAIL ) ) {
45
  $errors[] = __( 'Your email is not valid.', AI1WM_PLUGIN_NAME );
46
  } elseif ( empty( $message ) ) {
lib/model/export/class-ai1wm-export-config-file.php CHANGED
@@ -63,7 +63,7 @@ class Ai1wm_Export_Config_File {
63
  $archive->set_file_pointer( $archive_bytes_offset );
64
 
65
  // Add package.json to archive
66
- if ( $archive->add_file( ai1wm_package_path( $params ), AI1WM_PACKAGE_NAME, $package_bytes_written, $package_bytes_offset, 10 ) ) {
67
 
68
  // Set progress
69
  Ai1wm_Status::info( __( 'Done archiving configuration file.', AI1WM_PLUGIN_NAME ) );
63
  $archive->set_file_pointer( $archive_bytes_offset );
64
 
65
  // Add package.json to archive
66
+ if ( $archive->add_file( ai1wm_package_path( $params ), AI1WM_PACKAGE_NAME, $package_bytes_written, $package_bytes_offset ) ) {
67
 
68
  // Set progress
69
  Ai1wm_Status::info( __( 'Done archiving configuration file.', AI1WM_PLUGIN_NAME ) );
lib/model/export/class-ai1wm-export-content.php CHANGED
@@ -98,7 +98,7 @@ class Ai1wm_Export_Content {
98
  $file_bytes_written = 0;
99
 
100
  // Add file to archive
101
- if ( ( $completed = $archive->add_file( WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $path, $path, $file_bytes_written, $file_bytes_offset, 10 ) ) ) {
102
  $file_bytes_offset = 0;
103
 
104
  // Get filemap bytes offset
@@ -115,9 +115,11 @@ class Ai1wm_Export_Content {
115
  Ai1wm_Status::info( sprintf( __( 'Archiving %d files...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $total_files_count, $progress ) );
116
 
117
  // More than 10 seconds have passed, break and do another request
118
- if ( ( microtime( true ) - $start ) > 10 ) {
119
- $completed = false;
120
- break;
 
 
121
  }
122
  }
123
 
98
  $file_bytes_written = 0;
99
 
100
  // Add file to archive
101
+ if ( ( $completed = $archive->add_file( WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $path, $path, $file_bytes_written, $file_bytes_offset ) ) ) {
102
  $file_bytes_offset = 0;
103
 
104
  // Get filemap bytes offset
115
  Ai1wm_Status::info( sprintf( __( 'Archiving %d files...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $total_files_count, $progress ) );
116
 
117
  // More than 10 seconds have passed, break and do another request
118
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
119
+ if ( ( microtime( true ) - $start ) > $timeout ) {
120
+ $completed = false;
121
+ break;
122
+ }
123
  }
124
  }
125
 
lib/model/export/class-ai1wm-export-database-file.php CHANGED
@@ -68,7 +68,7 @@ class Ai1wm_Export_Database_File {
68
  $archive->set_file_pointer( $archive_bytes_offset );
69
 
70
  // Add database.sql to archive
71
- if ( $archive->add_file( ai1wm_database_path( $params ), AI1WM_DATABASE_NAME, $database_bytes_written, $database_bytes_offset, 10 ) ) {
72
 
73
  // Set progress
74
  Ai1wm_Status::info( __( 'Done archiving database.', AI1WM_PLUGIN_NAME ) );
68
  $archive->set_file_pointer( $archive_bytes_offset );
69
 
70
  // Add database.sql to archive
71
+ if ( $archive->add_file( ai1wm_database_path( $params ), AI1WM_DATABASE_NAME, $database_bytes_written, $database_bytes_offset ) ) {
72
 
73
  // Set progress
74
  Ai1wm_Status::info( __( 'Done archiving database.', AI1WM_PLUGIN_NAME ) );
lib/model/export/class-ai1wm-export-database.php CHANGED
@@ -133,7 +133,7 @@ class Ai1wm_Export_Database {
133
  ->set_table_prefix_columns( ai1wm_table_prefix() . 'usermeta', array( 'meta_key' ) );
134
 
135
  // Export database
136
- if ( $mysql->export( ai1wm_database_path( $params ), $table_index, $table_offset, 10 ) ) {
137
 
138
  // Set progress
139
  Ai1wm_Status::info( __( 'Done exporting database.', AI1WM_PLUGIN_NAME ) );
133
  ->set_table_prefix_columns( ai1wm_table_prefix() . 'usermeta', array( 'meta_key' ) );
134
 
135
  // Export database
136
+ if ( $mysql->export( ai1wm_database_path( $params ), $table_index, $table_offset ) ) {
137
 
138
  // Set progress
139
  Ai1wm_Status::info( __( 'Done exporting database.', AI1WM_PLUGIN_NAME ) );
lib/model/import/class-ai1wm-import-content.php CHANGED
@@ -154,7 +154,7 @@ class Ai1wm_Import_Content {
154
  ) );
155
 
156
  // Extract a file from archive to WP_CONTENT_DIR
157
- if ( ( $completed = $archive->extract_one_file_to( WP_CONTENT_DIR, $exclude_files, $old_paths, $new_paths, $file_bytes_written, $file_bytes_offset, 10 ) ) ) {
158
  $file_bytes_offset = 0;
159
  }
160
 
@@ -171,9 +171,11 @@ class Ai1wm_Import_Content {
171
  Ai1wm_Status::info( sprintf( __( 'Restoring %d files...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $total_files_count, $progress ) );
172
 
173
  // More than 10 seconds have passed, break and do another request
174
- if ( ( microtime( true ) - $start ) > 10 ) {
175
- $completed = false;
176
- break;
 
 
177
  }
178
  }
179
 
154
  ) );
155
 
156
  // Extract a file from archive to WP_CONTENT_DIR
157
+ if ( ( $completed = $archive->extract_one_file_to( WP_CONTENT_DIR, $exclude_files, $old_paths, $new_paths, $file_bytes_written, $file_bytes_offset ) ) ) {
158
  $file_bytes_offset = 0;
159
  }
160
 
171
  Ai1wm_Status::info( sprintf( __( 'Restoring %d files...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $total_files_count, $progress ) );
172
 
173
  // More than 10 seconds have passed, break and do another request
174
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
175
+ if ( ( microtime( true ) - $start ) > $timeout ) {
176
+ $completed = false;
177
+ break;
178
+ }
179
  }
180
  }
181
 
lib/model/import/class-ai1wm-import-database.php CHANGED
@@ -709,7 +709,7 @@ class Ai1wm_Import_Database {
709
  $mysql->set_visual_composer( ! is_wp_error( validate_plugin( 'js_composer/js_composer.php' ) ) );
710
 
711
  // Import database
712
- if ( $mysql->import( ai1wm_database_path( $params ), $query_offset, 10 ) ) {
713
 
714
  // Set progress
715
  Ai1wm_Status::info( __( 'Done restoring database.', AI1WM_PLUGIN_NAME ) );
709
  $mysql->set_visual_composer( ! is_wp_error( validate_plugin( 'js_composer/js_composer.php' ) ) );
710
 
711
  // Import database
712
+ if ( $mysql->import( ai1wm_database_path( $params ), $query_offset ) ) {
713
 
714
  // Set progress
715
  Ai1wm_Status::info( __( 'Done restoring database.', AI1WM_PLUGIN_NAME ) );
lib/model/import/class-ai1wm-import-validate.php CHANGED
@@ -106,7 +106,7 @@ class Ai1wm_Import_Validate {
106
  $file_bytes_written = 0;
107
 
108
  // Unpack package.json, multisite.json and database.sql files
109
- if ( ( $completed = $archive->extract_by_files_array( ai1wm_storage_path( $params ), array( AI1WM_PACKAGE_NAME, AI1WM_MULTISITE_NAME, AI1WM_DATABASE_NAME ), array(), $file_bytes_written, $file_bytes_offset, 10 ) ) ) {
110
  $file_bytes_offset = 0;
111
  }
112
 
106
  $file_bytes_written = 0;
107
 
108
  // Unpack package.json, multisite.json and database.sql files
109
+ if ( ( $completed = $archive->extract_by_files_array( ai1wm_storage_path( $params ), array( AI1WM_PACKAGE_NAME, AI1WM_MULTISITE_NAME, AI1WM_DATABASE_NAME ), array(), $file_bytes_written, $file_bytes_offset ) ) ) {
110
  $file_bytes_offset = 0;
111
  }
112
 
lib/vendor/servmask/archiver/class-ai1wm-compressor.php CHANGED
@@ -42,7 +42,6 @@ class Ai1wm_Compressor extends Ai1wm_Archiver {
42
  * @param string $new_file_name Write the file with a different name
43
  * @param int $file_written File written (in bytes)
44
  * @param int $file_offset File offset (in bytes)
45
- * @param int $timeout Process timeout (in seconds)
46
  *
47
  * @throws \Ai1wm_Not_Seekable_Exception
48
  * @throws \Ai1wm_Not_Writable_Exception
@@ -50,7 +49,7 @@ class Ai1wm_Compressor extends Ai1wm_Archiver {
50
  *
51
  * @return bool
52
  */
53
- public function add_file( $file_name, $new_file_name = '', &$file_written = 0, &$file_offset = 0, $timeout = 0 ) {
54
  $file_written = 0;
55
 
56
  // Replace forward slash with current directory separator in file name
@@ -104,7 +103,7 @@ class Ai1wm_Compressor extends Ai1wm_Archiver {
104
  }
105
 
106
  // Time elapsed
107
- if ( $timeout ) {
108
  if ( ( microtime( true ) - $start ) > $timeout ) {
109
  $completed = false;
110
  break;
42
  * @param string $new_file_name Write the file with a different name
43
  * @param int $file_written File written (in bytes)
44
  * @param int $file_offset File offset (in bytes)
 
45
  *
46
  * @throws \Ai1wm_Not_Seekable_Exception
47
  * @throws \Ai1wm_Not_Writable_Exception
49
  *
50
  * @return bool
51
  */
52
+ public function add_file( $file_name, $new_file_name = '', &$file_written = 0, &$file_offset = 0 ) {
53
  $file_written = 0;
54
 
55
  // Replace forward slash with current directory separator in file name
103
  }
104
 
105
  // Time elapsed
106
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
107
  if ( ( microtime( true ) - $start ) > $timeout ) {
108
  $completed = false;
109
  break;
lib/vendor/servmask/archiver/class-ai1wm-extractor.php CHANGED
@@ -152,14 +152,13 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
152
  * @param array $new_paths New replace paths
153
  * @param int $file_written File written (in bytes)
154
  * @param int $file_offset File offset (in bytes)
155
- * @param int $timeout Process timeout (in seconds)
156
  *
157
  * @throws \Ai1wm_Not_Directory_Exception
158
  * @throws \Ai1wm_Not_Seekable_Exception
159
  *
160
  * @return bool
161
  */
162
- public function extract_one_file_to( $location, $exclude = array(), $old_paths = array(), $new_paths = array(), &$file_written = 0, &$file_offset = 0, $timeout = 0 ) {
163
  if ( false === is_dir( $location ) ) {
164
  throw new Ai1wm_Not_Directory_Exception( sprintf( 'Location is not a directory: %s', $location ) );
165
  }
@@ -243,7 +242,7 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
243
  $file_written = 0;
244
 
245
  // We have a match, let's extract the file
246
- if ( ( $completed = $this->extract_to( $file_name, $file_size, $file_mtime, $file_written, $file_offset, $timeout ) ) ) {
247
  $file_offset = 0;
248
  }
249
  } else {
@@ -268,14 +267,13 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
268
  * @param array $exclude Files to exclude
269
  * @param int $file_written File written (in bytes)
270
  * @param int $file_offset File offset (in bytes)
271
- * @param int $timeout Process timeout (in seconds)
272
  *
273
  * @throws \Ai1wm_Not_Directory_Exception
274
  * @throws \Ai1wm_Not_Seekable_Exception
275
  *
276
  * @return bool
277
  */
278
- public function extract_by_files_array( $location, $files = array(), $exclude = array(), &$file_written = 0, &$file_offset = 0, $timeout = 0 ) {
279
  if ( false === is_dir( $location ) ) {
280
  throw new Ai1wm_Not_Directory_Exception( sprintf( 'Location is not a directory: %s', $location ) );
281
  }
@@ -361,7 +359,7 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
361
  $file_written = 0;
362
 
363
  // We have a match, let's extract the file and remove it from the array
364
- if ( ( $completed = $this->extract_to( $file_name, $file_size, $file_mtime, $file_written, $file_offset, $timeout ) ) ) {
365
  $file_offset = 0;
366
  }
367
  } else {
@@ -373,7 +371,7 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
373
  }
374
 
375
  // Time elapsed
376
- if ( $timeout ) {
377
  if ( ( microtime( true ) - $start ) > $timeout ) {
378
  $completed = false;
379
  break;
@@ -394,7 +392,6 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
394
  * @param array $file_mtime File modified time (in seconds)
395
  * @param int $file_written File written (in bytes)
396
  * @param int $file_offset File offset (in bytes)
397
- * @param int $timeout Process timeout (in seconds)
398
  *
399
  * @throws \Ai1wm_Not_Seekable_Exception
400
  * @throws \Ai1wm_Not_Readable_Exception
@@ -402,7 +399,7 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
402
  *
403
  * @return bool
404
  */
405
- private function extract_to( $file_name, $file_size, $file_mtime, &$file_written = 0, &$file_offset = 0, $timeout = 0 ) {
406
  $file_written = 0;
407
 
408
  // Flag to hold if file data has been processed
@@ -455,7 +452,7 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
455
  }
456
 
457
  // Time elapsed
458
- if ( $timeout ) {
459
  if ( ( microtime( true ) - $start ) > $timeout ) {
460
  $completed = false;
461
  break;
152
  * @param array $new_paths New replace paths
153
  * @param int $file_written File written (in bytes)
154
  * @param int $file_offset File offset (in bytes)
 
155
  *
156
  * @throws \Ai1wm_Not_Directory_Exception
157
  * @throws \Ai1wm_Not_Seekable_Exception
158
  *
159
  * @return bool
160
  */
161
+ public function extract_one_file_to( $location, $exclude = array(), $old_paths = array(), $new_paths = array(), &$file_written = 0, &$file_offset = 0 ) {
162
  if ( false === is_dir( $location ) ) {
163
  throw new Ai1wm_Not_Directory_Exception( sprintf( 'Location is not a directory: %s', $location ) );
164
  }
242
  $file_written = 0;
243
 
244
  // We have a match, let's extract the file
245
+ if ( ( $completed = $this->extract_to( $file_name, $file_size, $file_mtime, $file_written, $file_offset ) ) ) {
246
  $file_offset = 0;
247
  }
248
  } else {
267
  * @param array $exclude Files to exclude
268
  * @param int $file_written File written (in bytes)
269
  * @param int $file_offset File offset (in bytes)
 
270
  *
271
  * @throws \Ai1wm_Not_Directory_Exception
272
  * @throws \Ai1wm_Not_Seekable_Exception
273
  *
274
  * @return bool
275
  */
276
+ public function extract_by_files_array( $location, $files = array(), $exclude = array(), &$file_written = 0, &$file_offset = 0 ) {
277
  if ( false === is_dir( $location ) ) {
278
  throw new Ai1wm_Not_Directory_Exception( sprintf( 'Location is not a directory: %s', $location ) );
279
  }
359
  $file_written = 0;
360
 
361
  // We have a match, let's extract the file and remove it from the array
362
+ if ( ( $completed = $this->extract_to( $file_name, $file_size, $file_mtime, $file_written, $file_offset ) ) ) {
363
  $file_offset = 0;
364
  }
365
  } else {
371
  }
372
 
373
  // Time elapsed
374
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
375
  if ( ( microtime( true ) - $start ) > $timeout ) {
376
  $completed = false;
377
  break;
392
  * @param array $file_mtime File modified time (in seconds)
393
  * @param int $file_written File written (in bytes)
394
  * @param int $file_offset File offset (in bytes)
 
395
  *
396
  * @throws \Ai1wm_Not_Seekable_Exception
397
  * @throws \Ai1wm_Not_Readable_Exception
399
  *
400
  * @return bool
401
  */
402
+ private function extract_to( $file_name, $file_size, $file_mtime, &$file_written = 0, &$file_offset = 0 ) {
403
  $file_written = 0;
404
 
405
  // Flag to hold if file data has been processed
452
  }
453
 
454
  // Time elapsed
455
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
456
  if ( ( microtime( true ) - $start ) > $timeout ) {
457
  $completed = false;
458
  break;
lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php CHANGED
@@ -187,6 +187,9 @@ if ( class_exists( 'WP_CLI_Command' ) ) {
187
 
188
  try {
189
 
 
 
 
190
  // Remove filters
191
  remove_filter( 'ai1wm_export', 'Ai1wm_Export_Clean::execute', 300 );
192
 
@@ -248,6 +251,9 @@ if ( class_exists( 'WP_CLI_Command' ) ) {
248
 
249
  try {
250
 
 
 
 
251
  // Remove filters
252
  remove_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
253
  remove_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
187
 
188
  try {
189
 
190
+ // Disable completed timeout
191
+ add_filter( 'ai1wm_completed_timeout', '__return_zero' );
192
+
193
  // Remove filters
194
  remove_filter( 'ai1wm_export', 'Ai1wm_Export_Clean::execute', 300 );
195
 
251
 
252
  try {
253
 
254
+ // Disable completed timeout
255
+ add_filter( 'ai1wm_completed_timeout', '__return_zero' );
256
+
257
  // Remove filters
258
  remove_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
259
  remove_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
lib/vendor/servmask/database/class-ai1wm-database-utility.php CHANGED
@@ -68,14 +68,16 @@ class Ai1wm_Database_Utility {
68
  $data = $tmp;
69
  unset( $tmp );
70
  } elseif ( is_object( $data ) ) {
71
- $tmp = $data;
72
- $props = get_object_vars( $data );
73
- foreach ( $props as $key => $value ) {
74
- $tmp->$key = self::replace_serialized_values( $from, $to, $value, false );
75
- }
 
76
 
77
- $data = $tmp;
78
- unset( $tmp );
 
79
  } else {
80
  if ( is_string( $data ) ) {
81
  if ( ! empty( $from ) && ! empty( $to ) ) {
@@ -88,7 +90,6 @@ class Ai1wm_Database_Utility {
88
  return serialize( $data );
89
  }
90
  } catch ( Exception $e ) {
91
- // pass
92
  }
93
 
94
  return $data;
68
  $data = $tmp;
69
  unset( $tmp );
70
  } elseif ( is_object( $data ) ) {
71
+ if ( ! ( $data instanceof __PHP_Incomplete_Class ) ) {
72
+ $tmp = $data;
73
+ $props = get_object_vars( $data );
74
+ foreach ( $props as $key => $value ) {
75
+ $tmp->$key = self::replace_serialized_values( $from, $to, $value, false );
76
+ }
77
 
78
+ $data = $tmp;
79
+ unset( $tmp );
80
+ }
81
  } else {
82
  if ( is_string( $data ) ) {
83
  if ( ! empty( $from ) && ! empty( $to ) ) {
90
  return serialize( $data );
91
  }
92
  } catch ( Exception $e ) {
 
93
  }
94
 
95
  return $data;
lib/vendor/servmask/database/class-ai1wm-database.php CHANGED
@@ -530,10 +530,9 @@ abstract class Ai1wm_Database {
530
  * @param string $file_name Name of file
531
  * @param int $table_index Table index
532
  * @param int $table_offset Table offset
533
- * @param int $timeout Process timeout
534
  * @return bool
535
  */
536
- public function export( $file_name, &$table_index = 0, &$table_offset = 0, $timeout = 0 ) {
537
  // Set file handler
538
  $file_handler = ai1wm_open( $file_name, 'ab' );
539
 
@@ -708,7 +707,7 @@ abstract class Ai1wm_Database {
708
  $this->free_result( $result );
709
 
710
  // Time elapsed
711
- if ( $timeout ) {
712
  if ( ( microtime( true ) - $start ) > $timeout ) {
713
  $completed = false;
714
  break 2;
@@ -728,10 +727,9 @@ abstract class Ai1wm_Database {
728
  *
729
  * @param string $file_name Name of file
730
  * @param int $query_offset Query offset
731
- * @param int $timeout Process timeout
732
  * @return bool
733
  */
734
- public function import( $file_name, &$query_offset = 0, $timeout = 0 ) {
735
  // Set max allowed packet
736
  $max_allowed_packet = $this->get_max_allowed_packet();
737
 
@@ -794,7 +792,7 @@ abstract class Ai1wm_Database {
794
  $query_offset = ftell( $file_handler );
795
 
796
  // Time elapsed
797
- if ( $timeout ) {
798
  if ( ! $this->is_atomic_query( $query ) ) {
799
  if ( ( microtime( true ) - $start ) > $timeout ) {
800
  $completed = false;
530
  * @param string $file_name Name of file
531
  * @param int $table_index Table index
532
  * @param int $table_offset Table offset
 
533
  * @return bool
534
  */
535
+ public function export( $file_name, &$table_index = 0, &$table_offset = 0 ) {
536
  // Set file handler
537
  $file_handler = ai1wm_open( $file_name, 'ab' );
538
 
707
  $this->free_result( $result );
708
 
709
  // Time elapsed
710
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
711
  if ( ( microtime( true ) - $start ) > $timeout ) {
712
  $completed = false;
713
  break 2;
727
  *
728
  * @param string $file_name Name of file
729
  * @param int $query_offset Query offset
 
730
  * @return bool
731
  */
732
+ public function import( $file_name, &$query_offset = 0 ) {
733
  // Set max allowed packet
734
  $max_allowed_packet = $this->get_max_allowed_packet();
735
 
792
  $query_offset = ftell( $file_handler );
793
 
794
  // Time elapsed
795
+ if ( ( $timeout = apply_filters( 'ai1wm_completed_timeout', 10 ) ) ) {
796
  if ( ! $this->is_atomic_query( $query ) ) {
797
  if ( ( microtime( true ) - $start ) > $timeout ) {
798
  $completed = false;
lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php CHANGED
@@ -35,6 +35,7 @@ class Ai1wm_File_Webconfig {
35
  return Ai1wm_File::create( $path, implode( PHP_EOL, array(
36
  '<configuration>',
37
  '<system.webServer>',
 
38
  '<mimeMap fileExtension=".wpress" mimeType="application/octet-stream" />',
39
  '</staticContent>',
40
  '<defaultDocument>',
35
  return Ai1wm_File::create( $path, implode( PHP_EOL, array(
36
  '<configuration>',
37
  '<system.webServer>',
38
+ '<staticContent>',
39
  '<mimeMap fileExtension=".wpress" mimeType="application/octet-stream" />',
40
  '</staticContent>',
41
  '<defaultDocument>',
lib/view/assets/javascript/backups.min.js CHANGED
@@ -887,11 +887,8 @@ module.exports = Modal;
887
  jQuery(document).ready(function ($) {
888
  'use strict';
889
 
890
- // Reset feedback form
891
-
892
- $('.ai1wm-feedback-type').attr('checked', false);
893
-
894
  // Review
 
895
  $('#ai1wm-feedback-type-link-1').click(function (e) {
896
  var radio = $('#ai1wm-feedback-type-1');
897
  if (radio.is(':checked')) {
@@ -901,16 +898,14 @@ jQuery(document).ready(function ($) {
901
  }
902
  });
903
 
904
- // Improvement
905
- $('#ai1wm-feedback-type-2').click(function () {
906
- // Hide other options
907
- $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
908
-
909
- // Change placeholder message
910
- $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
911
-
912
- // Show feedback form
913
- $('.ai1wm-feedback-form').fadeIn();
914
  });
915
 
916
  // Help
887
  jQuery(document).ready(function ($) {
888
  'use strict';
889
 
 
 
 
 
890
  // Review
891
+
892
  $('#ai1wm-feedback-type-link-1').click(function (e) {
893
  var radio = $('#ai1wm-feedback-type-1');
894
  if (radio.is(':checked')) {
898
  }
899
  });
900
 
901
+ // Idea
902
+ $('#ai1wm-feedback-type-link-2').click(function (e) {
903
+ var radio = $('#ai1wm-feedback-type-2');
904
+ if (radio.is(':checked')) {
905
+ radio.attr('checked', false);
906
+ } else {
907
+ radio.attr('checked', true);
908
+ }
 
 
909
  });
910
 
911
  // Help
lib/view/assets/javascript/export.min.js CHANGED
@@ -126,11 +126,8 @@ module.exports = g;
126
  jQuery(document).ready(function ($) {
127
  'use strict';
128
 
129
- // Reset feedback form
130
-
131
- $('.ai1wm-feedback-type').attr('checked', false);
132
-
133
  // Review
 
134
  $('#ai1wm-feedback-type-link-1').click(function (e) {
135
  var radio = $('#ai1wm-feedback-type-1');
136
  if (radio.is(':checked')) {
@@ -140,16 +137,14 @@ jQuery(document).ready(function ($) {
140
  }
141
  });
142
 
143
- // Improvement
144
- $('#ai1wm-feedback-type-2').click(function () {
145
- // Hide other options
146
- $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
147
-
148
- // Change placeholder message
149
- $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
150
-
151
- // Show feedback form
152
- $('.ai1wm-feedback-form').fadeIn();
153
  });
154
 
155
  // Help
126
  jQuery(document).ready(function ($) {
127
  'use strict';
128
 
 
 
 
 
129
  // Review
130
+
131
  $('#ai1wm-feedback-type-link-1').click(function (e) {
132
  var radio = $('#ai1wm-feedback-type-1');
133
  if (radio.is(':checked')) {
137
  }
138
  });
139
 
140
+ // Idea
141
+ $('#ai1wm-feedback-type-link-2').click(function (e) {
142
+ var radio = $('#ai1wm-feedback-type-2');
143
+ if (radio.is(':checked')) {
144
+ radio.attr('checked', false);
145
+ } else {
146
+ radio.attr('checked', true);
147
+ }
 
 
148
  });
149
 
150
  // Help
lib/view/assets/javascript/feedback.min.js CHANGED
@@ -126,11 +126,8 @@ module.exports = g;
126
  jQuery(document).ready(function ($) {
127
  'use strict';
128
 
129
- // Reset feedback form
130
-
131
- $('.ai1wm-feedback-type').attr('checked', false);
132
-
133
  // Review
 
134
  $('#ai1wm-feedback-type-link-1').click(function (e) {
135
  var radio = $('#ai1wm-feedback-type-1');
136
  if (radio.is(':checked')) {
@@ -140,16 +137,14 @@ jQuery(document).ready(function ($) {
140
  }
141
  });
142
 
143
- // Improvement
144
- $('#ai1wm-feedback-type-2').click(function () {
145
- // Hide other options
146
- $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
147
-
148
- // Change placeholder message
149
- $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
150
-
151
- // Show feedback form
152
- $('.ai1wm-feedback-form').fadeIn();
153
  });
154
 
155
  // Help
126
  jQuery(document).ready(function ($) {
127
  'use strict';
128
 
 
 
 
 
129
  // Review
130
+
131
  $('#ai1wm-feedback-type-link-1').click(function (e) {
132
  var radio = $('#ai1wm-feedback-type-1');
133
  if (radio.is(':checked')) {
137
  }
138
  });
139
 
140
+ // Idea
141
+ $('#ai1wm-feedback-type-link-2').click(function (e) {
142
+ var radio = $('#ai1wm-feedback-type-2');
143
+ if (radio.is(':checked')) {
144
+ radio.attr('checked', false);
145
+ } else {
146
+ radio.attr('checked', true);
147
+ }
 
 
148
  });
149
 
150
  // Help
lib/view/assets/javascript/import.min.js CHANGED
@@ -153,11 +153,8 @@ if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
153
  jQuery(document).ready(function ($) {
154
  'use strict';
155
 
156
- // Reset feedback form
157
-
158
- $('.ai1wm-feedback-type').attr('checked', false);
159
-
160
  // Review
 
161
  $('#ai1wm-feedback-type-link-1').click(function (e) {
162
  var radio = $('#ai1wm-feedback-type-1');
163
  if (radio.is(':checked')) {
@@ -167,16 +164,14 @@ jQuery(document).ready(function ($) {
167
  }
168
  });
169
 
170
- // Improvement
171
- $('#ai1wm-feedback-type-2').click(function () {
172
- // Hide other options
173
- $('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
174
-
175
- // Change placeholder message
176
- $('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
177
-
178
- // Show feedback form
179
- $('.ai1wm-feedback-form').fadeIn();
180
  });
181
 
182
  // Help
153
  jQuery(document).ready(function ($) {
154
  'use strict';
155
 
 
 
 
 
156
  // Review
157
+
158
  $('#ai1wm-feedback-type-link-1').click(function (e) {
159
  var radio = $('#ai1wm-feedback-type-1');
160
  if (radio.is(':checked')) {
164
  }
165
  });
166
 
167
+ // Idea
168
+ $('#ai1wm-feedback-type-link-2').click(function (e) {
169
+ var radio = $('#ai1wm-feedback-type-2');
170
+ if (radio.is(':checked')) {
171
+ radio.attr('checked', false);
172
+ } else {
173
+ radio.attr('checked', true);
174
+ }
 
 
175
  });
176
 
177
  // Help
lib/view/common/leave-feedback.php CHANGED
@@ -35,10 +35,10 @@
35
  </li>
36
  <li>
37
  <input type="radio" class="ai1wm-flat-radio-button ai1wm-feedback-type" id="ai1wm-feedback-type-2" name="ai1wm_feedback_type" value="suggestions" />
38
- <label for="ai1wm-feedback-type-2">
39
  <i></i>
40
  <span><?php _e( 'I have ideas to improve this plugin', AI1WM_PLUGIN_NAME ); ?></span>
41
- </label>
42
  </li>
43
  <li>
44
  <input type="radio" class="ai1wm-flat-radio-button ai1wm-feedback-type" id="ai1wm-feedback-type-3" name="ai1wm_feedback_type" value="help-needed" />
35
  </li>
36
  <li>
37
  <input type="radio" class="ai1wm-flat-radio-button ai1wm-feedback-type" id="ai1wm-feedback-type-2" name="ai1wm_feedback_type" value="suggestions" />
38
+ <a id="ai1wm-feedback-type-link-2" href="https://feedback.wp-migration.com" target="_blank">
39
  <i></i>
40
  <span><?php _e( 'I have ideas to improve this plugin', AI1WM_PLUGIN_NAME ); ?></span>
41
+ </a>
42
  </li>
43
  <li>
44
  <input type="radio" class="ai1wm-flat-radio-button ai1wm-feedback-type" id="ai1wm-feedback-type-3" name="ai1wm_feedback_type" value="help-needed" />
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: move, transfer, copy, migrate, backup, clone, restore, db migration, wordp
4
  Requires at least: 3.3
5
  Tested up to: 4.9
6
  Requires PHP: 5.2.17
7
- Stable tag: 6.74
8
  License: GPLv2 or later
9
 
10
  Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
@@ -60,7 +60,7 @@ Mobile device compatible: All in One WP Plugin is the first plugin to offer true
60
  * [Microsoft Azure Storage](https://servmask.com/products/microsoft-azure-storage-extension)
61
 
62
  = Supported hosting providers =
63
- **The plugin does not have any dependancies, making it compatible with all PHP hosting providers. We support a vast range of hosting providers. Some of the most popular include:**
64
 
65
  * DigitalOcean
66
  * Bluehost
@@ -103,6 +103,13 @@ Alternatively you can download the plugin using the download button on this page
103
  All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
104
 
105
  == Changelog ==
 
 
 
 
 
 
 
106
  = 6.74 =
107
  **Added**
108
 
4
  Requires at least: 3.3
5
  Tested up to: 4.9
6
  Requires PHP: 5.2.17
7
+ Stable tag: 6.75
8
  License: GPLv2 or later
9
 
10
  Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
60
  * [Microsoft Azure Storage](https://servmask.com/products/microsoft-azure-storage-extension)
61
 
62
  = Supported hosting providers =
63
+ **The plugin does not have any dependencies, making it compatible with all PHP hosting providers. We support a vast range of hosting providers. Some of the most popular include:**
64
 
65
  * DigitalOcean
66
  * Bluehost
103
  All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
104
 
105
  == Changelog ==
106
+ = 6.74 =
107
+ **Fixed**
108
+
109
+ * WP-CLI export/import missing data
110
+ * Serialization in PHP 7.2
111
+ * Missing <staticContent> entry in the web.config file
112
+
113
  = 6.74 =
114
  **Added**
115