= 2.2.7 = * IMPROVED: Worker now runs as a continuous loop, draining the queue completely before exiting * IMPROVED: Statistics are synced after each batch (not only at the end) * IMPROVED: Worker output includes worker ID on each line for clearer parallel logs * FIXED: Uneven work distribution between parallel workers = 2.2.6 = * CRITICAL FIX: Worker now suppresses plugin header warnings in MultiSite environments * CRITICAL FIX: Fixed Newsletter base class dependencies not loading in DOING_CRON context * CRITICAL FIX: Worker now manually initializes plugin when newsletter_loaded hook doesn't fire * CRITICAL FIX: Fixed MultiSite subdirectory site detection - worker now correctly loads site from --url path * CRITICAL FIX: Removed WP_CLI constant - caused fatal errors with multisite-clone-duplicator and similar plugins * FIXED: "headers already sent" warnings from Redirection plugin and other plugins * IMPROVED: Output buffering prevents header warnings from breaking worker execution * IMPROVED: Worker loads NewsletterAddon and NewsletterMailerAddon before plugin * IMPROVED: Worker calls Plugin::instance_init() manually for proper initialization * IMPROVED: REQUEST_URI now parsed from URL path for correct MultiSite site selection = 2.2.5 = * CRITICAL FIX: Worker now loads plugin manually in DOING_CRON context * FIXED: "Newsletter SMTP plugin is not active" error in worker script * IMPROVED: Worker compatibility with all WordPress environments including MultiSite = 2.2.4 = * CRITICAL FIX: Speed calculation now uses actual NEWSLETTER_CRON_INTERVAL value * FIXED: Batch_size was being divided by 5 due to incorrect cron interval assumption * IMPROVED: Plugin now dynamically calculates speed based on actual Newsletter cron interval * IMPROVED: Supports any cron interval (60s, 300s, etc.) without hardcoded assumptions = 2.2.3 = * CRITICAL FIX: Overridden get_emails_per_run() to bypass Newsletter's internal calculation * FIXED: Newsletter was calculating batch = speed / 12, resulting in only 8-16 emails per execution * FIXED: Plugin now directly returns configured batch_size for proper queue loading = 2.2.2 = * FIXED: Newsletter now correctly respects configured batch_size when enqueuing emails * FIXED: Emails are now enqueued all at once to database instead of gradually * IMPROVED: Added public $batch property that Newsletter reads directly * IMPROVED: Added get_batch_size() method for Newsletter compatibility = 2.2.1 = * NEW: MultiSite detection in settings page with tailored worker commands * NEW: Worker script now supports --url parameter for MultiSite environments * IMPROVED: Settings page automatically displays installation-specific worker setup instructions * IMPROVED: Worker documentation with MultiSite usage examples * IMPROVED: README with dedicated MultiSite Installations section = 2.2.0 = **Major Update: Queue-Based Architecture** * NEW: Database-backed email queue for persistent, reliable email delivery. * NEW: External CLI worker script for asynchronous email processing. * NEW: Queue Status widget showing real-time statistics (pending, processing, sent, failed). * NEW: Recent Campaigns section with key metrics in settings page. * NEW: Email Queue admin page to view all queued and sent emails. * NEW: Statistics admin page with campaign performance metrics. * NEW: Parallel worker support for high-volume sending (10+ workers simultaneously). * NEW: Automatic retry with exponential backoff (up to 3 attempts: 5min → 15min → 30min). * NEW: Campaign statistics tracking (start time, duration, speed, success rate). * CHANGED: Emails are now queued to database instead of sent immediately. * CHANGED: Settings page reorganized with Queue Status, Recent Campaigns, and Worker Configuration sections. * CHANGED: Campaign statistics now grouped by unique Newsletter ID instead of campaign name. * REMOVED: max_per_connection setting (no longer needed with worker architecture). * REMOVED: Direct PHPMailer usage (replaced with wp_mail() in workers). * FIXED: Duplicate campaign statistics for campaigns with same name but different IDs. * FIXED: Worker command documentation (corrected parallel worker syntax). * BREAKING: Manual worker setup required - emails no longer send automatically. * BREAKING: System cron or process supervisor required for production use. * Technical: New database tables for queue and statistics with automatic creation on activation. * Technical: Microsecond precision timestamps for accurate performance metrics. * Security: CLI-only worker script with SQL injection prevention and capability checks. = 2.1.0 = * Changed uninstall behavior: plugin no longer performs cleanup on uninstall, all data cleanup is now handled by the core SMTP plugin. * This ensures Newsletter configuration is preserved when only the add-on is removed, and properly cleaned when the core plugin is uninstalled. * Simplified uninstall.php to delegate all cleanup responsibility to core SMTP plugin. = 2.0.1 = * Removed Network requirement from plugin headers to allow single-site activation. = 2.0.0 = * Updated compatibility with SMTP (by ROBOTSTXT) plugin 2.0.0. * Enhanced integration with core SMTP plugin security improvements. * Improved error handling and validation. * Code quality improvements. = 1.0.0 = * Initial release with SMTPKeepAlive support for efficient SMTP batch sending. * Amazon SES API integration for optimized delivery. * Automatic configuration from ROBOTSTXT SMTP plugin. * Dynamic speed calculation from SMTP rate limits (up to 32,400 emails/hour). * Batch processing with configurable batch size (up to 2,610 emails per chunk). * Support for custom batch sizes per provider type. * Max emails per connection configuration to prevent timeouts. * Integration with ROBOTSTXT SMTP rate limiting system. * Automatic FROM address configuration from ROBOTSTXT SMTP. * HELO hostname configuration for multisite compatibility. * Comprehensive error logging to Newsletter system. * Automatic detection of SMTP vs Amazon SES mode. * Resilient error handling - continues sending even if individual recipients fail. * WP-CLI compatibility for cron execution. * Uninstall script to clean database on plugin deletion. * Performance: 20-30x faster bulk email sending compared to standard wp_mail(). * Performance: Sends 22 emails in ~7 seconds using SMTPKeepAlive.