Content Automation Add-on Changelog
All notable changes to the PodcasterPlus Blocks Content Automation Add-on plugin will be documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.3.0] - 2025-12-15
Added
Post Excerpt Population
- New option to automatically populate post excerpts from episode descriptions during import and auto-publishing
- Episode descriptions are intelligently truncated to create meaningful excerpts for WordPress post listings
- Toggle control available in both Import wizard (Step 2) and Auto-Publish settings
- Option enabled by default for new imports and auto-publish configurations
WP-CLI Excerpt Command
- New
wp podcaster-plus-ca populate-excerptscommand to backfill excerpts for existing posts- Extracts content from Episode Description blocks to create post excerpts
- Supports dry-run mode (
--dry-run) to preview changes without modifications - Post type filtering (
--post-type) to target specific content types - Processing limits (
--limit) for batch operations - Force mode (
--force) to overwrite existing excerpts
WP-Cron Configuration Warning
- Auto-Publish settings now display a helpful notice when server-side cron is not configured
- Warning informs users about potential reliability issues on low-traffic sites
- Includes link to WordPress documentation for proper cron setup
Improved
License Validation
- Added license grace period handling for scheduled feed checks
- Feed processing continues during temporary license API outages if license was recently valid
- Enhanced logging for skipped feed checks due to invalid licenses
- Prevents auto-publishing interruptions from transient connectivity issues
[1.2.0] - 2025-12-04
Changed
Naming Standardization
- Standardized all naming conventions across the codebase from "PodcasterPlus" to "PodcasterPlus" for consistency in comments, documentation, and user-facing strings
Pattern Selection Improvements
- Enhanced pattern handling to use pattern names (e.g.,
podcaster-plus/basic-player) instead of pattern IDs for Episode Processor lookups, improving reliability with both registry and user-created patterns - Refactored favorite pattern handling to support identification by both pattern name and ID, ensuring compatibility across different pattern types
- Updated Pattern interface to support both plugin-registered and user-created patterns with additional fields for sync status, viewport width, and user pattern identification
- Implemented state synchronization for PatternSelector component, ensuring UI accurately reflects changes from parent components
- Added backward compatibility for pattern selection logic, supporting both old (name-based) and new (numeric ID) formats
Synced Pattern Support
- Refactored Episode Processor
get_pattern_contentmethod to properly handle both synced and unsynced block patterns - Improved GUID injection logic based on pattern sync status for accurate episode selection block references
- Enhanced REST Controller
pattern_existsmethod to support user pattern identification by both slug and numeric post ID
Added
Episode Artwork Integration
- Implemented episode artwork handling with media library integration, storing attachment IDs for imported episode images
- Added methods to store episode data with attachment ID and update episode cache with image ID
- New WP-CLI command
wp podcaster-plus-ca fix-imagesto update episode images for existing posts- Supports dry-run mode (
--dry-run) to preview changes without modifications - Post type filtering (
--post-type) to target specific content types - Processing limits (
--limit) for batch operations
- Supports dry-run mode (
Auto-Publish Start Date Tracking
- Added
auto_publish_start_dateto REST API settings response, providing visibility into when auto-publishing was first enabled - Integrated start date tracking in the Auto-Publish settings interface for improved monitoring
Improved
Pattern Preview Display
- Refined pattern preview styles for improved layout consistency and better visual presentation of server-side rendered content
- Enhanced empty state design for pattern previews with cleaner styling and improved user feedback
- Added ARIA labels to pattern preview containers for better screen reader accessibility
License Validation
- Enhanced logging behavior to only log warnings after the WordPress
initaction has fired, improving debugging accuracy and reducing false positives during early initialization
Code Quality
- Added comprehensive documentation to PatternPreviewRenderer component explaining the rendering approach and CSS handling
- Updated logic to skip deprecated bundled patterns during block processing
- Improved sync status tracking and user pattern identification throughout the admin interface
Fixed
Pattern Selection
- Fixed pattern ID comparisons to handle string values, improving compatibility with API responses
- Resolved state synchronization issues where pattern changes from parent components were not reflected in the PatternSelector UI
Technical Improvements
- Updated tested WordPress version to 6.9.0
- Enhanced Admin UI block processing with sync-aware operations
- Improved getPatternName function for accurate pattern title retrieval by name or ID
- Refined type definitions in TypeScript for better pattern management support
- Added comprehensive test coverage for synced and unsynced pattern processing in Episode Processor
- Enhanced test bootstrap with
WEEK_IN_SECONDSconstant and mock functions for wp_block pattern testing
[1.1.0] - 2025-11-26
Added
Processed Episodes Management
- New REST API endpoints for managing processed episode records:
POST /processed-episodes/cleanup-orphans- Scan and remove orphaned recordsDELETE /processed-episodes/{guid}- Remove specific episode from history to allow re-importGET /processed-episodes/stats- Retrieve statistics including total, orphaned count, and breakdown by source
- Automatic cleanup of processed episode records when WordPress posts are permanently deleted via
before_delete_posthook - Weekly scheduled orphan cleanup via Action Scheduler to catch records missed by deletion hooks
- Post deletion detection maintains duplicate prevention integrity
WP-CLI Commands
wp podcaster-plus-ca cleanup-orphans- Scan and clean orphaned processed episode records with dry-run supportwp podcaster-plus-ca clear-history- Clear specific episode GUID or entire history to allow re-imports
Improved
- Enhanced duplicate prevention system with automatic orphan detection and cleanup
- Better recovery from edge cases where posts are deleted outside normal WordPress flow
- Improved data integrity between processed episodes table and actual WordPress posts
Technical Improvements
- New
podcaster_plus_ca_cleanup_orphansaction hook for scheduled maintenance - Post deletion hook integration at priority 10 on
before_delete_post - Batch processing for orphan cleanup (100 records per execution)
- Activity logging for all cleanup operations
Documentation
- Complete REST API reference for processed episodes endpoints
- Comprehensive WP-CLI documentation for new cleanup and history commands
- Updated hooks and filters guide with new action hooks
- New workflow examples for re-importing deleted episodes and complete resets
[1.0.1] - 2025-11-17
Fixed
- Admin UI Disappearance: Resolved intermittent issue where the Content Automation admin interface would disappear after page reloads, caused by transient license cache corruption during WordPress initialization race conditions
- Stale RSS Feed Cache: Fixed bug where changing the RSS feed URL in parent plugin settings would not update cached feed data, causing imports to use outdated episode information
Improved
- License Validation: Implemented conditional negative caching that only stores invalid license results after WordPress fully initializes, preventing premature cache corruption
- Cache Invalidation: Changed feed cache key strategy from static identifier to URL-based hashing, ensuring feed URL changes automatically invalidate old cache entries
- Error Recovery: Reduced negative license cache TTL from 5 minutes to 2 minutes for faster recovery from transient errors
- Diagnostic Logging: Enhanced logging throughout license validation and feed cache operations for improved troubleshooting
- Defensive Programming: Added comprehensive null checks and early returns to prevent crashes during edge cases
Technical Improvements
- URL-based feed cache keys using
md5($feed_url)for automatic invalidation - WordPress initialization lifecycle handling improvements
- Cache operation logging (hit/miss/store) for debugging
- Maintained 5-minute feed cache TTL for optimal performance
Upgrade Note: This is a recommended update for all v1.0.0 users. The fixes improve reliability and eliminate two edge cases that could disrupt workflow. No manual intervention required - cache transition is automatic.
[1.0.0] - 2025-11-17
Added
Bulk Import Feature
- Import your entire podcast back-catalogue from RSS feeds with flexible scope options (last 20, 50, all episodes, or custom range)
- Four-step import wizard with pattern selection, post configuration, episode content options, and confirmation
- Real-time progress monitoring with pause, resume, and cancel controls
- Background processing via Action Scheduler prevents browser timeouts for large imports
- Batch processing system handles 10 episodes per batch for optimal performance
- Episode content options: include/exclude descriptions and artwork
- Duplicate detection using episode GUID prevents importing episodes that already exist
- CSV export of import logs for analysis and record-keeping
- Comprehensive error handling with detailed reporting and recovery options
Auto-Publishing Engine
- Automated episode detection and publishing when new episodes appear in your RSS feed
- Configurable feed monitoring with hourly to daily check intervals (1-24 hours)
- Priority-based pattern rules system for automatic pattern assignment by category or title pattern
- Drag-and-drop interface for managing pattern rule priority
- Pattern testing panel to preview which pattern will be applied to episodes
- Publishing delays from 0-48 hours allow time for review before posts go live
- Manual feed checks with instant "Check Now" button and detailed results
- Historical episode skipping ensures only new episodes are auto-published (won't import your back-catalogue)
- Smart feed caching with URL-based cache keys for improved performance
Notification System
- Email notifications for all major events (import completion, auto-publish success/failure)
- Granular notification preferences with per-event-type controls
- Admin dashboard notices for important activities
- Deep linking from email notifications directly to relevant admin tabs
- Rate limiting prevents email spam during bulk operations
- Customizable notification recipients
Activity Logging
- Comprehensive activity log tracks all import, auto-publish, and system events
- Five log levels: success, error, warning, info, and skipped
- Advanced filtering by source (import/auto-publish/system), level, and date range
- Full-text search across log messages and details
- Pagination for performance with large log histories
- CSV export for external analysis and troubleshooting
- Structured JSON details for technical debugging
Developer Features
- Complete REST API with 20+ endpoints for all plugin functionality
- WP-CLI commands for command-line control of imports and auto-publishing
- Action Scheduler integration for reliable background job processing
- WordPress coding standards compliant codebase
- Comprehensive PHPUnit test coverage (80%+)
- TypeScript-powered React admin interface built with WordPress components
- Extensive hooks and filters for customization
- Detailed inline documentation and comprehensive developer guides
User Interface
- Modern React-based admin interface with three main tabs (Import, Auto-Publish, Activity Log)
- Pattern preview system shows real-time rendering of selected patterns
- Responsive design works seamlessly on desktop and tablet devices
- WordPress component library integration for native admin experience
- Accessibility-focused design with ARIA labels and keyboard navigation
- Loading states and error boundaries for graceful error handling
Security & Performance
- SSRF protection for RSS feed fetching prevents server-side request forgery attacks
- Input sanitization and output escaping throughout
- Capability checks and nonce verification on all admin actions
- Feed caching with transients reduces server load
- Memory-efficient processing for feeds with 500+ episodes
- Database indexes optimize query performance
- Rate limiting prevents abuse
Technical Improvements
- Bundled Action Scheduler 3.9.3 for reliable background processing
- Four custom database tables with optimized indexes for tracking episodes, pattern rules, activity logs, and import sessions
- Database version management system supports future schema migrations
- Singleton pattern implementation across core classes ensures proper resource management
- Comprehensive error handling with WP_Error integration throughout
- Parent plugin integration via minimal coupling design
- Automatic database upgrades with version detection
- Episode data caching reduces redundant API calls
Documentation
- Complete user guides for bulk import, auto-publishing, and pattern rules
- Comprehensive troubleshooting guide with common issues and solutions
- REST API reference documentation
- Database schema documentation
- WP-CLI command reference
- Architecture overview for developers
- Hooks and filters reference
- Contributing guide for developers
- GitHub Actions workflows for automated testing and releases
[0.0.1] - 2025-08-11
Added
- Initial plugin concept and foundation
- Basic project structure and configuration
- Early development framework
Easily create beautiful, fully customizable podcast websites with the new PodcasterPlus Block WordPress plugin. No coding skills are required. Get started today!
Hey AI, learn about us
Company
About
Affiliates
Brand Assets
Contact Us
Resources
Blog
Podcast
Docs
Support
Status
Product
Features
Pricing
Changelog
Feature Requests
My Account