From 19 June 2026, EU member states require every consumer-facing online shop to provide an
online withdrawal function — not just static information, but a continuously available electronic interface where the consumer can declare intent to withdraw, and from which the shop sends an automatic confirmation on a durable medium. In Hungary the same rule applies through the amendment of Government Decree 45/2014.
Bitron Right of Withdrawal delivers exactly that, accessibly.
What the plugin does
- A continuously available, accessible withdrawal form — embeddable via the
[bitrow_form] shortcode or the Withdrawal Form Gutenberg block, so it drops into any classic-editor page, a block-built layout, or a page builder that handles either.
- Tight WooCommerce integration: the form is surfaced to logged-in customers as a Withdrawal item in their My Account menu, but only while they have at least one order still inside the window — so a customer with nothing eligible doesn't see a dead link.
- Withdrawal CTA is automatically attached to WooCommerce's customer order emails (processing, completed, invoice) while the window is open — HTML and plain-text variants, with a filter to extend the list of carrier emails.
- Guest and logged-in customer paths. A guest verifies with order number plus the email used on the order; a logged-in customer sees a select of their own in-window orders.
- Item-level partial withdrawal. After the customer picks an order, they tick exactly which line items (and quantities) they want to withdraw from — the form is not all-or-nothing.
- Bank-account capture for non-card payments. When the original gateway can't refund automatically (e.g. cash on delivery, manual bank transfer), the customer enters a Hungarian IBAN or domestic GIRO account number — validated client- and server-side with MOD-97 / CDV checks — so the shop has everything to wire the refund manually.
- Customizable form copy and brand colors. An optional intro paragraph above the form and the submit-button colors (background + text) are configurable from Settings → Form, with a live WCAG contrast meter that announces the ratio as you type so a custom brand color cannot quietly drop below AA. The same values can be overridden per-instance through
[bitrow_form] shortcode attributes or the block's Inspector panel.
- Automatic confirmation email to the customer (durable medium) and notification to the shop admin, with editable subject and body templates for both — empty fields fall back to safe i18n defaults so the plugin is functional out of the box.
- Minimal record-keeping with unique
BITROW-XXXXXX references for evidentiary value, plus a per-record detail page in the admin.
- Admin can mark a record as closed (and reopen it) once the case is resolved, with timestamp and the closing user recorded — keeps the working list focused on what's still pending.
- WCAG 2.1 AA accessibility throughout — programmatic labels, focus management, live regions, sufficient contrast.
- GDPR integration with WordPress' personal data export and erase tools, plus a suggested paragraph for the Privacy Policy Guide.
Compatibility
The plugin integrates with WooCommerce orders. It declares HPOS (High-Performance Order Storage) compatibility and uses the WooCommerce CRUD API throughout. WooCommerce is referenced for compatibility only — the trademark is not used in the plugin name or slug.
Important — what this plugin does NOT do
This is a technical tool, not legal advice, and does not by itself guarantee legal compliance. The plugin does not generate Terms of Service text, privacy-policy text, or other legal content — those must be prepared by your own lawyer. The confirmation email contains only a factual acknowledgement (received, when, with which ID, what content); any "what happens next" wording is the shop operator's own policy and must come from you.
The plugin records each withdrawal and notifies you, but it does not issue refunds automatically. Refunds remain a deliberate admin action through WooCommerce's standard refund interface.
Privacy
The plugin stores only what is necessary to acknowledge and document the withdrawal: name, email, order reference, optional note, timestamps and a unique identifier. No IP address is stored in plain text. On plugin removal the stored records are kept by default (so an accidental deactivation cannot destroy evidence); a setting lets you opt in to deletion at uninstall.