How to setup WooCommerce Order Withdrawal button to comply with EU Directives?
Last updated on September 7, 2026
The WebToffee EU Order Withdrawal Button for WooCommerce plugin allows customers to submit order cancellation and partial refund requests directly from your WooCommerce store. It is designed to support EU consumer rights compliance by giving customers a structured withdrawal mechanism.
Step 1: Install and Activate the Plugin
Go to WordPress Admin → Plugins → Add New.
Search for WebToffee EU Order Withdrawal Button for WooCommerce, or upload the plugin ZIP file.
Click Install Now, then Activate.
After activation, navigate to WooCommerce → Withdrawals in the admin menu.
Step 2: Configure General Settings
Go to WooCommerce → Withdrawals → Settings.
WooCommerce Withdraw Request – General Settings
Withdrawal Page
Under General, set the page where customers can submit withdrawal requests.
Open the Withdrawal page dropdown.
Select the page assigned for withdrawal requests (e.g., Withdrawal Request).
Footer Link
Embed footer link – Toggle this on to automatically add a withdrawal link to your site footer.
Footer link text – Customize the link label shown to customers (default: Request Withdrawal).
Display Scope
Choose where the withdrawal form and links appear:
Global – Shown across the entire site
WooCommerce only – Shown only on WooCommerce pages
Select the option appropriate for your store layout.
Step 3: Configure Withdrawal Rules
Withdrawal rules – Full and partial withdrawal – WooCommerce Withdraw Request
Allow Partial Withdrawals (Recommended)
Enable this toggle to let customers withdraw individual line items instead of the entire order. This is the recommended setting and provides flexibility for customers making partial refund requests.
Withdrawal Period
Set the number of days after purchase during which a customer can submit a withdrawal request.
Enter a custom value, or use the quick-select buttons: 2d, 7d, 14d (default), 30d.
The EU statutory withdrawal period is 14 days, but you may extend this at your discretion.
Reason Required
Toggle this on if you want customers to provide a reason when submitting a withdrawal.
Keeping this off reduces friction for customers but gives you less context per request.
Step 4: Configure Exclusions
The Exclusions section lets you exclude product types, entire categories, or individual products from withdrawal eligibility. Any item matching an exclusion rule will not be available for withdrawal by the customer.
Exclusion List – WooCommerce Withdrawal Request
Excluded Product Types
Select WooCommerce product types that cannot be withdrawn. Check any that apply to your catalog:
Virtual – Services or virtual goods with no physical delivery
Downloadable – Digital files delivered immediately after purchase
Grouped – Grouped product bundles
External / Affiliate – Products fulfilled by third-party affiliates
Excluded Categories
Select product categories whose items cannot be withdrawn. All products belonging to a checked category will be ineligible, regardless of their product type.
The list is populated from your store’s existing WooCommerce categories.
Check all categories that should be non-withdrawable (e.g., perishables, personalised items, hygiene products).
You can select multiple categories simultaneously.
Excluded Products
Exclude specific individual products by name, regardless of their type or category.
Use the Search for a product… field to find and select products by name.
This is useful for one-off exclusions that don’t fit neatly into a type or category rule.
Selected products are added to the exclusion list and will no longer be eligible for withdrawal requests.
Step 5: Configure Order Status Automation
Under Order status, you can automate order status changes tied to the withdrawal lifecycle.
Order Status Automation – WooCommerce Withdrawal Request
Change order status on submission – Automatically updates the order status when a customer submits a withdrawal request
Change order status on approval – Automatically updates the order status when you approve a withdrawal request
Enable these if you want the withdrawal workflow to trigger order status transitions without manual intervention. Leave them off if you prefer to manage order statuses manually.
Step 6: Data Management
Under Data management, you will find:
Delete data on uninstall – When enabled, removing the plugin will permanently delete all plugin data including settings, withdrawal requests, and database tables. This action is irreversible.
Data Management – WooCommerce Withdrawal Request
Recommendation: Leave this toggle off unless you are fully decommissioning the plugin and no longer need any withdrawal records.
Step 7: Save Settings
After completing all configuration steps, scroll down and click Save Changes (or your theme’s equivalent save button).
Managing Withdrawal Requests
Navigate to WooCommerce → Withdrawals → Requests to view and manage incoming requests.
WooCommerce Withdraw Request – Dashboard
Dashboard Summary
At the top of the Requests tab, two summary cards provide an at-a-glance view:
Open Requests – Count of pending withdrawal requests awaiting action.
Approved (30D) – Count of requests approved in the last 30 days.
Filtering Requests
Use the filter bar to locate specific requests:
Filter
Description
Status
Filter by All Statuses, Open, Approved, Rejected, etc.
Date From / Date To
Narrow results to a specific date range (dd/mm/yyyy)
Order #
Search for a withdrawal request by its associated order number
Click Apply Filters to run the search, or Reset to clear all filters.
Request Actions
When requests are present in the list, you can review each request’s details and take action (approve or reject) from the request row or detail view.
How Customers Submit a Withdrawal Request
Once the plugin is configured, customers can access the withdrawal form at the page assigned under General settings (e.g., Withdrawal Request). The form is also reachable via the footer link if that option is enabled.
The Withdrawal Request Form
Customers fill in the following fields:
Field
Description
Order
A dropdown listing the customer’s eligible orders (e.g., #26 — June 16, 2026). Only orders within the configured withdrawal period are shown.
Items to withdraw
A checklist of line items from the selected order, each showing the product name, quantity, and price. Customers can select all items or only the ones they wish to withdraw (partial withdrawal).
Email
Pre-filled with the customer’s account email.
First name / Last name
Pre-filled from the customer’s account details.
Reason for withdrawal
A free-text field for the customer to describe why they are withdrawing. This field appears only if Reason required is enabled in Settings, but customers may still see it as optional depending on configuration.
Once all fields are complete, the customer clicks Submit Withdrawal Request to send the request.
Email Notifications
When a withdrawal request is submitted, email notifications are automatically sent to both parties:
Customer – Receives a confirmation email acknowledging that their withdrawal request has been received.
Store admin – Receives a notification email with the request details so they can review and act on it promptly.
No additional configuration is needed for these notifications they trigger automatically on submission. Below you can see a sample withdrawal request.
Manage WooCommerce Withdraw Request
The emails sent to the customer and the admin are shown below:
Comments (2)
Carolina
July 30, 2026
This is not a support request. It is to inform you that your plugin is not accessible. Please test it more carefully and adress all issues as soon as possible, because the plugin cannot be used as is on EU WooCommerce sites because it does not comply with the keyboard navigation requirements in the WCAG / EAA.
Hema
July 31, 2026
Hi Carolina,
Thank you for taking the time to test the plugin and flag this. You’re right that keyboard navigation support is essential for WCAG/EAA compliance, and we appreciate the detailed feedback.
Accessibility improvements for the plugin are already in our development pipeline and will be included in the next release. In the meantime, if you’d like early access to the updated version once it’s ready, please reach out to us through our support channel and we’d be happy to share a development build with you for testing.
Thanks again for helping us make the plugin better.