Changeset 2928566
- Timestamp:
- 06/20/2023 11:47:25 AM (3 years ago)
- Location:
- local-sync/trunk
- Files:
-
- 8 edited
-
README.txt (modified) (2 diffs)
-
admin/class-local-sync-admin.php (modified) (2 diffs)
-
admin/class-local-sync-app-functions.php (modified) (1 diff)
-
admin/class-local-sync-replace-db-links.php (modified) (2 diffs)
-
admin/class-local-sync-restore-op.php (modified) (3 diffs)
-
includes/class-local-sync-options.php (modified) (1 diff)
-
local-sync-constants.php (modified) (1 diff)
-
local-sync.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
local-sync/trunk/README.txt
r2796922 r2928566 4 4 Tags: clone, migrate, wp duplicate, wpduplicate, copy site, local sync, local site, dev site, duplicate site, duplicator, cloning, migration, simple cloning, easiest cloning, free cloning 5 5 Requires at least: 3.0.1 6 Tested up to: 6. 0.27 Stable tag: 1.1. 26 Tested up to: 6.2.2 7 Stable tag: 1.1.3 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 51 51 52 52 == Changelog == 53 = 1.1.3 = 54 *Release Date - 20 Jun 2023* 55 56 * Fix : The migration process failed in a few cases. 57 * Fix : Relative URLs did not work on the duplicate site. 58 59 * Improvement : Tested upto WordPress 6.2.2. 53 60 54 61 = 1.1.2 = -
local-sync/trunk/admin/class-local-sync-admin.php
r2796922 r2928566 1048 1048 } 1049 1049 1050 $content = $this->replace_relative_url($content); 1050 1051 // return $content; 1051 1052 … … 1065 1066 // local_sync_log($content, "--------modified_posts_content--------"); 1066 1067 1068 return $content; 1069 } 1070 1071 public function replace_relative_url($content){ 1072 if(empty($content)){ 1073 return $content; 1074 } 1075 1076 global $LOCAL_SYNC_PROD_URL; 1077 global $LOCAL_SYNC_LOCAL_URL; 1078 1079 $prod_site_base_paths = explode("/", $LOCAL_SYNC_PROD_URL); 1080 $prod_site_origin_url = $prod_site_base_paths[0] . '//' . $prod_site_base_paths[2]; 1081 1082 $prod_site_base_path = str_replace($prod_site_origin_url, '', $LOCAL_SYNC_PROD_URL); 1083 1084 if(empty($prod_site_base_path)){ 1085 $prod_site_base_path = ''; 1086 } 1087 1088 $prod_site_base_path = ltrim($prod_site_base_path, '/'); 1089 1090 $content = str_replace('href="/' . $prod_site_base_path, 'href="' . $LOCAL_SYNC_LOCAL_URL . '/', $content); 1067 1091 return $content; 1068 1092 } -
local-sync/trunk/admin/class-local-sync-app-functions.php
r2749602 r2928566 130 130 $result = check_ajax_referer( 'ls_revmakx', 'security', false ); 131 131 132 local_sync_log($result, "-----check_ajax_referer---result--------");132 // local_sync_log($result, "-----check_ajax_referer---result--------"); 133 133 134 134 if(empty($result) || $result == -1){ -
local-sync/trunk/admin/class-local-sync-replace-db-links.php
r2796922 r2928566 834 834 $lines = @file($meta['new_path'] . '/wp-config.php'); 835 835 836 $is_outside_config = $this->is_outside_config($lines, $type); 836 837 if(empty($lines)){ 838 $lines = @file($meta['new_path'] . '/wp-config-sample.php'); 839 } 840 841 if (empty($lines) && $is_outside_config) { 842 wptc_log(array(), '--------preparing self config sample file------------'); 843 844 $config_sample_file_contents_enc = 'PD9waHANCi8qKg0KICogVGhlIGJhc2UgY29uZmlndXJhdGlvbiBmb3IgV29yZFByZXNzDQogKg0KICogVGhlIHdwLWNvbmZpZy5waHAgY3JlYXRpb24gc2NyaXB0IHVzZXMgdGhpcyBmaWxlIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uLg0KICogWW91IGRvbid0IGhhdmUgdG8gdXNlIHRoZSB3ZWIgc2l0ZSwgeW91IGNhbiBjb3B5IHRoaXMgZmlsZSB0byAid3AtY29uZmlnLnBocCINCiAqIGFuZCBmaWxsIGluIHRoZSB2YWx1ZXMuDQogKg0KICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbnM6DQogKg0KICogKiBEYXRhYmFzZSBzZXR0aW5ncw0KICogKiBTZWNyZXQga2V5cw0KICogKiBEYXRhYmFzZSB0YWJsZSBwcmVmaXgNCiAqICogQUJTUEFUSA0KICoNCiAqIEBsaW5rIGh0dHBzOi8vd29yZHByZXNzLm9yZy9kb2N1bWVudGF0aW9uL2FydGljbGUvZWRpdGluZy13cC1jb25maWctcGhwLw0KICoNCiAqIEBwYWNrYWdlIFdvcmRQcmVzcw0KICovDQoNCi8vICoqIERhdGFiYXNlIHNldHRpbmdzIC0gWW91IGNhbiBnZXQgdGhpcyBpbmZvIGZyb20geW91ciB3ZWIgaG9zdCAqKiAvLw0KLyoqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSBmb3IgV29yZFByZXNzICovDQpkZWZpbmUoICdEQl9OQU1FJywgJ2RhdGFiYXNlX25hbWVfaGVyZScgKTsNCg0KLyoqIERhdGFiYXNlIHVzZXJuYW1lICovDQpkZWZpbmUoICdEQl9VU0VSJywgJ3VzZXJuYW1lX2hlcmUnICk7DQoNCi8qKiBEYXRhYmFzZSBwYXNzd29yZCAqLw0KZGVmaW5lKCAnREJfUEFTU1dPUkQnLCAncGFzc3dvcmRfaGVyZScgKTsNCg0KLyoqIERhdGFiYXNlIGhvc3RuYW1lICovDQpkZWZpbmUoICdEQl9IT1NUJywgJ2xvY2FsaG9zdCcgKTsNCg0KLyoqIERhdGFiYXNlIGNoYXJzZXQgdG8gdXNlIGluIGNyZWF0aW5nIGRhdGFiYXNlIHRhYmxlcy4gKi8NCmRlZmluZSggJ0RCX0NIQVJTRVQnLCAndXRmOCcgKTsNCg0KLyoqIFRoZSBkYXRhYmFzZSBjb2xsYXRlIHR5cGUuIERvbid0IGNoYW5nZSB0aGlzIGlmIGluIGRvdWJ0LiAqLw0KZGVmaW5lKCAnREJfQ09MTEFURScsICcnICk7DQoNCi8qKiNAKw0KICogQXV0aGVudGljYXRpb24gdW5pcXVlIGtleXMgYW5kIHNhbHRzLg0KICoNCiAqIENoYW5nZSB0aGVzZSB0byBkaWZmZXJlbnQgdW5pcXVlIHBocmFzZXMhIFlvdSBjYW4gZ2VuZXJhdGUgdGhlc2UgdXNpbmcNCiAqIHRoZSB7QGxpbmsgaHR0cHM6Ly9hcGkud29yZHByZXNzLm9yZy9zZWNyZXQta2V5LzEuMS9zYWx0LyBXb3JkUHJlc3Mub3JnIHNlY3JldC1rZXkgc2VydmljZX0uDQogKg0KICogWW91IGNhbiBjaGFuZ2UgdGhlc2UgYXQgYW55IHBvaW50IGluIHRpbWUgdG8gaW52YWxpZGF0ZSBhbGwgZXhpc3RpbmcgY29va2llcy4NCiAqIFRoaXMgd2lsbCBmb3JjZSBhbGwgdXNlcnMgdG8gaGF2ZSB0byBsb2cgaW4gYWdhaW4uDQogKg0KICogQHNpbmNlIDIuNi4wDQogKi8NCmRlZmluZSggJ0FVVEhfS0VZJywgICAgICAgICAnc2pkYWpzYmRoYWpiZHNoamFiMzIzaGpiamgnICk7DQpkZWZpbmUoICdTRUNVUkVfQVVUSF9LRVknLCAgJ21udm5qc25ha2o3ODc4eTIzeWdlcXV3ZGhxJyApOw0KZGVmaW5lKCAnTE9HR0VEX0lOX0tFWScsICAgICduY21ua2FqbnNqdTI4OTc4Z2Ric2FqYmhpcycgKTsNCmRlZmluZSggJ05PTkNFX0tFWScsICAgICAgICAnY2poYWl1c2hmaXUzODdkaGJjaGJzamlpMmgnICk7DQpkZWZpbmUoICdBVVRIX1NBTFQnLCAgICAgICAgJ29pd3VqZGJkamFoc2ppandpdWl1dTczNzNoJyApOw0KZGVmaW5lKCAnU0VDVVJFX0FVVEhfU0FMVCcsICdobmJjdWl3OHliY2JzYWhpODJianNoYmloaScgKTsNCmRlZmluZSggJ0xPR0dFRF9JTl9TQUxUJywgICAneXdndnNjc2Fqc2tqaGFpbmNzamJ1Mjh1NzMnICk7DQpkZWZpbmUoICdOT05DRV9TQUxUJywgICAgICAgJ2Jja2l1MjgyNjdoc2hiY2Jqc2lhODI3YmJiJyApOw0KDQovKiojQC0qLw0KDQovKioNCiAqIFdvcmRQcmVzcyBkYXRhYmFzZSB0YWJsZSBwcmVmaXguDQogKg0KICogWW91IGNhbiBoYXZlIG11bHRpcGxlIGluc3RhbGxhdGlvbnMgaW4gb25lIGRhdGFiYXNlIGlmIHlvdSBnaXZlIGVhY2gNCiAqIGEgdW5pcXVlIHByZWZpeC4gT25seSBudW1iZXJzLCBsZXR0ZXJzLCBhbmQgdW5kZXJzY29yZXMgcGxlYXNlIQ0KICovDQokdGFibGVfcHJlZml4ID0gJ3dwXyc7DQoNCi8qKg0KICogRm9yIGRldmVsb3BlcnM6IFdvcmRQcmVzcyBkZWJ1Z2dpbmcgbW9kZS4NCiAqDQogKiBDaGFuZ2UgdGhpcyB0byB0cnVlIHRvIGVuYWJsZSB0aGUgZGlzcGxheSBvZiBub3RpY2VzIGR1cmluZyBkZXZlbG9wbWVudC4NCiAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRoYXQgcGx1Z2luIGFuZCB0aGVtZSBkZXZlbG9wZXJzIHVzZSBXUF9ERUJVRw0KICogaW4gdGhlaXIgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzLg0KICoNCiAqIEZvciBpbmZvcm1hdGlvbiBvbiBvdGhlciBjb25zdGFudHMgdGhhdCBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nLA0KICogdmlzaXQgdGhlIGRvY3VtZW50YXRpb24uDQogKg0KICogQGxpbmsgaHR0cHM6Ly93b3JkcHJlc3Mub3JnL2RvY3VtZW50YXRpb24vYXJ0aWNsZS9kZWJ1Z2dpbmctaW4td29yZHByZXNzLw0KICovDQpkZWZpbmUoICdXUF9ERUJVRycsIGZhbHNlICk7DQoNCi8qIEFkZCBhbnkgY3VzdG9tIHZhbHVlcyBiZXR3ZWVuIHRoaXMgbGluZSBhbmQgdGhlICJzdG9wIGVkaXRpbmciIGxpbmUuICovDQoNCg0KDQovKiBUaGF0J3MgYWxsLCBzdG9wIGVkaXRpbmchIEhhcHB5IHB1Ymxpc2hpbmcuICovDQoNCi8qKiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBXb3JkUHJlc3MgZGlyZWN0b3J5LiAqLw0KaWYgKCAhIGRlZmluZWQoICdBQlNQQVRIJyApICkgew0KCWRlZmluZSggJ0FCU1BBVEgnLCBfX0RJUl9fIC4gJy8nICk7DQp9DQoNCi8qKiBTZXRzIHVwIFdvcmRQcmVzcyB2YXJzIGFuZCBpbmNsdWRlZCBmaWxlcy4gKi8NCnJlcXVpcmVfb25jZSBBQlNQQVRIIC4gJ3dwLXNldHRpbmdzLnBocCc7DQo'; 845 846 $file_contents = base64_decode($config_sample_file_contents_enc); 847 848 wptc_log($file_contents, '--------file contents to write------------'); 849 850 if(file_put_contents($meta['new_path'] . '/wp-config-sample.php', $file_contents) === FALSE){ 851 wptc_log(array(), '---------WP CONFIG SAMPLE NOT WRITABLE------------'); 852 } 837 853 $lines = @file($meta['new_path'] . '/wp-config-sample.php'); 838 854 } … … 905 921 $this->reset_Wordfence_config($meta); 906 922 923 } 924 925 private function is_outside_config($lines, $type){ 926 //outside config fix 927 928 return false; 929 930 $got_db_name = false; 931 932 foreach ($lines as $line) { 933 934 if (strstr($line, 'DB_NAME')){ 935 $got_db_name = true; 936 937 break; 938 } 939 940 } 941 942 return !$got_db_name; 907 943 } 908 944 -
local-sync/trunk/admin/class-local-sync-restore-op.php
r2796922 r2928566 534 534 535 535 public function set_local_sync_sql_mode_variables() { 536 local_sync_log('', "--------altering foreign key mode--------"); 537 // $this->wpdb->query("SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0"); 538 $this->wpdb->query("SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=OFF;"); 539 local_sync_log($this->wpdb->last_error,'-----------$last_error----set_local_sync_sql_mode_variables------------'); 540 $this->wpdb->query("SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';"); 536 try{ 537 local_sync_log('', "--------altering foreign key mode--------"); 538 // $this->wpdb->query("SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0"); 539 $this->wpdb->query("SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=OFF;"); 540 local_sync_log($this->wpdb->last_error,'-----------$last_error----set_local_sync_sql_mode_variables------------'); 541 $this->wpdb->query("SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';"); 542 } catch(Exception $e){ 543 local_sync_log($e->getMessage(), "--------set_local_sync_sql_mode_variables----exception----"); 544 } 541 545 542 546 } 543 547 544 548 public function reset_local_sync_sql_mode_variables() { 545 local_sync_log('', "--------resetting foreign key mode--------"); 546 // $this->wpdb->query("SET UNIQUE_CHECKS=@@OLD_UNIQUE_CHECKS"); 547 $this->wpdb->query("SET FOREIGN_KEY_CHECKS=@@OLD_FOREIGN_KEY_CHECKS"); 548 $this->wpdb->query("SET SQL_MODE=@@OLD_SQL_MODE"); 549 try{ 550 local_sync_log('', "--------resetting foreign key mode--------"); 551 // $this->wpdb->query("SET UNIQUE_CHECKS=@@OLD_UNIQUE_CHECKS"); 552 $this->wpdb->query("SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS"); 553 $this->wpdb->query("SET SQL_MODE=@OLD_SQL_MODE"); 554 } catch(Exception $e){ 555 local_sync_log($e->getMessage(), "--------set_local_sync_sql_mode_variables----exception----"); 556 } 549 557 } 550 558 … … 901 909 902 910 elseif ( is_object( $data ) ) { 903 $_tmp = $data; 904 $props = get_object_vars( $data ); 905 foreach ( $props as $key => $value ) { 906 $_tmp->$key = $this->findAndReplace( $from, $to, $value, false ); 907 } 908 909 $data = $_tmp; 910 unset( $_tmp ); 911 if( get_class($data) != '__PHP_Incomplete_Class' ){ 912 $_tmp = $data; 913 $props = get_object_vars( $data ); 914 foreach ( $props as $key => $value ) { 915 916 //If some objects has \0 in the key it creates the fatal error so skip such contents 917 if (is_string($key) && strstr($key, "\0") !== false ) { 918 continue; 919 } 920 if (is_string($value) && strstr($value, "\0") !== false ) { 921 continue; 922 } 923 924 $_tmp->$key = $this->findAndReplace( $from, $to, $value, false ); 925 } 926 927 $data = $_tmp; 928 unset( $_tmp ); 929 } 911 930 } 912 931 … … 1173 1192 $this->replace_links_obj->replace_htaccess( 1174 1193 array( 1194 'old_url' => $this->old_url, 1175 1195 'new_url' => $this->new_url, 1176 1196 'new_path' => $this->new_dir, -
local-sync/trunk/includes/class-local-sync-options.php
r2749602 r2928566 5 5 public $all_configs; 6 6 public $files_to_be_skipped_during_full_copy; 7 public $options_table_name; 8 public $wpdb; 9 public $fs; 10 public $backup_dir; 7 11 8 12 public function __construct() { -
local-sync/trunk/local-sync-constants.php
r2796922 r2928566 75 75 76 76 public function versions(){ 77 $this->define( 'LOCAL_SYNC_VERSION', '1.1. 2' );77 $this->define( 'LOCAL_SYNC_VERSION', '1.1.3' ); 78 78 $this->define( 'LOCAL_SYNC_DATABASE_VERSION', '1.0' ); 79 79 } -
local-sync/trunk/local-sync.php
r2796922 r2928566 12 12 * Plugin URI: https://localsync.io 13 13 * Description: Easily migrate your WordPress Site from one host to another. 14 * Version: 1.1. 214 * Version: 1.1.3 15 15 * Author: Revmakx 16 16 * Author URI: https://revmakx.com
Note: See TracChangeset
for help on using the changeset viewer.