Changelog
Versions follow the WordPress.org listing. Every release keeps the two invariants: the preview predicts the import, and rollback is exact.
2.0.0
- Some features moved to Importundo Pro, a paid add-on. Import from a web address, saved mapping templates, the content export on the history screen, the adjustable undo window (free is now a fixed 30 days), and ACF Pro's galleries and repeaters. Selling these funds the plugin's development.
- Everything else is unchanged and free: importing, the whole-file check, the preview, the undo, WooCommerce products and plain ACF fields. The free plugin never nags about Pro.
- If you rely on a moved feature and do not want Pro, stay on 1.2.0 — it keeps working as it is.
- The safety exports stay free: failed rows, the full row log, and the current values of what an import is about to change.
- New hooks so any add-on can extend the importer:
importundo_features,importundo_accept_url_source,importundo_template_lookup,importundo_retention_bounds,importundo_history_exportbar,importundo_admin_menu,importundo_acf_row_types,importundo_acf_preparers.
1.2.0
- Advanced Custom Fields. ACF fields appear on the mapping screen under their own heading, with their own labels, and are written through ACF so the values are the ones ACF reads back — the choice behind a label, the list behind a comma-separated cell, the date in the form ACF keeps, the ID behind a title. Rollback restores the field key alongside the value.
- ACF Pro's galleries and repeaters. A gallery is a column of addresses; a repeater is a column per field inside it, rows separated by a vertical bar and rebuilt by position. Clone and group fields are offered as the ordinary fields ACF stores them as. Flexible content is refused with its reason, because a fixed set of columns cannot say which layout each row is.
- A cell an ACF field will not accept is reported by the preview, before anything is written, rather than in the log afterwards.
- Fixed: a row whose only change was a WooCommerce attribute, gallery or related-product list was reported as already correct and silently not applied. Those rows are now written.
- WooCommerce products. Simple, grouped, external and variable products with their variations, saved through WooCommerce so that prices, stock status and the shop's own lookup table are derived correctly rather than written blind. SKU, prices with a sale schedule, stock, dimensions, tax, attributes, gallery, downloads, upsells and cross-sells. Rollback covers all of it.
- The target content type can be changed from the mapping screen. It used to be fixed before you had seen a single column name, so a product file imported as blog posts and the price columns had nowhere to go. If the columns look like something other than what is selected, the importer now says so and offers to switch.
- Fixed: choosing a custom field as the matching key no longer requires a reload — the list of possible keys is rebuilt as soon as a column is mapped to one.
- Fixed: the mapping screen accumulated a duplicate event listener on every redraw, so a change could be handled several times over.
- Uploaded files are now handed to WordPress's own upload handling, which applies its file type checks before the file is stored.
Upgrade notice: imports WooCommerce products and ACF fields through WooCommerce and ACF themselves, and lets you change the target content type from the mapping screen. Fixes a row whose only change was a product's attributes or gallery being reported as already correct and skipped.
1.1.0
- Check the whole file first. Every row resolved exactly as the import resolves it, nothing written, with counts, the rows that would fail, and the categories that would be created. One click runs it for real.
- Rows that would change nothing are no longer written. No modified date stamped, no caches cleared, no undo data stored. A no-op re-import is several times faster.
- Export. Download your content as a CSV that imports straight back without mapping.
- Before an import that overwrites anything, the count of posts it will change is shown, along with the offer to download what those posts hold today.
- Undoing an import can now remove the categories and tags it created, if you ask it to — and never one that anything else has started using.
- WP-CLI:
wp importundo import,list,status,rollback,retry. - Fixed: undoing an import that updated posts used to leave the revisions behind, so the site was not quite as it had been.
Upgrade notice: adds a whole-file check that writes nothing, skips rows that are already correct, exports, and a WP-CLI command. Also fixes a case where undoing an import left revisions behind.
1.0.1
- Every error and warning now says what you can do about it, not only what went wrong, with the steps most likely to help first.
- When a site cannot make background requests to itself, the importer works out why — a login prompt, a security plugin, a certificate, a firewall — and gives the matching advice, plus a Test again button.
- Where the fix genuinely needs your host, you get the question to send them, ready to copy.
- The error log explains each kind of failure once, above the rows it applies to, instead of repeating the same sentence against every row.
- Large imports say how long undoing them will take before you start.
1.0.0
- First release: CSV import for posts, pages and custom post types, dry-run preview, chunked resumable execution, per-row error log, saved mapping templates and full rollback.
What is planned
Roughly in this order, and without dates. Nothing ships that cannot be previewed accurately or rolled back exactly — a feature that breaks either of those is not a feature.
| Ahead | What it means |
|---|---|
| Value mapping and row filters | Translate a column's values on the way in, and import only the rows that match a condition |
| A transform library | More than trim, strip and case: the conversions supplier feeds actually need |
| More image handling | Several sources per row, and files already on the server rather than at an address |
| More custom field plugins | Meta Box and Pods field types written as those plugins write them, as ACF fields already are |
| Remote sources and schedules | A feed at an address, fetched on a schedule, with the same preview and the same undo |
| Users, comments and terms | As import targets in their own right |