Changeset 3349173
- Timestamp:
- 08/24/2025 09:13:36 AM (6 months ago)
- Location:
- magic-export-import
- Files:
-
- 58 added
- 8 edited
-
tags/1.1.1 (added)
-
tags/1.1.1/.DS_Store (added)
-
tags/1.1.1/LICENSE (added)
-
tags/1.1.1/assets (added)
-
tags/1.1.1/assets/loader.svg (added)
-
tags/1.1.1/assets/magic-export-import.js (added)
-
tags/1.1.1/assets/magic-export-import.min.css (added)
-
tags/1.1.1/assets/magic-export-import.min.css.map (added)
-
tags/1.1.1/assets/magic-export-import.min.js (added)
-
tags/1.1.1/assets/magic-export-import.scss (added)
-
tags/1.1.1/assets/select2 (added)
-
tags/1.1.1/assets/select2/select2.min.css (added)
-
tags/1.1.1/assets/select2/select2.min.js (added)
-
tags/1.1.1/class-magic-ex-im-setup.php (added)
-
tags/1.1.1/export (added)
-
tags/1.1.1/export/.DS_Store (added)
-
tags/1.1.1/export/magic-export-menus-test.local.csv (added)
-
tags/1.1.1/export/magic-export-posts-page-oral-reconstruction.local.csv (added)
-
tags/1.1.1/export/magic-export-posts-page-test.local.csv (added)
-
tags/1.1.1/includes (added)
-
tags/1.1.1/includes/.DS_Store (added)
-
tags/1.1.1/includes/class-magic-ex-im-data.php (added)
-
tags/1.1.1/includes/class-magic-ex-im-type.php (added)
-
tags/1.1.1/includes/magic-ex-im-fallback-functions.php (added)
-
tags/1.1.1/includes/magic-ex-im-functions.php (added)
-
tags/1.1.1/includes/magic-types (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-acf-options-pages.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-comments.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-menus.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-posts.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-shop-orders.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-terms.php (added)
-
tags/1.1.1/includes/magic-types/class-magic-ex-im-type-users.php (added)
-
tags/1.1.1/includes/plugin-adapters (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-acf.php (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-cf7.php (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-polylang.php (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-wc-bexio-automator.php (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-woocommerce.php (added)
-
tags/1.1.1/includes/plugin-adapters/class-magic-ex-im-adapter-yoast-seo.php (added)
-
tags/1.1.1/includes/trait-magic-ex-im-singleton.php (added)
-
tags/1.1.1/languages (added)
-
tags/1.1.1/readme.txt (added)
-
tags/1.1.1/template-parts (added)
-
tags/1.1.1/template-parts/.DS_Store (added)
-
tags/1.1.1/template-parts/advanced-filters (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-comments.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-posts.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-shop-orders.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-terms-polylang.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-terms.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-toggler.php (added)
-
tags/1.1.1/template-parts/advanced-filters/advanced-filters-users.php (added)
-
tags/1.1.1/template-parts/import-progress.php (added)
-
tags/1.1.1/template-parts/page-content.php (added)
-
tags/1.1.1/template-parts/select-export-keys.php (added)
-
tags/1.1.1/template-parts/select-export-media-keys.php (added)
-
tags/1.1.1/template-parts/select.php (added)
-
trunk/class-magic-ex-im-setup.php (modified) (1 diff)
-
trunk/includes/class-magic-ex-im-data.php (modified) (2 diffs)
-
trunk/includes/class-magic-ex-im-type.php (modified) (2 diffs)
-
trunk/includes/magic-types/class-magic-ex-im-type-posts.php (modified) (1 diff)
-
trunk/includes/magic-types/class-magic-ex-im-type-terms.php (modified) (1 diff)
-
trunk/includes/plugin-adapters/class-magic-ex-im-adapter-polylang.php (modified) (3 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/template-parts/page-content.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
magic-export-import/trunk/class-magic-ex-im-setup.php
r3310897 r3349173 3 3 * Plugin Name: Magic Export & Import 4 4 * Description: The ultimate tool to migrate any content including posts, terms, users, comments, WooCommerce shop orders, menus and ACF Options pages. 5 * Version: 1.1. 05 * Version: 1.1.1 6 6 * Requires at least: 6.2 7 7 * Requires PHP: 7.4 -
magic-export-import/trunk/includes/class-magic-ex-im-data.php
r3310897 r3349173 282 282 */ 283 283 public static function set_import_deferred_data() { 284 $ processing_item_id = self::get_processing_item_id();285 286 if ( ! self::$deferred_data || ! $ processing_item_id ) {284 $item_id = self::get_processing_item_id(); 285 286 if ( ! self::$deferred_data || ! $item_id ) { 287 287 return; 288 288 } 289 289 290 $deferred_data = self::get_import_deferred_data();291 $deferred_data[ $ processing_item_id ] ??= array();292 293 $deferred_data[ $ processing_item_id ] = array_merge(294 $deferred_data[ $ processing_item_id ],290 $deferred_data = self::get_import_deferred_data(); 291 $deferred_data[ $item_id ] ??= array(); 292 293 $deferred_data[ $item_id ] = array_merge( 294 $deferred_data[ $item_id ], 295 295 self::$deferred_data 296 296 ); … … 303 303 /** 304 304 * Gets deferred data. 305 * 306 * @return array 305 307 */ 306 308 public static function get_import_deferred_data() { -
magic-export-import/trunk/includes/class-magic-ex-im-type.php
r3310897 r3349173 916 916 // Process deferred items data. 917 917 } elseif ( ! $this->import_progress['deferred_items_processed'] ) { 918 $deferred_items = Magic_EX_IM_Data::get_import_deferred_data(); 918 919 $deferred_items = apply_filters( 'magic_im_deferred_items', Magic_EX_IM_Data::get_import_deferred_data() ); 919 920 920 921 foreach ( $deferred_items as $item_id => $item_data ) { … … 1081 1082 1082 1083 // Skip item if user don't allow to update existing items and not deferred items are processed. 1083 if ( magic_ex_im_get_user_params( 'skip-existing-items' ) && ! $this->import_ result['file_items_processed'] ) {1084 if ( magic_ex_im_get_user_params( 'skip-existing-items' ) && ! $this->import_progress['file_items_processed'] ) { 1084 1085 1085 1086 ++$this->import_progress['skipped']; -
magic-export-import/trunk/includes/magic-types/class-magic-ex-im-type-posts.php
r3310897 r3349173 273 273 274 274 add_filter( 'magic_ex_maybe_adjust_value', array( $this, 'adjust_value' ), 5, 3 ); 275 add_filter( 'magic_im_deferred_items', array( $this, 'magic_im_deferred_items' ) ); 276 } 277 278 /** 279 * Processes filter hook 'magic_im_deferred_items'. 280 * 281 * @param array[] $data Deferred items data with key as item ID and value as item data. 282 * @return array 283 */ 284 public function magic_im_deferred_items( $data ) { 285 286 // Set mandatory keys to the deferred items data. 287 foreach ( $data as $item_id => &$item_data ) { 288 $item_data['post']['post_name'] ??= get_post_field( 'post_name', $item_id ); 289 } 290 291 return $data; 275 292 } 276 293 -
magic-export-import/trunk/includes/magic-types/class-magic-ex-im-type-terms.php
r3310897 r3349173 121 121 122 122 add_filter( 'magic_ex_maybe_adjust_value', array( $this, 'adjust_value' ), 5, 3 ); 123 add_filter( 'magic_im_deferred_items', array( $this, 'magic_im_deferred_items' ) ); 124 } 125 126 /** 127 * Processes filter hook 'magic_im_deferred_items'. 128 * 129 * @param array[] $data Deferred items data with key as item ID and value as item data. 130 * @return array 131 */ 132 public function magic_im_deferred_items( $data ) { 133 134 // Set mandatory keys to the deferred items data. 135 foreach ( $data as $item_id => &$item_data ) { 136 $item_data['term']['slug'] ??= get_term_field( 'slug', $item_id, $this->magic_item ); 137 } 138 139 return $data; 123 140 } 124 141 -
magic-export-import/trunk/includes/plugin-adapters/class-magic-ex-im-adapter-polylang.php
r3310897 r3349173 68 68 add_filter( 'magic_im_item_data_taxonomy', array( $this, 'translate_term' ), 10, 2 ); 69 69 add_filter( 'pre_update_option_theme_mods_' . get_stylesheet(), array( $this, 'pre_update_option_theme_mods' ) ); 70 add_filter( 'magic_im_deferred_items', array( $this, 'magic_im_deferred_items' ) ); 71 72 global $polylang; 73 74 if ( isset( $polylang->sync ) ) { 75 remove_action( 'created_term', array( $polylang->sync, 'sync_term_parent' ), 10 ); 76 remove_action( 'edited_term', array( $polylang->sync, 'sync_term_parent' ), 10 ); 77 } 78 } 79 80 /** 81 * Processes filter hook 'magic_im_deferred_items'. 82 * 83 * @param array[] $data Deferred items data with key as item ID and value as item data. 84 * @return array 85 */ 86 public function magic_im_deferred_items( $data ) { 87 88 // Add mandatory Polylang keys to the deferred items. 89 if ( $this->is_translated_item() && $data ) { 90 foreach ( $data as $item_id => &$item_data ) { 91 $item_data[ self::KEYS_GROUP ]['language'] ??= $this->get_item_lang( $item_id ); 92 } 93 } 94 95 return $data; 96 } 97 98 /** 99 * Gets the language of a processing item. 100 * 101 * @param int $item_id Item ID. 102 * @return string 103 */ 104 private function get_item_lang( $item_id ) { 105 106 if ( 'terms' === magic_ex_im_get_magic_type() ) { 107 $lang = pll_get_term_language( $item_id ); 108 } 109 110 if ( 'posts' === magic_ex_im_get_magic_type() ) { 111 $lang = pll_get_post_language( $item_id ); 112 113 if ( ! $lang && has_post_parent( $item_id ) ) { 114 $post_parent_id = get_post_field( 'post_parent', $item_id ); 115 $lang = pll_get_post_language( $post_parent_id ); 116 } 117 } 118 119 return $lang ?? ''; 70 120 } 71 121 … … 236 286 // Set item language as code. 237 287 case 'language': 238 if ( 'terms' === magic_ex_im_get_magic_type() ) { 239 $key_data = pll_get_term_language( $item_id ); 240 } 241 242 if ( 'posts' === magic_ex_im_get_magic_type() ) { 243 $key_data = pll_get_post_language( $item_id ); 244 245 if ( ! $key_data && has_post_parent( $item_id ) ) { 246 $post_parent_id = get_post_field( 'post_parent', $item_id ); 247 $key_data = pll_get_post_language( $post_parent_id ); 248 } 249 } 250 288 $key_data = $this->get_item_lang( $item_id ); 251 289 break; 252 290 … … 542 580 if ( $lang_code === $this->get_lang() ) { 543 581 $term_translations[ $lang_code ] = $item_id; 544 continue; 545 } 546 547 $term_id = get_term_by( 'slug', $term_slug, magic_ex_im_get_magic_item() )->term_id ?? ''; 548 549 if ( $term_id && $this->is_installed_lang( $lang_code ) ) { 550 $term_translations[ $lang_code ] = pll_get_term( $term_id, $lang_code ); 582 583 } elseif ( $this->is_installed_lang( $lang_code ) ) { 584 585 $term_translations[ $lang_code ] = get_terms( 586 array( 587 'name' => $term_slug, 588 'taxonomy' => magic_ex_im_get_magic_item(), 589 'hide_empty' => false, 590 'fields' => 'ids', 591 'lang' => $lang_code, 592 ) 593 )[0] ?? 0; 551 594 } 552 595 } -
magic-export-import/trunk/readme.txt
r3310897 r3349173 4 4 Tags: export, import, content migration, csv, custom fields 5 5 Tested up to: 6.8 6 Stable tag: 1.1. 06 Stable tag: 1.1.1 7 7 License: GPL v3 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-3.0.txt … … 79 79 == Changelog == 80 80 81 = 1.1.1 = 82 * Polylang adapter fixes related to term parent and term translations 83 81 84 = 1.1.0 = 82 85 * Added support for WordPress menus export and import -
magic-export-import/trunk/template-parts/page-content.php
r3220340 r3349173 224 224 <div id="magic-ex-im-footer"> 225 225 <p> 226 If you find this plugin helpful, please consider <a 227 href="https://wordpress.org/support/plugin/magic-export-import/reviews/" target="_blank" 228 rel="noopener noreferrer">leaving a review</a> to help others discover it. 229 </p> 230 <p> 226 231 For assistance, cooperation proposals or sponsorship opportunities, feel free to reach out via email 227 232 <a href="mailto:[email protected]" target="_blank"
Note: See TracChangeset
for help on using the changeset viewer.