Changelog
Easy Invoice follows semantic versioning loosely — MAJOR.MINOR.PATCH where MAJOR is reserved for breaking schema changes (rare).
Easy Invoice (free) — 2.2.0 — May 13, 2026
- Added — "Export Selected (Pro)" option in the Bulk Actions dropdown on both Invoice and Quote listings. Visible to all users; picking it without Pro opens the Upgrade-to-Pro dialog.
- Added — "Send Email (Pro)" option in the Bulk Actions dropdown on both listings (companion to the existing Pro bulk-send feature).
- Added — "Filter by client" dropdown on All Invoices and All Quotes listings. Persists across view tabs, status chips, pagination, and search.
- Added — "Documentation" link in the plugin sidebar (under Join Community) opening easy-invoice.matrixaddons.com/docs/.
- Added — "Unlock more payment gateways" teaser block on Settings → Payment when Pro is inactive (Stripe, Square, Authorize.Net, Mollie, Paystack, Moneris, Bank Transfer, Cheque, Cash).
- Improved — Pro-gated submit interceptors moved to native capture-phase listeners so they always run before the listing template's inline jQuery submit handlers. Fixes the generic "Confirm Action" race on the Quote listing.
- Fixed — Quote listing search form posted to a wrong page slug (
easy-invoice-quotes-all→easy-quote-all); picking a value from the client filter no longer redirects to "you are not allowed". - Fixed — Quote / Invoice client filter now uses the correct meta-key namespaces (
_easy_invoice_client_id/_easy_invoice_quote_client_id) plus a fallback match on the client'scustomer_email. Filter now narrows the listing correctly for both flows. - Fixed — Default Invoice / Quote email bodies no longer ship the literal
[easy_(invoice|quote)_url …]shortcode-reference line that was emailed to clients as raw text. One-time migration strips the line from already-saved options. - Internal — Documentation links across
readme.txtand helpers now point tohttps://easy-invoice.matrixaddons.com/docs/instead of the legacy URL.
Easy Invoice Pro — 2.2.0 — May 13, 2026
- Added — Paystack payment gateway. Hosted-checkout flow (card / bank / USSD / mobile money / QR) for African and select international merchants. Supports NGN, GHS, ZAR, KES, USD, EGP, XOF. HMAC-SHA512 signed-webhook verification; server-side
/transaction/verifyreconciliation on customer return. - Added — Bulk Send Email. Tick rows on Invoice / Quote listing → "Send Email" → Apply. Pro dispatches the configured "Available" template to every selected document's client and reports a per-row success/failure toast.
- Added — Bulk Export Selected. Tick rows → "Export Selected" → Apply → confirm. Pro streams a UTF-8 CSV (with BOM for Excel) of just the selected rows. Endpoint
admin-post.php?action=easy_invoice_pro_bulk_export, capability-gated, nonce-verified. - Added — Extension hooks
easy_invoice_paystack_payment_complete,easy_invoice_pro_after_bulk_send_email,easy_invoice_pro_after_bulk_export. - Compatibility — Paired release with Easy Invoice (Free) 2.2.0.
Easy Invoice (free) — 2.1.20
- Polish: builder field validation messages.
- Fix: numeric formatting on currencies with non-Latin digits.
- i18n: extended translations file.
Easy Invoice (free) — 2.1.17 — 2.1.19
- Improved long-PDF rendering (canvas capture).
- Settings UI: re-grouped Email tabs.
- Bug fixes for the quote accept / decline flow.
Easy Invoice (free) — 2.1.16
- New: discount-before-tax option (in addition to discount-after-tax).
- New: featured / category field for the trip widget (compat).
- Fix: pending-bank status was displayed as "Pending" without prefix.
Easy Invoice (free) — 2.1.x baseline
- Refactor of the model / repository / controller layer to namespaced classes.
- Migrated all admin screens to React (where applicable).
- Introduced per-payment refund support.
- Reports redone with Chart.js.
Easy Invoice Pro — 2.1.6
- New gateway: Moneris (Canadian).
- Stripe Payment Element rollout (replaces legacy Stripe Elements).
- Email Enhancements: per-template reply-to, brand colours, PDF attachment.
- Settings: re-organized PDF Options and Privacy & Access tabs.
- Fix: Subscription invoices duplicate generation when both crons fired in the same minute.
Easy Invoice Pro — 2.1.x baseline
- Recurring + Subscription invoice modules merged into a single settings tab.
- New module: Item Library with autocomplete in the invoice builder.
- New module: Template Builder for custom invoice templates.
- New: Custom & secure permalinks (hash-protected slugs).
- Privacy & Access: GDPR exporter + eraser registration.
- License manager: daily auto-check + grace period UI.
Compatibility
| Free | Pro | WordPress | PHP |
|---|---|---|---|
| 2.1.20 | 2.1.6 | 5.6+ | 7.4+ |
| 2.1.17–2.1.19 | 2.1.4–2.1.5 | 5.6+ | 7.4+ |
| 2.1.10–2.1.16 | 2.0.x | 5.6+ | 7.2+ |
Always run matching major.minor versions of Free and Pro. Mixing across majors is not supported.
Where to find the canonical changelog
- Free:
wp-content/plugins/easy-invoice/changelog.txtand the WordPress.org listing. - Pro: bundled in the Pro ZIP as
changelog.txt, plus the MatrixAddons changelog page.
Where to go next
- 🚀 Installation — get started.
- 💎 Pro features — what each Pro release adds.
- 💬 Support — questions about a specific release.