v9.15.0 — 2026-07-03
Major release — email diagnostics, a real bug fix, and a Send Test Email button
Most likely explanation for "registration saves but no emails arrive"
Registration saving is a database write (always works). Sending email depends entirely on the server's mail transport, which is a completely separate system. If you're running this on local XAMPP without an SMTP plugin, this is almost certainly the cause — PHP's built-in mail sending has no real mail server to talk to on a local machine, so it fails silently for every outgoing email on the whole site, not just this plugin. The fix is the same for any WordPress site on localhost: install WP Mail SMTP (free) and connect it to a real account (a free Gmail account works fine), which routes outgoing mail through an actual mail server instead of relying on PHP's native — and typically nonfunctional on localhost — mail() function.
A real bug fixed either way
Both email bodies were using esc_html() on plain-text content. esc_html() converts characters like & and ' into HTML entities (&, ') — correct for HTML output, but wrong for a plain-text email, where it would literally corrupt exhibition/venue names containing those characters (e.g. "Fashion & Retail" would render as "Fashion & Retail" in the email body). Removed the incorrect escaping.
New: you can now actually see why an email failed
Previously, wp_mail() failures were completely invisible — it just silently returns false with no error anywhere. Added:
- A
wp_mail_failedhook that captures the real PHPMailer error message (bad SMTP credentials, connection refused, invalid recipient, etc.) to a new option - An error box on the Settings page showing that captured message directly — copy-pasteable for diagnosis
- A "Send Test Email" button next to the admin email fields — sends one test message immediately and reports success or the exact failure reason, without needing to submit a full registration to test