xpay✦ Commerce
Directory
WooCommerce plugins
BuddyPilot Withdrawal – Easy Returns for WooCommerce
BuddyPilot Withdrawal – Easy Returns for WooCommerce
Easy returns for WooCommerce: EU withdrawal button (Directive 2023/2673), online return form, cooling-off period tracking and operator workflow.
5.0
(4 ratings)Will this break my store?
What the WordPress.org registry says about keeping BuddyPilot Withdrawal – Easy Returns for WooCommerce running.
Tested to 7.0.2
Tested against the WordPress branch in use today.16 days ago
7.4
Your host must be running at least this version.5.8
woocommerce
These must be installed and active first.2
Maintenance & trust
Scored on how BuddyPilot Withdrawal – Easy Returns for WooCommerce is looked after — not on how many stores run it.
91
out of 100Maintenance
35 / 35WordPress compatibility
20 / 20Support responsiveness
Not enough dataMerchant satisfaction
11 / 15Listing transparency
6 / 10Ratings
5.0
4 ratingsBuddyPilot Withdrawal – Easy Returns for WooCommerce adds a complete returns and withdrawal workflow to your store: the mandatory EU withdrawal button required by Article 11a of EU Directive 2023/2673, an online return form for customers, and a declarations dashboard for the operator.
From 19 June 2026, every WooCommerce store with EU customers must provide a clearly visible, easily accessible withdrawal function (“withdraw from contract here” button) alongside the existing right of withdrawal informational requirements.
The plugin works alongside your return policy: the customer withdraws from the contract online during the cooling-off period (14 days by default, configurable), and you process the WooCommerce return and refund with native tools.
What the plugin does
Customer-facing
- Article 11a compliant “Withdraw from contract here” button on the My Account order detail page
- Two-step withdrawal form: item selection, declaration preview, one-click confirm
- Variable product support: each variant (size, colour, etc.) appears with its full attribute labels as a separate line in the withdrawal form
- Guest checkout support via direct verification flow (email + order number, no login required)
- My Account withdrawal history list and declaration detail page
- Article 16(m) consent capture at checkout for digital and virtual goods (configurable: required, optional, or hidden)
- Customer declaration email serving as the durable-medium acknowledgement required by Article 11a(3)
- Withdrawal resolved email sent to the customer after the operator closes the declaration; includes the EU ODR platform link (ec.europa.eu/consumers/odr) when any item is rejected
- Per-item resolution status visible in the withdrawal form after a declaration is closed: each item shows an “accepted” or “rejected” badge with the rejection reason and ODR link, so the customer understands the outcome without contacting support
Operator-facing
- Order edit metabox for registering declarations received via phone, mail or in person
- Standalone “Add new declaration” page for high-volume operator queues without leaving the declarations list
- Declarations list with search, filtering and sorting in WooCommerce admin
- Declaration detail page with full audit trail and resolution workflow: accept all, reject all, or partial resolution with per-item decisions and individual rejection reasons
- Admin notification email sent immediately when a customer submits a withdrawal
Legal and compliance
- Custom order status
wc-withdrawal(optional, plugin-registered) with a full change history logged as WooCommerce order notes - Annex I(A) withdrawal information page available to generate with one click from Settings
- Annex I(B) model withdrawal form page available to generate with one click from Settings, published as a WordPress page and auto-linked from order emails and My Account
- Configurable refund period (default 14 days, matches your contract terms)
- Configurable “delivered” statuses that start the withdrawal clock
- Return cost attribution (consumer pays or trader pays, per Annex I(A) requirements)
- GDPR personal data export and anonymisation compatible with WordPress privacy tools
- HPOS compatibility (High-Performance Order Storage) and legacy post-meta mode
- WCAG 2.2 AA accessibility compliance on all customer-facing forms
- Polish and English translations included
Pro addon
Extended functionality is available via the BuddyPilot Withdrawal Pro addon:
- Operator-approved automatic refund built from declared items (one click from the declaration screen)
- Download-count verification: restores withdrawal right when a digital product was never actually downloaded, reducing unjustified refusal of refunds
- WooCommerce Subscriptions support: cancels future renewals, prorates the current billing period per Article 9(2)(b)(iii)
- WooCommerce Product Bundles support: automatic handling by bundle type; for per-item bundles with a configured discount, choose whether partial returns keep the paid amount or forfeit the entire bundle discount
- PDF export of the legal withdrawal declaration
- Country-specific Annex I(B) form generation
Yes. Create a dedicated withdrawal form page from WooCommerce > Settings > Withdrawal > Customer (one click). Place the [buddypilot_withdrawal_guest_form] shortcode on that page. Guest customers enter their order number and billing email; a secure magic-link is sent to the billing address. Clicking the link opens the full interactive withdrawal form without requiring an account.
The free version records the withdrawal declaration and changes the order status to wc-withdrawal. The operator processes the refund using native WooCommerce tools. One-click automatic refund built from declared items is available in the Pro addon.
The plugin records withdrawal declarations as legal artifacts and notifies both the customer and operator. It does not automatically refund money, verify return shipments, enforce refund deadlines, or handle accounting and VAT. The shop operator is responsible for processing the refund within the legally required period (14 days by default, configurable under WooCommerce > Settings > Withdrawal > General).
Yes, in the legal sense: it handles WooCommerce returns as EU consumer withdrawals. The customer submits a return request (a withdrawal declaration) through the online return form, and the operator resolves it from the declarations list. It is not a courier or RMA logistics tool: it does not generate shipping labels or track return parcels.
No, it complements it. The plugin generates the legally required withdrawal information page (Annex I(A)) and the model withdrawal form (Annex I(B)) with one click; your return policy and terms of service remain your own documents. Together they cover both the legal minimum and your store’s practical rules.
Yes, with no extra configuration needed. Variable products (different sizes, colours, etc.) are fully supported in the free version. Each variant appears in the withdrawal form as a separate line with its full attribute labels (e.g. T-shirt, Size: L, Colour: Black), so the customer specifies exactly what they are returning and the operator sees the same detail on the declarations list and declaration detail page.
Subscription, bundle and composite product handling (cancel renewals, proration, bundle refund modes) is part of the Pro addon. The free version treats them as standard products.
Yes. The plugin adds an explicit consent checkbox at checkout when the cart contains downloadable or virtual products. The operator can choose between “required before purchase”, “optional” or “hidden” (trader waives the exclusion). Consent is recorded on the order and displayed in the withdrawal form.
The clock starts from the exact moment the order status changes to one of the “delivered” statuses configured under WooCommerce > Settings > Withdrawal > General. The plugin records the precise timestamp of that status change. As long as the deadline has not passed, the customer sees how many days remain in the withdrawal form; once the deadline passes, the withdrawal button is no longer shown. Any built-in or custom WooCommerce order status can be mapped as a “delivered” trigger (e.g. “Completed”, a custom “Shipped” status, etc.). Leaving the list empty means the clock never starts, which is useful during testing or when you want withdrawal to be available indefinitely.
Yes. The plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS) and falls back to legacy post-meta mode automatically.
Categories
Plugin details
Tags on WordPress.org
