== Changelog == = 1.1.0 = _Release date: 2026-03-02_ **Fixed** * `mlp_migrator_log` (the plugin's own table) was incorrectly listed in the System Status as an MLP2 table requiring renaming. It is now excluded from `get_original_tables()` as it already was from `rename_to_backup()`. **Changed** * MLP2 sitemeta keys (`inpsyde_multilingual*`) are now **renamed** to `mlp2bak_inpsyde_multilingual*` during the table preparation step, instead of being deleted. This makes the operation fully reversible. * Restoring original table names (`Restore original table names`) now also restores the original sitemeta key names. * Cleanup step (Step 6, "Delete MLP2 network settings") now also deletes the backed-up `mlp2bak_inpsyde_multilingual*` sitemeta keys alongside the existing `mlp_*` keys. **Compatibility** * WordPress: 6.7 – 6.9 * PHP: 8.2 – 8.5 = 1.0.0 = _Release date: 2026-02-27_ **Highlights** * First production release. Complete six-step migration wizard from MultilingualPress 2 to MultilingualPress 5. **Added** * Table preparation step: renames MLP2 tables (`{prefix}mlp_*` → `{prefix}mlp2bak_*`) so MLP5 can activate cleanly. Fully reversible. * Wizard Step 1 — Preflight Checks: verifies backup tables exist and MLP5 is network-active before allowing migration to proceed. * Wizard Step 2 — Analysis: scans MLP2 backup tables, counts records, detects orphaned sites/posts/terms and duplicate rows, validates MLP5 schema compatibility. * Wizard Step 3 — Site Relations: migrates all site connections from MLP2 backup tables to MLP5. Idempotent (safe to re-run). * Wizard Step 4 — Content Relations: migrates post and term relationships in AJAX batches with a real-time progress bar, pause/resume support, and orphan filtering. * Wizard Step 5 — Verification: compares expected totals with log counts by category; offers full CSV export of the migration log. * Wizard Step 6 — Cleanup (optional): network-deactivates MLP2, drops backup tables, and removes MLP2 sitemeta entries. Requires explicit `DELETE` confirmation. * Migration log table (`{prefix}mlp_migrator_log`) with structured entries (type, context, source/target IDs, message). * MLP5 schema detector: identifies `mlp_site_relations`, `mlp_content_relations`, and `mlp_relationships` tables and validates column presence. * MLP2 detector: locates MLP2 plugin file, reads version, detects backup tables. Supports `mlp_relationships`, `mlp_content_relations`, and `multilingual_linked` as content relations table candidates. * Auto-update integration via `Robotstxt_Updater` (Gitea-based update server). * Spanish (es_ES) translation. **Compatibility** * WordPress: 6.7 – 6.9 * PHP: 8.2 – 8.5 = 0.1.0 = _Release date: 2026-02-27_ **Highlights** * Initial plugin scaffold. **Added** * Main plugin file with required WordPress headers and Multisite-only guard. * Plugin bootstrap class with activation, deactivation, and i18n hooks. * Uninstall handler stub. * PHPCS configuration targeting WordPress Coding Standards and PHPCompatibilityWP for PHP 8.2–8.5. * Deploy script to generate a distributable ZIP. * Auto-update integration via Robotstxt_Updater. **Compatibility** * WordPress: 6.7 – 6.9 * PHP: 8.2 – 8.5