plugin-icon

MksDdn Migrate Content

Door Max·
Reliable chunked migrations powered by custom .wpbkp archives.
Versie
2.3.1
Actieve installaties
10
Laatst bijgewerkt
Apr 30, 2026

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.
  • Import preflight – unified import is a two-step flow: run preflight (read-only report), then start the real import from the report without uploading the file again (browser uploads are staged server-side between steps).

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; step 1 is always preflight, step 2 runs the real import using a stored file reference
  • ImportPreflightService – read-only analysis for unified import preflight
  • PreflightReportStore – short-lived transient storage for preflight reports and follow-up import handles (staged browser uploads under wp-content/uploads/mksddn-mc/preflight/, or chunk/server identifiers)
  • 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
  • PostImportMaintenance – centralizes cache/rewrite cleanup after full import and emergency purge if the database was partially updated; performs global flush plus targeted wp_cache_flush_group() when supported, bumps posts/terms/comments last_changed hooks, exposes mksddn_mc_post_import_object_cache_flush_groups filter, integrates page-cache plugins via best-effort function calls and hooks
  • FullImportMaintenance – file-based runtime lock and early 503 gate while a full-site import is running (admin, CLI, cron exempt; REST blocked unless explicitly allowed)

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
Gratisvoor betaalde abonnementen
Door te installeren, ga je akkoord met de Servicevoorwaarden van WordPress.com en de voorwaarden voor plugins van derden.
Getest tot
WordPress 6.9.4
Deze plugin kan worden gedownload, zodat je hem op je kan gebruiken.