Skip to content
ProEasy Invoice Pro adds the Email Enhancements module — custom reply-to per template, brand colours, and the full Payment Reminder cadence. See all email Pro features.View pricing & buy →

Email & notifications

Every email Easy Invoice sends — invoice notification, quote notification, payment receipt, reminder — has its own template under Settings → Email.

Email types (free)

TypeWhen it firesDefault subject
General settingsSender name & address used as the From for all emails.n/a
Invoice AvailableWhen you click Send to Client.Invoice {invoice_number} from {company_name}
Quote AvailableWhen you click Send to Client on a quote.Quote {quote_number} from {company_name}
Quote AcceptedWhen the client clicks "Accept" on the public quote.Quote {quote_number} accepted
Quote DeclinedWhen the client clicks "Decline".Quote {quote_number} declined
Payment ReceivedAfter a payment is recorded as completed.Payment received for {invoice_number}
Payment ReminderDaily cron (easy_invoice_payment_reminder) for pending-bank / pending-cheque.Payment reminder: {invoice_number}

Pro adds extra templates — receipt PDF email, recurring invoice notice, partial payment receipt, etc. See All Pro features.

Editing a template

For each template you can set:

  • Enable — turn the template on or off entirely.
  • Recipient — defaults to the client; can override (e.g. send admin a copy).
  • Subject — supports merge tags.
  • Heading — H1 inside the body.
  • Body — full HTML, supports merge tags.

Save, then Send a test from the General tab to your own address.

Merge tags

The most common merge tags (resolved in EmailManager::*placeholdersincludes/Services/EmailManager.php:448–543):

Invoice context

TagReplaced with
{invoice_number}Full invoice number, e.g. INV-0042.
{invoice_date}Invoice issue date.
{due_date}Due date.
{invoice_total}Currency-formatted total.
{invoice_url}Public link to the invoice.
{invoice_status}Payment status (paid / unpaid / pending).

Quote context

TagReplaced with
{quote_number}Quote number.
{quote_date}Issue date.
{expiry_date}Quote validity end.
{quote_total}Total.
{quote_url}Public link.
{accept_url} / {decline_url}One-click accept / decline links.

Payment context

TagReplaced with
{payment_amount}Currency-formatted amount.
{payment_date}Date the payment was recorded.
{payment_method}Gateway label.
{transaction_id}Reference.

Client context

TagReplaced with
{client_name}First + last (or display name).
{client_first_name}First name only.
{client_email}Email.
{client_address}Multi-line address.

Site context

TagReplaced with
{company_name}From Settings → Company.
{company_address}same.
{company_email}same.
{site_url}home_url().

Add custom merge tags via the easy_invoice_settings_email_placeholders filter — see Hooks & filters.

Best practices

  • Keep the subject short and personal: {invoice_number} from {company_name} is enough.
  • Add a clear CTA in the heading: "Pay invoice {invoice_number}".
  • In the body, always include {invoice_url} so clients can pay immediately.
  • For Pro reminders, vary the tone: friendly first, firmer at +7 days, escalation at +14 days.

Deliverability

WordPress's wp_mail uses PHP's mail() by default — which most hosts hide behind throttles or spam filters. Use SMTP for anything past 10 emails / day.

Recommended:

  • WP Mail SMTP plugin → connect to SendGrid, Postmark, Mailgun, Amazon SES, or Gmail.
  • Add SPF, DKIM, and DMARC records to your domain.
  • Test with mail-tester.com.

If emails don't arrive, see Troubleshooting → Email not arriving.

Pro: Email Enhancements

PROPer-template reply-to + brand colours + extra templates

Pro adds: per-template reply-to email, brand-colour controls (header / button / accent), invoice PDF as attachment, partial payment receipt template, recurring invoice notice template, deposit invoice notice template, and the full payment-reminder cadence (before / on / after due).

Unlock email Pro →

Cron-driven emails

HookFrequencyPurpose
easy_invoice_payment_reminderdailyFree: pending-bank / pending-cheque reminder.
easy_invoice_send_payment_remindersdailyPro: full cadence (before / on / after due).
easy_invoice_quote_expiration_checkdailyAuto-expire stale quotes; sends optional notice.
easy_invoice_recurring_cronevery 2 minutesGenerates new recurring invoices and sends notice.
easy_invoice_pro_process_subscriptionsdailySubscription invoice generation.

If WP-Cron is broken, none of these run — see Troubleshooting → WP-Cron isn't running.

Where to go next