Sky Changelog Notifier

Plugin Banner

Sky Changelog Notifier

by Matt Biscay

Download
Description

Sky Changelog Notifier enhances WordPress automatic update notification emails by including the actual changelog for each updated plugin or theme. This keeps you informed about what changed in each update without having to visit the WordPress.org repository.

Key Features:

  • Automatically fetches and includes changelogs in update notification emails
  • Works with both plugin and theme updates
  • Adds emoji indicators (✅🚀❌) to plugin details modal showing version status
  • Fetches from tagged versions for accuracy, with automatic fallback to trunk
  • Comprehensive caching for optimal performance
  • WP-CLI support for testing
  • Compatibility with WordPress core notifications and Easy Updates Manager (EUM)
  • Locale-agnostic email insertion — works on any localized WordPress site

Pro Features:

  • Accessible HTML update emails with a plain-text alternative
  • Searchable local changelog history for plugins and themes
  • Plugin/theme filter presets with an optional checkbox-based custom selection
  • Default, existing-user, or custom-email primary recipient, plus additional CC recipients

How It Works:

When WordPress automatically updates plugins or themes, this plugin:

  1. Fetches the changelog from the plugin/theme’s readme.txt file
  2. Extracts the specific version’s changelog
  3. Appends it to the update notification email
  4. Caches results for 1 hour to improve performance

Plugin Modal Enhancement:

When viewing plugin details in the WordPress admin, you’ll see:
* ✅ Green checkmark – Your version matches the latest
* 🚀 Rocket – You’re ahead (development version)
* ❌ Red X – Update available

Compatibility:

Works seamlessly with:
* Easy Updates Manager
* Uses high priority (999) on standard WordPress filters
* Hooks into automatic_updates_complete for EUM and similar plugins that bypass WordPress email filters
* Locale-agnostic insertion using structural markers instead of translatable strings

Development

Development happens on GitHub: https://github.com/skyminds/sky-changelog-notifier

  1. Upload the sky-changelog-notifier folder to /wp-content/plugins/
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. That’s it! The plugin works automatically
Does this work with manual updates?

No, this plugin only enhances automatic update notification emails. Manual updates don’t trigger these emails.

Can I test if it’s working?

Yes! Use the built-in testing feature:
* Web: /wp-admin/?test_changelog_retrieval&_wpnonce=<nonce> (generate nonce with action sky_changelog_notifier_test)
* WP-CLI: wp changelog akismet 5.3 plugin

Is it compatible with other plugins?

The plugin is designed for WordPress core automatic update emails and includes a dedicated integration for Easy Updates Manager.

Other update management plugins may work when they use the standard WordPress email filters, but they are not currently part of the tested compatibility matrix.

Does it slow down my site?

No. All changelog fetches are cached for 1 hour, and the plugin only runs during automatic updates.

What happens to plugin data when I uninstall it?

Uninstalling the plugin from the WordPress Plugins screen removes its settings, cached changelogs, and local changelog history. Deactivating the plugin keeps this data.

3.3.0

  • NEW — PRO: Accessible opt-in HTML update emails with a plain-text alternative
  • NEW — PRO: Searchable local changelog history dashboard for plugins and themes
  • NEW — PRO: Plugin and theme filtering with All, Plugins only, Themes only, and checkbox-based custom selection modes
  • NEW — PRO: Primary recipient modes for the WordPress default, an existing user, or a custom email address, while preserving additional CC recipients
  • IMPROVED — PRO: Dedicated Pro Settings tab replaces promotional Pro and Upgrade tabs on paid installations
  • IMPROVED: Extracted changelog source, parser, cache, and email formatter services while keeping public hooks stable
  • IMPROVED: Email notifications and the frontend shortcode now share the same changelog parser
  • IMPROVED: The changelog retrieval limit now applies across the complete email
  • IMPROVED: Email and WP-CLI messages are fully translatable; French WordPress.org catalogs are prepared
  • FIX: Replaced fragile English keyword detection for third-party emails with a localized, hook-scoped integration
  • FIX: Restricted the installed-version indicator to WordPress administration screens
  • FIX: Freemius now fails safely when an archive is missing the SDK
  • PRIVACY: Freemius uninstall cleanup now removes plugin options, cached changelogs, and local history, including across multisite installations
  • DEVELOPMENT: Added regression coverage for email integration, parsing, Pro features, retrieval limits, and Freemius loading

3.2.0

  • NEW: [scln_changelog] shortcode to display installed plugin changelogs on frontend pages
  • NEW: Admin settings page with tabbed interface (General, Pro Features, Upgrade)
  • NEW: Configurable changelog header style (Branded, Minimal, None) with live preview
  • NEW: “No changelog found” notice toggle and max changelog fetches setting
  • NEW: Freemius SDK integration with Free / Pro / Agency plans
  • NEW: Premium module system with Pro Loader and extensibility hooks
  • NEW: Top-level admin menu with megaphone icon
  • IMPROVED: Changelog parser now supports single-hash # Changelog markdown headers
  • IMPROVED: Composer scripts for PHPCS linting and Freemius icon deployment
  • FIX: Prevented duplicate changelog injection when update_plugins transient fires multiple times
  • MISC: Tested up to WordPress 7.0

3.1.0

  • NEW: Full Easy Updates Manager compatibility — changelogs now appear in EUM emails via automatic_updates_complete hook and wp_mail filter
  • NEW: Locale-agnostic email insertion — uses structural markers (wordpress.org/support/forums/ URL, ========== separator) instead of translatable strings
  • NEW: Modernized changelog header with Unicode branding
  • IMPROVED: Extracted insert_changelog_block() method for shared insertion logic across standard WP and EUM email paths
  • IMPROVED: Changelogs now inserted before the sign-off instead of appended at the end

3.0.0

  • CRITICAL FIX: Fixed filter callback to use correct auto_plugin_theme_update_email parameter names ($successful_updates instead of $result)
  • CRITICAL FIX: Fixed update item object traversal — now correctly reads $item->item->new_version, $item->item->plugin, $item->name
  • CRITICAL FIX: Extracts slug from plugin file path (e.g. akismet/akismet.php akismet)
  • Removed auto_core_update_email filter (incompatible signature — core updates don’t have plugin/theme changelogs)
  • Handles both success and mixed email types
  • Added nonce verification to admin test endpoint (WPCS/VIP compliance)
  • Full WPCS and WordPress VIP coding standards compliance
  • PHP 8.0+ typed properties, return types, and union types
  • Caches failed readme fetches to prevent retry storms

2.0.0

  • MAJOR REWRITE: Simplified from 846 lines to 319 lines (62% reduction)
  • Removed unnecessary WordPress API fallback
  • Removed complex parallel fetching
  • Removed “closest version” fallback complexity
  • Streamlined to simple, reliable approach: tagged version trunk fallback
  • Kept essential features: changelog in emails, plugin modal emoji, testing, WP-CLI
  • Improved code maintainability and readability

1.2.0

  • CRITICAL FIX: Now fetches changelogs from tagged versions instead of trunk
  • This ensures you get the changelog for the exact version that was installed
  • Added automatic fallback to trunk if tagged version is not available
  • Improved HTTP status code checking for better error handling
  • Fixed regex patterns to support all version number formats (1, 2.0, 1.2.3, etc.)

1.1.0

  • Added compatibility with Easy Updates Manager plugin
  • Improved filter priority handling for better plugin interoperability
  • Enhanced email body handling to preserve modifications by other plugins
  • Comprehensive security and performance optimizations

1.0.0

  • Initial release
  • Improved version matching and fallback logic
  • Better handling of different changelog formats
Back to top