Email Marketing
I built a custom plugin extending Yeemail to automate email campaigns. It sends templates via cron jobs with 1-minute gaps, supports targeting specific users, and logs every email’s status. Optimized for performance, it balances reliability with scalability for large mailing lists.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/anonymeniemc137/email-marketing-plugin/archive/refs/heads/main.zipYeemail Extension – Advanced Email Automation
A custom WordPress plugin that extends Yeemail to enable automated, scheduled, and targeted email campaigns with advanced logging.
Features
- Automated Campaigns — Send Yeemail templates to your customer base using scheduled cron jobs.
- Smart Scheduling — Emails are dispatched with a configurable interval (default: 1 minute) between sends to avoid server overload.
- Targeted Emails — Send campaigns to specific users or groups instead of the entire list.
- Detailed Logs — Maintain a complete log of sent emails with delivery status and timestamps.
- Performance Optimized — Batch processing and safeguards for large mailing lists.
Installation
- Upload the plugin folder to
/wp-content/plugins/or install via the WordPress admin Plugins → Add New → Upload Plugin. - Activate the plugin in the WordPress admin.
- Ensure the Yeemail plugin is installed and active.
- Open the plugin settings page to configure your campaign options and scheduling interval.
Usage
- Create email templates using the Yeemail UI.
- From the plugin dashboard, choose the template and select the audience (all users or specific users/groups).
- Schedule the campaign or run it immediately — the cron job will handle sending automatically.
- Monitor progress and delivery via the logs page; retry or re-send as needed.
Requirements
- WordPress 5.5+
- PHP 7.4+
- Yeemail plugin (active)
Technical notes
The plugin uses a cron-based scheduler with batch processing to avoid timeouts. It stores logs in a custom database table and exposes status via the dashboard. Recommended to test on staging before running large campaigns on production.
// Example: Cron schedule registration (pseudo-code)
add_action('yeemail_ext_send_batch', 'yeemail_ext_send_batch_handler');
function yeemail_ext_send_batch_handler() {
// fetch pending emails
// send chunk (e.g. 50 emails)
// log delivery status
// schedule next batch
}
Roadmap
- Adjustable batch sizes and interval tuning via UI
- Advanced analytics & reporting dashboard
- WooCommerce integration for order-based segmentation
- Retry strategies and exponential backoff for transient mail errors
License
This project is licensed under the MIT License. See the LICENSE file for details.
If you’d like a more developer-focused README (with DB schema, hooks, filters, and code examples), I can expand this into a full developer guide.