Magic Export & Import

Description

Magic Export & Import is a lightweight plugin that provides a powerful and flexible way to export and import content maintaining exact appearance.

It supports migrating:

  • Posts, including custom post types
  • Terms, including custom taxonomies
  • Users, with filtering options by user role
  • All types of comments, including product reviews
  • WooCommerce orders, with full support for High-Performance Order Storage (HPOS)
  • Registered WordPress menus
  • Content of ACF Options pages

Key features:

  • Simple one click exports and imports
  • Related data types exported within the same file: terms, users, products, coupons and other items referenced by the exported content ride along and are imported first, so all the references resolve on the destination site
  • Interactive related data graph: review what will travel with the export, exclude whole types or single items, and hover any item to see why it is included
  • Automatic reference resolution: URLs and ID references within the content and custom fields (including ACF fields and Gutenberg synced patterns) are converted during export and resolve back on import
  • Advanced filtering options for exports: partial exports, date ranges, statuses, taxonomies and user roles
  • Support for media attachments, with automatic download of missing media files on import
  • Cross-domain support – URLs automatically update to match the new site
  • Test mode for previewing result before executing the actual import, preventing unintended changes
  • Real-time progress tracking with logs and controls, for both export and import — large sites don’t hit request timeouts
  • File-based caching of the export page data, keeping the admin pages fast on sites with a lot of content
  • Developer-friendly hooks to modify exporting and importing data
  • Built-in support for popular plugins:
    • Advanced Custom Fields (ACF)
    • Advanced Custom Fields: Extended
    • WooCommerce, including High-Performance Order Storage (HPOS)
    • Polylang
    • Yoast SEO
    • Contact Form 7

Important notes:

  • Posts and Terms Identification. During import, existing posts and terms are identified by their slugs. If a post or term with the same slug exists on the destination site, it will be updated rather than creating a duplicate entry. This applies to all supported post types and taxonomies.

  • Migration Order. Content is migrated in dependency order automatically when “Export related data types and referenced items” is used: related data (e.g. Terms for Posts; Users, Products and Coupons for Shop Orders) is placed into the same export file and imported first, so all the references resolve. When exporting without related data types, migrate content in dependency order manually: Terms (categories, tags etc.) before Posts, and Users before Shop Orders.

  • Related Data Types. The discovered related types and items are shown as an interactive graph before exporting: click a type to exclude it, double-click to show its individual items, and hover an item to see why it is included. Excluding a node also prunes the items reachable only through it. On import, by default missing related items are created and existing ones are kept untouched, but this can be changed with the separate related items import settings (only create new / only update existing), same as for the main items.

  • Shop Order Numbers. By default, WooCommerce uses order IDs as order numbers. During the import process, new IDs will be created, leading to different order numbers. To preserve order numbers, ensure that both the source and destination sites use plugin or configuration that do not depend on order IDs for order numbering.

  • Downloadable Products. Downloadable files linked to Products can only be migrated if they are hosted on the source domain and accessible via direct URLs. Files that are protected or stored outside the source domain cannot be transferred.

  • Plugin Version Consistency. The export file must be generated using the same plugin version as the one installed on the importing site. Importing a file created with a different plugin version is not supported and may lead to unexpected results.

FAQ

What file format is used for exports and imports?

The plugin uses CSV format for all exports and imports.

Can I import media files?

Yes, the plugin can download and import media files referenced in the imported content. Media library can also be exported and imported as attachment post type.

Does it support Gutenberg blocks?

Yes, both Gutenberg and Classic editors are supported. Synced patterns placed in the content are exported along as related items and their references resolve on the destination site. There is no support for plugins like Elementor, WPBakery or any other custom page builders for now.

Is it safe to use this plugin without risking data loss or crashes?

Yes, it is safe. The plugin includes robust data validation mechanisms to ensure consistency between exported and imported data. Moreover, there is a “Test mode” option that lets you preview the import results without making any actual changes to your site. However, it is always a good practice to create backups before performing any imports to safeguard your data. Additionally, before performing a bulk import, it’s recommended to export and import a single item to ensure the process works as expected.

Export or import didn’t work as expected.

If the export or import didn’t work as expected, you can contact me at kovalchik888@gmail.com for assistance. I’ll be happy to help resolve any issues you encounter.

Reviews

February 24, 2026 2 replies
I have been trying to export and import an orders of over 400+ and had tried different plugins but still had issues with them.This plugin did it in an instant and also has a test mode for you to be able to see the orders you’re importing before bringing them to your site.Great Job!Suggestion – I noticed this only import/export orders but it doesnt comes with customers details. I recommend you allow it to import customers data as well.Also the phone number is having 6 extra 0s
September 10, 2025 1 reply
Absolutely magical, a plugin that is more than useful. Works flawlessly, as intuitively as possible.Good job there. Thanks!!!
July 9, 2025 1 reply
This is a pretty lightweight plugin compared to other Import/Export plugins out there but it really works well. Very useful plugin.. Thanks
Read all 3 reviews

