Purchase Contract Withdrawal Button for WooCommerce adds a clearly-labeled “Withdraw from purchase contract” button to each customer’s order detail page in WooCommerce My Account. It implements the two-step submission process required by EU consumer law: the customer clicks the button, reviews their order details, optionally provides a refund bank account and reason, and then explicitly confirms.
After submission:
Both emails are registered as standard WooCommerce email classes and can be customized in WooCommerce Settings Emails.
This plugin is designed to help merchants comply with EU Directive 2023/2673, which requires online merchants to provide consumers with a direct online function to withdraw from a contract — the same way they could enter into it. In the Czech Republic, this obligation enters into force on 19 June 2026 under § 1830a of the Civil Code (the so-called “button amendment 2.0”). Similar transposition is required across all EU member states.
The plugin is not legal advice. Merchants remain responsible for ensuring their full implementation (including terms and conditions, refund processing, and goods return) complies with applicable law.
[pcwb_withdrawal_form] for non-logged-in customers (order number + billing email lookup, rate-limited)templates/withdrawal-form.php or templates/guest-lookup.php into your theme to customizepcwb_eligible_statuses — array of statuses where the button is shownpcwb_period_days — cooling-off period overridepcwb_period_reference_date ($date, $order) — override the cooling-off reference datepcwb_new_status — order status applied after submissionpcwb_admin_recipient — admin email recipient overridepcwb_after_submit ($order, $reason, $account, $source) — fires after a successful submission (source = customer|guest|admin)pcwb_after_resolve ($order, $resolved_by_user_id) — fires when an admin marks a withdrawal resolved