A persistent audit log that tracks every change to your WordPress, PHP, and MySQL versions, plus plugin and theme updates.

Version History Audit Log

This is a PRO feature. Unlock real-time monitoring, environment indicators, version history, and more. Upgrade to PRO →

The Version History feature maintains a timeline of every environment change on your WordPress site. When your host updates PHP, when WordPress auto-updates, or when a plugin is updated, Version Info records it so you always know exactly when the environment changed.

What It Tracks

The audit log records changes to:

  • WordPress core version updates
  • PHP version changes (e.g., when your host upgrades PHP)
  • MySQL version changes
  • Plugin updates
  • Theme updates

How It Works

Version Info stores a snapshot of known version numbers and compares them on each admin page load. When a change is detected:

  1. The old and new versions are recorded in the audit log.
  2. The version_info_version_changed action hook fires, enabling other plugins or custom code to respond to the change.
  3. The known versions snapshot is updated.

Viewing the Audit Log

Navigate to Settings > Version Info > Version History to view the audit log. Entries are displayed in a table with the following columns:

Column Description
Date Timestamp of when the change was detected
Type What changed (WordPress, PHP, MySQL, Plugin, Theme)
Old Version The previous version number
New Version The new version number

The audit log retains up to 50 entries. When the limit is reached, the oldest entries are automatically removed to keep the log manageable.

Storage

Version history data is stored in the WordPress options table using two option keys:

  • version_info_history - The array of audit log entries
  • version_info_known_versions - The current known version snapshot for comparison

No custom database tables are created. This keeps the plugin lightweight and easy to uninstall cleanly.

Developer Hook

The version_info_version_changed action fires whenever a version change is detected, passing an array of changes:

add_action( 'version_info_version_changed', 'handle_version_change' );

function handle_version_change( array $changes ): void {
    foreach ( $changes as $change ) {
        error_log( sprintf(
            'Version change detected: %s updated from %s to %s',
            $change['type'],
            $change['old_version'],
            $change['new_version']
        ) );
    }
}

This hook is also used internally by the Agency plan's Email Alerts feature to trigger notifications when versions change.

email-alerts.md