New — business-customer exclusion: the right of withdrawal is a consumer right, so shops that also sell to VAT-registered businesses can now switch the online withdrawal form off for business orders. Under Settings → Exclusions enable “Switch the online form off for business purchases” and pick the checkout field whose presence on an order marks it as a business purchase (for example a VAT-number field). The available fields are read live from your checkout (woocommerce_checkout_fields), grouped by Billing / Shipping / Account / Order. Orders that carry a value in that field are blocked at step 1 with a message pointing the buyer to your contact channel; orders without it are treated as consumer purchases and work exactly as before. This is a technical filter, not legal advice — you decide which field marks a business buyer.
New — the admin notification setting is now a free-form email field instead of an on/off toggle: send each new declaration to any address, not just the site administration email. It defaults to your WordPress administration email (filled in automatically on update), you can point it elsewhere, and leaving it empty turns admin notifications off. An invalid address is rejected with a clear, screen-reader-announced error instead of silently disabling notifications.
Improvement — the Form page selector is now a searchable, fully keyboard- and screen-reader-accessible combobox (the same accessible search already used by the product/category exclusion pickers), so picking the form page no longer means scrolling a huge dropdown on shops with many pages.
Maintenance — resolved all Plugin Check findings (translator comments, escaping, prepared-statement annotations) and hardened the test suite (deterministic colour-setting isolation). No behaviour change for the customer-facing form.
1.1
New — guest email verification: with the free OneCode Login plugin active, a not-logged-in customer can prove they own their email with a one-time code before filing. The form emails a code; once entered, it loads the orders for that email just like for a logged-in customer. This replaces the previous “order number + typed email” guest path (which anyone who knew both could use), closing that gap. Controlled by Settings → Form → Guest email verification (on by default when OneCode Login is available). When OneCode Login isn’t active the setting is shown disabled with a one-click “Install & activate OneCode Login” button (for admins who can install plugins) plus a manual-install link; the classic guest path keeps working so the plugin remains fully standalone. Keyboard- and screen-reader-accessible; the verification step requires JavaScript.
New — product and category withdrawal exemptions: exclude individual products and whole product categories from the right of withdrawal, for the CRD §16 / 45-2014 §29 carve-outs (perishables, custom-made goods, sealed digital downloads, etc.). Managed from a dedicated Settings → Exclusions tab with searchable, fully keyboard- and screen-reader-accessible autocompletes. Exempt items still appear inside an eligible order (with a visible “Not eligible for withdrawal” badge and the quantity locked at zero) so the customer sees what they bought; an order made up entirely of exempt items is blocked at step 1 with a contact pointer.
New — text and colour customization: match the form to your shop’s look. The submit-button background and text colours come with a live WCAG contrast meter that announces the ratio as you type, and an advanced panel adds the form text, background, and input/fieldset border colours. There’s also an optional intro paragraph and the editable disclaimer below the form. Set everything from Settings → Form, or override per-instance through [bitrow_form] shortcode attributes and the Withdrawal Form block’s Inspector panel.
New — customer “Withdrawals” hub in My Account: a single, logged-in landing page combining a “Submit a new withdrawal declaration” button (when the form page is configured) with the customer’s own record of every declaration filed from their account — reference number, date, affected order, items, refund preference and status. The menu item appears only when there’s something to show, and the list is privacy-scoped to the account email.
Improvement — for logged-in customers the step-1 name field prefills from the WooCommerce billing record (family name + given name) instead of the WordPress display name, so the declaration carries the real name used at checkout; email prefills from the account.