APG Withdrawal for WooCommerce
APG Withdrawal for WooCommerce adds to your WooCommerce store a complete online right of withdrawal workflow compliant with EU consumer protection legislation. Features Customer withdrawal form via the [apg_withdrawal_form] shortcode. Partial withdrawal down to the unit: the customer ticks the order lines and adjusts how many units of each one they are withdrawing from. Configurable withdrawal window (days) and deadline source (completed or created date). Optional extra grace days on top of the standard withdrawal window. Active request detection: hides the withdrawal button if a request is already open for the order. Optional digital-content waiver checkbox at checkout (both classic shortcode and block-based checkout): a configurable selector chooses when to display it — never, only on virtual products (or per-product _apg_withdrawal_type = digital), on every order, or on selected categories and/or selected products. The customer’s choice is persisted to order meta as legal evidence. Admin request log with full request details (custom post type), status views with counts, bulk status changes and sortable status column. Own WooCommerce order status Withdrawal requested, optionally applied to the order as soon as a declaration is received, so affected orders can be filtered, sorted and bulk-edited with the native tools. Optional refund account (IBAN) validated with the international control digits (ISO 7064 MOD-97-10). Optional double opt-in for guests: the request is held until the customer opens a single-use link sent to the email address on the order, while keeping the date and time of the original submission. Jurisdiction setting (EU baseline / Spain) that governs the statutory reference shown to the customer. REST API under apg-withdrawal/v1 to list, read, create and progress requests from headless storefronts and back-office integrations. IP address and browser identifier storage options for legal evidence. Email notification to the store admin on every new request. Automatic customer acknowledgement email on submission. Customer status update emails when the request is accepted, rejected or completed. Automation: updates the withdrawal request status automatically when the linked WooCommerce order changes status. My Account integration: customers can view their withdrawal request history. CSV export of withdrawal requests, honouring the status currently selected in the list, with protection against spreadsheet formula injection. 100% compatible with HPOS (High-Performance Order Storage). Public form built to WCAG 2.1 AA — the level EN 301 549 requires today — with the WCAG 2.2 target-size criterion already met: grouped and labelled controls, live regions for dynamic notices and focus moved to each new step. One-click WooCommerce refund built from the request: the declared lines and quantities, capped by whatever is still refundable on the order. Always started by hand, never automatically. Works with Redsys and Bizum out of the box. WPML and Polylang ready, both through wpml-config.xml and through runtime string registration. Translations English: by Art Project Group (default language). Spanish: by Art Project Group. More information You can learn more about APG Withdrawal for WooCommerce on our official website, and follow the development on GitHub. Thanks Thanks to everyone who uses the plugin, helps improve it, makes a donation or encourages us with their comments. If you find this plugin useful, you can support its development with a small donation. External Services This plugin connects to the WordPress.org Plugins API to fetch information about the plugin (such as the rating). It sends the plugin slug when requesting data. More information: https://wordpress.org/about/privacy/
Top keywords
- withdrawal14×2.50%
- order10×1.78%
- request10×1.78%
- status8×1.43%
- customer7×1.25%
- woocommerce6×1.07%
- apg4×0.71%
- apg withdrawal4×0.71%
- optional4×0.71%
- email3×0.53%
- form3×0.53%
- information3×0.53%
WebToffee EU Order Withdrawal Button for WooCommerce
From June 19, 2026, EU Directive 2023/2673 requires every online store selling to EU consumers to provide a clear, easily accessible online withdrawal function. Customers must be able to cancel a purchase digitally — just as easily as they placed the order. EU Withdrawal Button for WooCommerce by WebToffee makes it straightforward to comply. The plugin adds a withdrawal button to the customer’s My Account orders page, a guided withdrawal form, a two-step confirmation flow, and a dedicated admin dashboard to manage all incoming requests. No coding required. Works right out of the box. What the plugin does For your customers: A “Request Withdrawal” button appears directly on the My Account orders list — visible only during the active withdrawal period Customers can select which items to withdraw (full order or individual products) A simple form collects their name, email, and an optional reason A confirmation step prevents accidental submissions (“Are you sure you want to submit this withdrawal request?”) Customers receive an email confirmation once the request is submitted For you as the store admin: A clean Withdrawals dashboard under WooCommerce > Withdrawals shows all requests at a glance At-a-glance stats: open requests and approvals over the last 30 days Filter requests by status, date range, or search (order # or receipt hash) View full request details — order info, customer email, request type, reason, and a complete activity log Approve or reject requests with one click Configure who receives admin withdrawal notification emails — defaults to your store email, with support for multiple recipients Key features Withdrawal button on the orders page — visible to customers within the configured withdrawal window Partial withdrawal support — customers can withdraw individual items instead of the entire order Two-step confirmation flow — meets the directive’s requirement to confirm the customer’s intent Dedicated admin dashboard — manage, filter, approve, or reject all withdrawal requests in one place Add footer link — optionally embed a withdrawal link in your store footer to meet visibility requirements Guest withdrawal support — guest users can submit their order number and billing email, which is matched against WooCommerce order history, then confirmed via an email verification step before the request is created Withdrawal button shortcode — use [wt_eu_order_withdrawal] to place a withdrawal button on any page or post. Configurable withdrawal period — set the window to 2, 7, 14, or 30 days (EU standard is 14 days), starting from order created or a chosen WooCommerce order status Product exclusions — exclude by product type, entire categories, or specific individual products Admin notification recipients — choose one or more email addresses to receive new withdrawal request alerts (store email added by default) Customer contact email — set the address shown to customers in rejection emails so they know who to reach out to SHA-256 receipt hash — every withdrawal request gets a unique SHA-256 receipt hash, included in withdrawal notification emails and shown in the request details on the admin dashboard, for easy reference and record-keeping Order status automation — automatically update order status when a request is submitted or approved Reason field — optionally require customers to provide a reason when submitting a request Display scope control — show the withdrawal form globally or limit it to WooCommerce pages only Data management — optionally delete all plugin data on uninstall Why this matters Under EU Directive 2023/2673, any business that lets EU consumers sign up for or purchase something online must also let them cancel online — through the same website or app. Simply hiding a withdrawal form in a footer PDF or asking customers to email you is no longer sufficient. The directive specifically requires: A withdrawal function that is prominently displayed and continuously available during the withdrawal period The function must be clearly labelled (e.g. “Withdraw from contract here” or similar) A two-step confirmation to prevent accidental withdrawals An acknowledgement of receipt sent to the customer on a durable medium (e.g. email) This plugin implements all of the above. Compatible Plugins Sequential Order Number plugins Product Bundles by WooCommerce WebToffee eCommerce Marketing Automation WPML Getting started For a complete walkthrough, see the setup guide or watch the video below. Install and activate the plugin Go to WooCommerce > Withdrawals > Settings to configure your preferences Set your withdrawal page, period, and footer link options Publish the withdrawal page (created automatically as a draft on installation) Test the flow by placing a test order and using the Request Withdrawal button Support For questions or assistance, visit our support page.