Version Description
Added
- Workaround for PHP 7.3.2 bug when database export uses more memory https://bugs.php.net/bug.php?id=77597
Download this release
Release Info
| Developer | bangelov |
| Plugin | |
| Version | 6.92 |
| Comparing to | |
| See all releases | |
Code changes from version 6.91 to 6.92
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.
|
| 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.92
|
| 9 |
* Text Domain: all-in-one-wp-migration
|
| 10 |
* Domain Path: /languages
|
| 11 |
* Network: True
|
constants.php
CHANGED
|
@@ -35,7 +35,7 @@ define( 'AI1WM_DEBUG', false );
|
|
| 35 |
// ==================
|
| 36 |
// = Plugin Version =
|
| 37 |
// ==================
|
| 38 |
-
define( 'AI1WM_VERSION', '6.
|
| 39 |
|
| 40 |
// ===============
|
| 41 |
// = Plugin Name =
|
|
@@ -117,11 +117,6 @@ define( 'AI1WM_REPORT_URL', 'https://servmask.com/ai1wm/report/create' );
|
|
| 117 |
// ==============================
|
| 118 |
define( 'AI1WM_ARCHIVE_TOOLS_URL', 'https://servmask.com/archive/tools' );
|
| 119 |
|
| 120 |
-
// ===========================
|
| 121 |
-
// = ServMask Activation URL =
|
| 122 |
-
// ===========================
|
| 123 |
-
define( 'AI1WM_ACTIVATION_URL', 'https://servmask.com/purchase/activations' );
|
| 124 |
-
|
| 125 |
// =========================
|
| 126 |
// = ServMask Table Prefix =
|
| 127 |
// =========================
|
| 35 |
// ==================
|
| 36 |
// = Plugin Version =
|
| 37 |
// ==================
|
| 38 |
+
define( 'AI1WM_VERSION', '6.92' );
|
| 39 |
|
| 40 |
// ===============
|
| 41 |
// = Plugin Name =
|
| 117 |
// ==============================
|
| 118 |
define( 'AI1WM_ARCHIVE_TOOLS_URL', 'https://servmask.com/archive/tools' );
|
| 119 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
// =========================
|
| 121 |
// = ServMask Table Prefix =
|
| 122 |
// =========================
|
functions.php
CHANGED
|
@@ -485,7 +485,7 @@ function ai1wm_archive_share( $blog_id = null ) {
|
|
| 485 |
// Add domain
|
| 486 |
if ( ( $domain = explode( '.', parse_url( get_site_url( $blog_id ), PHP_URL_HOST ) ) ) ) {
|
| 487 |
foreach ( $domain as $subdomain ) {
|
| 488 |
-
if ( $subdomain ) {
|
| 489 |
$name[] = $subdomain;
|
| 490 |
}
|
| 491 |
}
|
|
@@ -494,7 +494,7 @@ function ai1wm_archive_share( $blog_id = null ) {
|
|
| 494 |
// Add path
|
| 495 |
if ( ( $path = explode( '/', parse_url( get_site_url( $blog_id ), PHP_URL_PATH ) ) ) ) {
|
| 496 |
foreach ( $path as $directory ) {
|
| 497 |
-
if ( $directory ) {
|
| 498 |
$name[] = $directory;
|
| 499 |
}
|
| 500 |
}
|
| 485 |
// Add domain
|
| 486 |
if ( ( $domain = explode( '.', parse_url( get_site_url( $blog_id ), PHP_URL_HOST ) ) ) ) {
|
| 487 |
foreach ( $domain as $subdomain ) {
|
| 488 |
+
if ( $subdomain = strtolower( preg_replace( '/[^A-Za-z0-9\-]/', '', $subdomain ) ) ) {
|
| 489 |
$name[] = $subdomain;
|
| 490 |
}
|
| 491 |
}
|
| 494 |
// Add path
|
| 495 |
if ( ( $path = explode( '/', parse_url( get_site_url( $blog_id ), PHP_URL_PATH ) ) ) ) {
|
| 496 |
foreach ( $path as $directory ) {
|
| 497 |
+
if ( $directory = strtolower( preg_replace( '/[^A-Za-z0-9\-]/', '', $directory ) ) ) {
|
| 498 |
$name[] = $directory;
|
| 499 |
}
|
| 500 |
}
|
lib/vendor/servmask/database/class-ai1wm-database-mysql.php
CHANGED
|
@@ -96,16 +96,6 @@ class Ai1wm_Database_Mysql extends Ai1wm_Database {
|
|
| 96 |
return mysql_fetch_row( $result );
|
| 97 |
}
|
| 98 |
|
| 99 |
-
/**
|
| 100 |
-
* Return the field from MySQL query as row
|
| 101 |
-
*
|
| 102 |
-
* @param resource $result MySQL resource
|
| 103 |
-
* @return object
|
| 104 |
-
*/
|
| 105 |
-
public function fetch_field( $result ) {
|
| 106 |
-
return mysql_fetch_field( $result );
|
| 107 |
-
}
|
| 108 |
-
|
| 109 |
/**
|
| 110 |
* Return the number for rows from MySQL results
|
| 111 |
*
|
| 96 |
return mysql_fetch_row( $result );
|
| 97 |
}
|
| 98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
/**
|
| 100 |
* Return the number for rows from MySQL results
|
| 101 |
*
|
lib/vendor/servmask/database/class-ai1wm-database-mysqli.php
CHANGED
|
@@ -96,16 +96,6 @@ class Ai1wm_Database_Mysqli extends Ai1wm_Database {
|
|
| 96 |
return mysqli_fetch_row( $result );
|
| 97 |
}
|
| 98 |
|
| 99 |
-
/**
|
| 100 |
-
* Return the field from MySQL query as row
|
| 101 |
-
*
|
| 102 |
-
* @param resource $result MySQL resource
|
| 103 |
-
* @return object
|
| 104 |
-
*/
|
| 105 |
-
public function fetch_field( $result ) {
|
| 106 |
-
return mysqli_fetch_field( $result );
|
| 107 |
-
}
|
| 108 |
-
|
| 109 |
/**
|
| 110 |
* Return the number for rows from MySQL results
|
| 111 |
*
|
| 96 |
return mysqli_fetch_row( $result );
|
| 97 |
}
|
| 98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
/**
|
| 100 |
* Return the number for rows from MySQL results
|
| 101 |
*
|
lib/vendor/servmask/database/class-ai1wm-database.php
CHANGED
|
@@ -339,12 +339,12 @@ abstract class Ai1wm_Database {
|
|
| 339 |
/**
|
| 340 |
* Set table where clauses
|
| 341 |
*
|
| 342 |
-
* @param string $
|
| 343 |
-
* @param array $
|
| 344 |
* @return object
|
| 345 |
*/
|
| 346 |
-
public function set_table_where_clauses( $
|
| 347 |
-
$this->table_where_clauses[ strtolower( $
|
| 348 |
|
| 349 |
return $this;
|
| 350 |
}
|
|
@@ -352,12 +352,12 @@ abstract class Ai1wm_Database {
|
|
| 352 |
/**
|
| 353 |
* Get table where clauses
|
| 354 |
*
|
| 355 |
-
* @param string $
|
| 356 |
* @return array
|
| 357 |
*/
|
| 358 |
-
public function get_table_where_clauses( $
|
| 359 |
-
if ( isset( $this->table_where_clauses[ strtolower( $
|
| 360 |
-
return $this->table_where_clauses[ strtolower( $
|
| 361 |
}
|
| 362 |
|
| 363 |
return array();
|
|
@@ -366,13 +366,13 @@ abstract class Ai1wm_Database {
|
|
| 366 |
/**
|
| 367 |
* Set table prefix columns
|
| 368 |
*
|
| 369 |
-
* @param string $
|
| 370 |
-
* @param array $
|
| 371 |
* @return object
|
| 372 |
*/
|
| 373 |
-
public function set_table_prefix_columns( $
|
| 374 |
-
foreach ( $
|
| 375 |
-
$this->table_prefix_columns[ strtolower( $
|
| 376 |
}
|
| 377 |
|
| 378 |
return $this;
|
|
@@ -381,12 +381,12 @@ abstract class Ai1wm_Database {
|
|
| 381 |
/**
|
| 382 |
* Get table prefix columns
|
| 383 |
*
|
| 384 |
-
* @param string $
|
| 385 |
* @return array
|
| 386 |
*/
|
| 387 |
-
public function get_table_prefix_columns( $
|
| 388 |
-
if ( isset( $this->table_prefix_columns[ strtolower( $
|
| 389 |
-
return $this->table_prefix_columns[ strtolower( $
|
| 390 |
}
|
| 391 |
|
| 392 |
return array();
|
|
@@ -709,8 +709,8 @@ abstract class Ai1wm_Database {
|
|
| 709 |
$table_columns = array();
|
| 710 |
|
| 711 |
// Loop over table columns
|
| 712 |
-
|
| 713 |
-
$table_columns[ strtolower( $
|
| 714 |
}
|
| 715 |
|
| 716 |
// Loop over table rows
|
|
@@ -1023,6 +1023,29 @@ abstract class Ai1wm_Database {
|
|
| 1023 |
return $unique_keys;
|
| 1024 |
}
|
| 1025 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1026 |
/**
|
| 1027 |
* Replace table prefixes
|
| 1028 |
*
|
|
@@ -1294,12 +1317,12 @@ abstract class Ai1wm_Database {
|
|
| 1294 |
/**
|
| 1295 |
* Check whether input is INSERT INTO query
|
| 1296 |
*
|
| 1297 |
-
* @param string $input
|
| 1298 |
-
* @param string $
|
| 1299 |
* @return boolean
|
| 1300 |
*/
|
| 1301 |
-
protected function is_insert_into_query( $input, $
|
| 1302 |
-
return stripos( $input, sprintf( 'INSERT INTO `%s`', $
|
| 1303 |
}
|
| 1304 |
|
| 1305 |
/**
|
|
@@ -1447,23 +1470,23 @@ abstract class Ai1wm_Database {
|
|
| 1447 |
protected function prepare_table_values( $input, $column_type ) {
|
| 1448 |
if ( is_null( $input ) ) {
|
| 1449 |
return 'NULL';
|
| 1450 |
-
} elseif ( $column_type ===
|
| 1451 |
return $input;
|
| 1452 |
-
} elseif ( $column_type ===
|
| 1453 |
return $input;
|
| 1454 |
-
} elseif ( $column_type ===
|
| 1455 |
return $input;
|
| 1456 |
-
} elseif ( $column_type ===
|
| 1457 |
return $input;
|
| 1458 |
-
} elseif ( $column_type ===
|
| 1459 |
return $input;
|
| 1460 |
-
} elseif ( $column_type ===
|
| 1461 |
return $input;
|
| 1462 |
-
} elseif ( $column_type ===
|
| 1463 |
return $input;
|
| 1464 |
-
} elseif ( $column_type ===
|
| 1465 |
return $input;
|
| 1466 |
-
} elseif ( $column_type ===
|
| 1467 |
return $input;
|
| 1468 |
}
|
| 1469 |
|
|
@@ -1523,14 +1546,6 @@ abstract class Ai1wm_Database {
|
|
| 1523 |
*/
|
| 1524 |
abstract public function fetch_row( $result );
|
| 1525 |
|
| 1526 |
-
/**
|
| 1527 |
-
* Return the field from MySQL query as row
|
| 1528 |
-
*
|
| 1529 |
-
* @param resource $result MySQL resource
|
| 1530 |
-
* @return object
|
| 1531 |
-
*/
|
| 1532 |
-
abstract public function fetch_field( $result );
|
| 1533 |
-
|
| 1534 |
/**
|
| 1535 |
* Return the number for rows from MySQL results
|
| 1536 |
*
|
| 339 |
/**
|
| 340 |
* Set table where clauses
|
| 341 |
*
|
| 342 |
+
* @param string $table_name Table name
|
| 343 |
+
* @param array $where_clauses Table clauses
|
| 344 |
* @return object
|
| 345 |
*/
|
| 346 |
+
public function set_table_where_clauses( $table_name, $where_clauses ) {
|
| 347 |
+
$this->table_where_clauses[ strtolower( $table_name ) ] = $where_clauses;
|
| 348 |
|
| 349 |
return $this;
|
| 350 |
}
|
| 352 |
/**
|
| 353 |
* Get table where clauses
|
| 354 |
*
|
| 355 |
+
* @param string $table_name Table name
|
| 356 |
* @return array
|
| 357 |
*/
|
| 358 |
+
public function get_table_where_clauses( $table_name ) {
|
| 359 |
+
if ( isset( $this->table_where_clauses[ strtolower( $table_name ) ] ) ) {
|
| 360 |
+
return $this->table_where_clauses[ strtolower( $table_name ) ];
|
| 361 |
}
|
| 362 |
|
| 363 |
return array();
|
| 366 |
/**
|
| 367 |
* Set table prefix columns
|
| 368 |
*
|
| 369 |
+
* @param string $table_name Table name
|
| 370 |
+
* @param array $prefix_columns Table columns
|
| 371 |
* @return object
|
| 372 |
*/
|
| 373 |
+
public function set_table_prefix_columns( $table_name, $prefix_columns ) {
|
| 374 |
+
foreach ( $prefix_columns as $column_name ) {
|
| 375 |
+
$this->table_prefix_columns[ strtolower( $table_name ) ][ strtolower( $column_name ) ] = true;
|
| 376 |
}
|
| 377 |
|
| 378 |
return $this;
|
| 381 |
/**
|
| 382 |
* Get table prefix columns
|
| 383 |
*
|
| 384 |
+
* @param string $table_name Table name
|
| 385 |
* @return array
|
| 386 |
*/
|
| 387 |
+
public function get_table_prefix_columns( $table_name ) {
|
| 388 |
+
if ( isset( $this->table_prefix_columns[ strtolower( $table_name ) ] ) ) {
|
| 389 |
+
return $this->table_prefix_columns[ strtolower( $table_name ) ];
|
| 390 |
}
|
| 391 |
|
| 392 |
return array();
|
| 709 |
$table_columns = array();
|
| 710 |
|
| 711 |
// Loop over table columns
|
| 712 |
+
foreach ( $this->get_column_types( $table_name ) as $column_name => $column_type ) {
|
| 713 |
+
$table_columns[ strtolower( $column_name ) ] = $column_type;
|
| 714 |
}
|
| 715 |
|
| 716 |
// Loop over table rows
|
| 1023 |
return $unique_keys;
|
| 1024 |
}
|
| 1025 |
|
| 1026 |
+
/**
|
| 1027 |
+
* Get MySQL column types
|
| 1028 |
+
*
|
| 1029 |
+
* @param string $table_name Table name
|
| 1030 |
+
* @return array
|
| 1031 |
+
*/
|
| 1032 |
+
protected function get_column_types( $table_name ) {
|
| 1033 |
+
$column_types = array();
|
| 1034 |
+
|
| 1035 |
+
// Get column types
|
| 1036 |
+
$result = $this->query( "SHOW COLUMNS FROM `{$table_name}`" );
|
| 1037 |
+
while ( $row = $this->fetch_assoc( $result ) ) {
|
| 1038 |
+
if ( isset( $row['Field'] ) ) {
|
| 1039 |
+
$column_types[ $row['Field'] ] = $row['Type'];
|
| 1040 |
+
}
|
| 1041 |
+
}
|
| 1042 |
+
|
| 1043 |
+
// Close result cursor
|
| 1044 |
+
$this->free_result( $result );
|
| 1045 |
+
|
| 1046 |
+
return $column_types;
|
| 1047 |
+
}
|
| 1048 |
+
|
| 1049 |
/**
|
| 1050 |
* Replace table prefixes
|
| 1051 |
*
|
| 1317 |
/**
|
| 1318 |
* Check whether input is INSERT INTO query
|
| 1319 |
*
|
| 1320 |
+
* @param string $input SQL statement
|
| 1321 |
+
* @param string $table_name Table name (case insensitive)
|
| 1322 |
* @return boolean
|
| 1323 |
*/
|
| 1324 |
+
protected function is_insert_into_query( $input, $table_name ) {
|
| 1325 |
+
return stripos( $input, sprintf( 'INSERT INTO `%s`', $table_name ) ) === 0;
|
| 1326 |
}
|
| 1327 |
|
| 1328 |
/**
|
| 1470 |
protected function prepare_table_values( $input, $column_type ) {
|
| 1471 |
if ( is_null( $input ) ) {
|
| 1472 |
return 'NULL';
|
| 1473 |
+
} elseif ( stripos( $column_type, 'tinyint' ) === 0 ) {
|
| 1474 |
return $input;
|
| 1475 |
+
} elseif ( stripos( $column_type, 'smallint' ) === 0 ) {
|
| 1476 |
return $input;
|
| 1477 |
+
} elseif ( stripos( $column_type, 'mediumint' ) === 0 ) {
|
| 1478 |
return $input;
|
| 1479 |
+
} elseif ( stripos( $column_type, 'int' ) === 0 ) {
|
| 1480 |
return $input;
|
| 1481 |
+
} elseif ( stripos( $column_type, 'bigint' ) === 0 ) {
|
| 1482 |
return $input;
|
| 1483 |
+
} elseif ( stripos( $column_type, 'float' ) === 0 ) {
|
| 1484 |
return $input;
|
| 1485 |
+
} elseif ( stripos( $column_type, 'double' ) === 0 ) {
|
| 1486 |
return $input;
|
| 1487 |
+
} elseif ( stripos( $column_type, 'decimal' ) === 0 ) {
|
| 1488 |
return $input;
|
| 1489 |
+
} elseif ( stripos( $column_type, 'bit' ) === 0 ) {
|
| 1490 |
return $input;
|
| 1491 |
}
|
| 1492 |
|
| 1546 |
*/
|
| 1547 |
abstract public function fetch_row( $result );
|
| 1548 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1549 |
/**
|
| 1550 |
* Return the number for rows from MySQL results
|
| 1551 |
*
|
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: 5.1
|
| 6 |
Requires PHP: 5.2.17
|
| 7 |
-
Stable tag: 6.
|
| 8 |
License: GPLv2 or later
|
| 9 |
|
| 10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
|
@@ -108,6 +108,11 @@ Alternatively you can download the plugin using the download button on this page
|
|
| 108 |
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)
|
| 109 |
|
| 110 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 111 |
= 6.91 =
|
| 112 |
**Changed**
|
| 113 |
|
| 4 |
Requires at least: 3.3
|
| 5 |
Tested up to: 5.1
|
| 6 |
Requires PHP: 5.2.17
|
| 7 |
+
Stable tag: 6.92
|
| 8 |
License: GPLv2 or later
|
| 9 |
|
| 10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
| 108 |
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)
|
| 109 |
|
| 110 |
== Changelog ==
|
| 111 |
+
= 6.92 =
|
| 112 |
+
**Added**
|
| 113 |
+
|
| 114 |
+
* Workaround for PHP 7.3.2 bug when database export uses more memory https://bugs.php.net/bug.php?id=77597
|
| 115 |
+
|
| 116 |
= 6.91 =
|
| 117 |
**Changed**
|
| 118 |
|
