Emails
Milo Subscriptions sends transactional emails to customers and admins at key points in the subscription lifecycle. This page lists the real emails shipped with the core plugin, how to configure them, and how to customize their templates.
How the emails work
Emails use the WooCommerce email system:
- Enable/disable, subject, heading, additional content, recipient, and format are configurable under Subscriptions → Settings → Emails.
- Templates can be overridden by copying files into your theme.
- Delivery runs through
wp_mail(); for reliable delivery, add an SMTP plugin.
The email list
The core plugin ships 11 email classes:
Customer-facing
- Activated subscription (
milosubscriptions_activated_subscription) - Customer cancelled (
milosubscriptions_customer_cancelled) - Customer completed renewal (
milosubscriptions_customer_completed_renewal) - Customer expired (
milosubscriptions_customer_expired) - Customer on-hold (
milosubscriptions_customer_on_hold) - Customer processing renewal (
milosubscriptions_customer_processing_renewal) - Customer renewal invoice (
milosubscriptions_customer_renewal_invoice)
Admin-facing / internal
- Cancelled subscription
- Expired subscription
- New renewal order (
milosubscriptions_new_renewal_order) - On-hold subscription
Core does not ship a “renewal reminder” email, a “payment retry” email, a “switch confirmation” email, a “price change notification” email, or a “pause confirmation” email. Retry emails come from the Failed Payment Retry add-on.
Configuring emails
Go to Subscriptions → Settings → Emails. Each email expands into a row where you can edit:
- Subject
- Heading
- Additional content
- Recipient(s) (admin emails only)
- Email type (HTML, plain text, or multipart)
- An enable/disable toggle
Placeholders
The settings UI surfaces three placeholders that can be inserted into subject and heading:
{site_title}{order_number}{site_url}
Individual emails may expose additional WooCommerce-style tokens inside their templates; refer to the specific template when customizing.
Previewing emails
Each email in the settings screen has a Preview button that opens a rendered HTML preview in a modal. There is no “Send test email” button in the core plugin.
Templates
Email templates live in wp-content/plugins/milosubscriptions/templates/emails/. The real files are:
activated-subscription.phpadmin-new-renewal-order.phpcancelled-subscription.phpcustomer-cancelled.phpcustomer-completed-renewal.phpcustomer-expired.phpcustomer-on-hold.phpcustomer-processing-renewal.phpcustomer-renewal-invoice.phpexpired-subscription.phpon-hold-subscription.php
A plain/ subfolder contains the plain-text versions.
To override a template, copy it into yourtheme/milosubscriptions/emails/. The email header, footer, and base styles are inherited from WooCommerce’s own templates (emails/email-header.php, emails/email-footer.php, emails/email-styles.php), which can also be overridden through your theme.
Email styling
Branding (header image, footer text, base colors, text color) is inherited from WooCommerce’s email settings. Configure them under WooCommerce → Settings → Emails.
Deliverability tips
- Use an SMTP or transactional-mail plugin (WP Mail SMTP, FluentSMTP, or similar) configured with a provider like Postmark, SendGrid, Mailgun, or Amazon SES.
- Send from a real domain with SPF, DKIM, and DMARC configured.
- Keep the
Fromaddress consistent.
Troubleshooting
An email is not being sent
Check, in order:
- The email is enabled under Settings → Emails.
wp_mail()works on your site (test with any SMTP plugin’s test feature).- The triggering event actually happened (verify by inspecting the subscription’s notes in the admin detail page).
Emails are flagged as spam
Switch to a proper transactional service and configure DNS records (SPF, DKIM, DMARC) for your sending domain.
Next steps
Did this page miss something?
Tell us and we rewrite it, usually the same day.