Contributors & Developers

“Magic Export & Import” is open source software. The following people have contributed to this plugin.

Contributors

“Magic Export & Import” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “Magic Export & Import” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

2.0.0

  • New: export and import related data types within one file. Check “Export related data types and referenced items” to include the data referenced by the exporting items (e.g. Products, Users and Coupons for Shop Orders; Terms and Users for Posts; linked Posts and Terms for Menus and Comments, including nested relations like Product Categories for ordered Products). The offered types follow the data selected for export and reset when that selection changes. On import, related items are processed first so all the references resolve: missing items are created, existing ones are kept untouched (adjustable with the separate related items import settings).
  • New: interactive related data graph. The discovered related types and items are visualized as a zoomable scheme showing how they nest (e.g. Shop Orders Products Product categories). Click a type to exclude it from the export, double-click it to show its individual items, exclude single items, hover an item to see why it is included and where it came from, or find items by name with the built-in search. Excluding a node automatically prunes the items reachable only through it.
  • New: references found in the exported content and custom fields are resolved to the linked items and added to the related data automatically, so cross-references resolve on import. Both kinds are covered: URLs (post content, ACF link/URL/WYSIWYG fields on any data type including options pages and menus, custom menu links, etc.) resolved to posts or terms, and ACF reference fields that store IDs (post object, relationship, taxonomy, user — including those nested in group, repeater and flexible content) resolved to the referenced posts, terms or users. ACF fields are read through ACF’s own functions so values stored outside the meta table are covered.
  • New: WordPress synced patterns placed in Gutenberg content are detected and exported as related items, and their references are rewritten to resolve on the destination site — including patterns with overrides and patterns nested within other patterns.
  • New: file-based caching of the export page data (item counts, export keys and related data types) to keep the page fast on sites with a lot of content. The cache is stored in files under the plugin folder (not the database), purged automatically when the related content changes (create/update/delete of posts, terms, users, comments, menus or shop orders) and can be purged manually per viewed type with the “Purge cache” button.
  • New: export now runs in the background via AJAX, building the file in slices with a live progress indicator (like the import), so large exports no longer hit request timeouts. The finished file is downloaded automatically when ready.
  • New: translation-ready — all user-facing strings are internationalized and a POT template is bundled. With Polylang active, related graph item labels are tagged with the item language when it differs from the admin language filter.
  • Improvement: the related data types now strictly follow the data selected in the “data for export” field and reset whenever the selection changes, so only items referenced by the exported data are offered.
  • Improvement: individual Shop Orders in the export select are listed newest first, matching the other data types.
  • Fix: ordered Products are now detected as related items for Shop Orders in legacy storage too, not only with HPOS enabled.
  • Fix: refunds no longer appear in the individual Shop Orders export select.

1.2.6

  • Fixed transient caching issue for importing file

1.2.5

  • Fixed media URL detection: URLs without a file extension but with dotted query string parameters (e.g. tracking params like _gl/gclid) are no longer mistakenly treated as media files and download-attempted during import

1.2.4

  • Fixed media files download

1.2.3

  • IDs are now allowed to be exported for reference purposes

1.2.2

  • Fixed ACF adapter.

1.2.1

  • Performance: import CSV file is now uploaded only once and cached server-side; subsequent AJAX requests read the next row slice via byte-offset seek instead of re-uploading and re-parsing the full file

1.2.0

  • Security: export files are now streamed directly to the browser instead of being written to a publicly accessible directory, preventing unauthenticated access to exported data
  • Security: URL validation for media files now enforces http/https scheme

1.1.6

  • Fixed ACF adapter.

1.1.5

  • Adjusted Polylang adapter.

1.1.4

  • Shop orders are now allowed to be updated if not powered with HPOS.

1.1.3

  • Fixed Polylang adapter wrong key on get_terms (name instead of slug)

1.1.2

  • Fixed wrong media URLs detection within background inline styles

1.1.1

  • Polylang adapter fixes related to term parent and term translations

1.1.0

  • Added support for WordPress menus export and import

1.0.4

  • Added fields support for plugin ACF Extended : Advanced Link, Code Editor

1.0.3

  • Fixed ACF fields export with keeping unformatted values

1.0.2

  • Fixed WooCommerce HPOS Identification for shop orders import

1.0.1

  • Initial release