
外掛標籤
開發者團隊
② 後台搜尋「DrSmart Withdrawal & Cancellation Requests for WooCommerce」→ 直接安裝(推薦)
原文外掛簡介
Since 19 June 2026, Article 11a of the Consumer Rights Directive requires an online
withdrawal function that is prominently displayed, easy to find and continuously
available throughout the withdrawal period. Withdrawing must not be harder than
buying was.
This plugin adds that function to your store, records every declaration as dated
evidence with its own reference number, and gives you a back office to work
through the requests.
A declaration is accepted even when no order can be matched. That is deliberate:
the consumer’s right does not depend on your shop finding their record.
Six languages, and two separate language settings
The plugin ships with complete Dutch, German, French, Spanish and Italian
translations alongside English as the source language, using the legal
terminology each country actually uses rather than a literal rendering of the
English.
There are two language settings, not one: what your customers see and what your
own back office shows. A Dutch shop run from an English admin sends Dutch
customers Dutch notices, which is impossible when a plugin simply follows the
site language.
Every string is translation-ready and the .pot file is included, so any further
locale can be added through translate.wordpress.org.
What your customers get
A clear two-step form: identify the purchase, then declare the withdrawal
Works for guests and for logged-in customers alike
Partial withdrawal: select which order lines and which quantities
No reason required, because the directive does not oblige consumers to give one
A confirmation e-mail with their reference number
A printable confirmation document behind a signed link, valid for two years, which they can save as PDF as proof they declared in time
What you get
Requests list with search, status filters, sorting and a deadline column that flags what is expiring
Detail screen with four independent statuses: declaration, return, exchange and refund, each with its own permitted transitions
Full history of every status change, with internal notes
Sequential reference numbers, generated atomically so two customers submitting in the same second can never share one
Deadlines calculated from the delivery date, not the order date, as the directive requires
A panel on the WooCommerce order screen showing any linked request, so nobody processes a refund without seeing it
Every e-mail logged, sent or failed, so you can answer a customer who says they never received their confirmation
Privacy and retention
Nothing is sent to any external service. All data stays in your own database.
IP addresses and user agents are not stored unless you switch that on, and are hashed where they are used at all.
Optional automatic anonymisation once your retention period ends: personal data is overwritten, the dated record of the declaration is kept.
Native integration with Tools then Export and Erase Personal Data, plus suggested privacy policy wording.
Data is preserved on uninstall by default, because declarations are evidence you may be required to produce.
WooCommerce
WooCommerce is not required, but without it a declaration cannot be matched to an
order. With it you get order matching on number plus e-mail address, order lines
with already-refunded quantities deducted, delivery-date deadlines and the order
screen panel.
Compatible with High-Performance Order Storage and with legacy order storage: all
order access goes through the WooCommerce CRUD layer, so no query touches the
posts tables directly.
For developers
Filters and actions throughout: drs_wd_registered_features, drs_wd_settings_schema,
drs_wd_status_transitions, drs_wd_resolve_order_number, drs_wd_delivery_date,
drs_wd_client_ip, drs_wd_reason_options, drs_wd_evidence_number, drs_wd_mail,
drs_wd_declaration_created, drs_wd_status_changed, drs_wd_request_anonymised.
Templates can be overridden from your theme by copying them to
yourtheme/eu-withdrawal/.
No Composer dependencies, no bundled libraries, PHP 7.4 baseline.
