MksDdn Migrate Content

Reliable chunked migrations and scheduled backups powered by custom .wpbkp archives.

Author:Max (profile at wordpress.org)
WordPress version required:6.2
WordPress version tested:6.9.4
Plugin version:2.1.7
Added to WordPress repository:19-01-2026
Last updated:03-04-2026
Rating, %:0
Rated by:0
Plugin URI:https://github.com/mksddn/WP-MksDdn-Migrate-C...
Total downloads:758
plugin download
Click to start download

MksDdn Migrate Content is a clean-room migration suite that packages your site into deterministic .wpbkp archives. Each bundle contains a manifest, checksum, database segments, media, selected files, and user decisions, so imports stay predictable.

Why MksDdn Migrate Content?

  • Dual export modes – choose Full Site (database + uploads/plugins/mu-plugins/themes) or Selected Content (multi-select posts/pages/CPTs) with or without referenced media.
  • Chunked pipeline – large archives stream through REST API endpoints with resume tokens, so multi‑GB transfers survive flaky networks.
  • User merge control – compare archive vs current users and decide how to merge conflicts.
  • Theme import mode – when a theme archive is detected, choose replace vs merge before applying changes.
  • Integrity & safety.wpbkp archives ship with manifests and checksums; imports verify capabilities, nonces, and disk space before touching data.

Feature Highlights

  • Archive format with manifest, checksum, and payload folders (content.json, media/, options/, filesystem slices).
  • Media scanner that collects featured images, galleries, attachments referenced inside blocks or shortcodes.
  • File-system coverage for wp-content/uploads, wp-content/plugins, wp-content/mu-plugins, wp-content/themes with filters to skip VCS/system files.
  • Chunked upload/download JS client with live progress, auto-resume, and graceful fallback to direct transfer.
  • Server file import – select backup files directly from wp-content/uploads/mksddn-mc/imports/ directory without browser uploads.
  • Custom .wpbkp drag-and-drop uploader with checksum guardrails (UI polish deferred to next milestone, functionality already complete).

Architecture

The plugin follows SOLID principles and WordPress Coding Standards with a clean, modular architecture:

Service Container & Dependency Injection

  • Centralized ServiceContainer manages all dependencies
  • Service Providers (CoreServiceProvider, AdminServiceProvider, ExportServiceProvider, ImportServiceProvider, ChunkServiceProvider) register services
  • All dependencies resolved through container, eliminating direct instantiation
  • Full support for interface-based dependency injection

Request Handlers

  • ExportRequestHandler – handles export requests
  • ImportRequestHandler – delegates to specialized import services (supports unified import via UnifiedImportOrchestrator)
  • UserMergeRequestHandler – processes user merge operations
  • ThemePreviewRequestHandler – handles theme preview cancel operations
  • ChunkRestController – REST API controller for chunked upload/download operations
  • All handlers implement corresponding interfaces for testability

Service Layer

  • SelectedContentImportService – handles selected content imports
  • FullSiteImportService – manages full site imports
  • ThemeImportService – handles theme archive imports
  • UnifiedImportOrchestrator – orchestrates unified import with automatic type detection and routing
  • ImportTypeDetector – detects import type (full site or selected content) from archive file
  • ImportFileValidator – validates uploaded files
  • ImportPayloadPreparer – prepares import payloads
  • ServerBackupScanner – scans and validates backup files on the server
  • ResponseHandler – manages redirects and status messages
  • NotificationService – handles user notifications
  • ProgressService – tracks operation progress
  • ErrorHandler – centralized error handling and logging
  • UserDiffBuilder – builds user difference comparison
  • UserMergeApplier – applies user merge operations
  • ThemePreviewStore – stores pending theme import previews
  • DeactivationCleanup – clears temporary upload state and service directories when the plugin is deactivated

Contracts (Interfaces)

All key components implement interfaces:
* ExporterInterface, ImporterInterface
* MediaCollectorInterface, ChunkJobRepositoryInterface
* UserPreviewStoreInterface, ThemePreviewStoreInterface, UserDiffBuilderInterface, UserMergeApplierInterface
* NotificationServiceInterface, ProgressServiceInterface
* ArchiveHandlerInterface, ValidatorInterface
* Request handler interfaces for all handlers

Error Handling

  • Specialized exceptions: ValidationException, FileOperationException, DatabaseOperationException, ImportException, ExportException
  • Centralized ErrorHandler for consistent error processing
  • Proper logging and user-friendly error messages
  • Validation classes: ArchiveValidator, ImportDataValidator, ExportDataValidator, FileValidator

Performance

  • BatchLoader for optimized database queries (prevents N+1 problems)
  • Efficient media collection with batch processing (AttachmentCollector)
  • Chunked transfer for large files via REST API (ChunkRestController)
  • Memory-efficient streaming for large archives
  • FullArchivePayload for efficient archive payload handling
  • ContentCollector for filesystem content collection

Security

  • All admin operations check current_user_can('manage_options')
  • Nonce verification for all forms and AJAX requests
  • REST API endpoints protected with permission callbacks
  • Input sanitization using WordPress sanitization functions
  • Output escaping with esc_html(), esc_attr(), esc_url()
  • File upload validation with MIME type checking
  • Path traversal protection for server file access (ServerBackupScanner)
  • Path traversal protection for archive extraction (full site + theme import)
  • SiteUrlGuard prevents accidental site URL changes during import
  • ImportLock prevents concurrent import operations
  • DomainReplacer safely handles URL replacement during migrations

FAQ
ChangeLog