Simple Editor Control

Changelog

5.0.0 (27-May-2026)

  • New: One-click file restore — every revision now has a “↺” button. First click arms it (turns red, shows “Confirm?”); second click restores the file on disk immediately, no FTP required.
  • New: The restoration itself is recorded as a new revision in the audit trail (flagged “Restored”), so the history stays complete and every rollback is reversible.
  • New: source_type column (plugin/theme) stored per revision — enables accurate path resolution on restore for both plugin files and theme files.
  • New: Inline success/error/info notice after restore, fades out automatically.
  • New: is_restore badge in the revision timeline for rollback entries.
  • New: File name in diff view is a clickable link that opens the file directly in the WP editor (new tab). Correctly resolves plugin main file via get_plugins() and handles themes.
  • Fixed: Context lines and view mode selectors now re-render the diff instantly from cached data — no extra AJAX call, no stale early-return bug.
  • Fixed: DB schema auto-upgrades on plugin load via plugins_loaded using both dbDelta and explicit ALTER TABLE — dbDelta silently skips new columns on existing tables when COMMENT clauses are present.
  • i18n: All restore strings translatable.

4.1.0 (11-May-2026)

Fixed: Initial Revision Logic: Added a specific case to handle the first-ever revision using the stored snapshot. This allows the diff to display correctly even when no prior history exists in the database.

4.0.1 (11-May-2026)

  • Blunderman Syndrome: Fixed incorrect table name reference (sec_revisions).

4.0.0 “Reborn” (11-May-2026)

  • Architectural Shift: Complete migration from file_modifications to the new sec_revisions table. Old data is deprecated in favor of a robust LCS-based diff system.
  • Security (Hardened): All AJAX endpoints now strictly require nonce validation + manage_options capability.
  • Security (Hardened): File download no longer exposes raw content without authentication.
  • Security (Hardened): Bulletproof path traversal prevention on snapshot reads.
  • Security (Hardened): Strict $wpdb->prepare() usage and esc_sql() on all table interpolations.
  • Fixed: Replaced old diff engine with a high-precision LCS (Longest Common Subsequence) algorithm — accurate insertions and deletions tracking.
  • Fixed: File content stored as raw PHP text, not HTML-encoded — no more decode/encode round-trip corruption.
  • Fixed: load_plugin_textdomain() deprecated second parameter removed.
  • Improved: New two-panel admin UI — sidebar plugin list, timeline, and professional diff viewer.
  • Improved: Diff viewer powered by diff2html with real-time syntax highlighting.
  • Improved: Context line count and view mode (side-by-side/inline) switchable live without page reload.
  • Improved: Revision list grouped by file with download-at-revision button per entry.
  • Improved: Performance optimization with wp_cache_get/set on revision list queries.
  • Improved: All enqueued scripts/styles pass plugin version for cache busting.
  • Removed: Standalone ajax/get_plugin_details.php (replaced by proper wp_ajax_ actions).
  • Removed: REST API route (replaced by wp_ajax_ actions with nonce + capability check).
  • i18n: All strings translatable; JS strings passed through wp_localize_script().

3.0.1

  • Minor fixes.

Plugin Website
Visit website

Version:
5.0.0
Last Updated
May 26, 2026
Active Installs
10
Requires
WordPress 5.5
Tested Up To
WordPress 7.0
Requires PHP
7.4

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.