| 开发者 | motylanogha |
|---|---|
| 更新时间 | 2026年10月2日 19:31 |
| PHP版本: | 8.1 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
[withdraw_form] shortcode renders the whole flow: look up an order by number and billing email (works for guests too), select items and quantities, then confirm on a step of its own, because Art. 11a(3) wants the confirmation to be a separate control labelled only "confirm withdrawal".[withdraw_instructions] renders the model instructions on withdrawal (Annex I.A) for your terms page, both translatable and both in step with your configured withdrawal period. Type your own wording and it wins.[withdraw_form] shortcode.No. This records the withdrawal request and tracks its status. Process any refund in the normal WooCommerce order screen; the request status is managed on the Withdrawal Requests screen.
Yes. Customers look up their order with the order number and the billing email used at checkout, so guests can submit a withdrawal without an account.
Only if your outgoing email is reliable, which is why it ships off. With it off, anyone holding an order number and the billing address can open the form, which is the same pair WooCommerce itself accepts for guest order tracking. With it on, the form emails a single-use link valid for one hour instead, so the address has to actually be reachable by the person asking. That makes the withdrawal function depend on your shop being able to send mail: if SMTP breaks, a guest cannot withdraw at all.
No. The plugin provides the technical withdrawal function and editable legal texts. Configure the period and wording to match your jurisdiction and the statutory model withdrawal form.
It is off until you turn it on, and even then it never blocks a purchase. The checkbox is optional and never pre-ticked, because consent that is a condition of buying is not freely given and would not hold up as an exclusion. A customer who leaves it unticked still receives the download and still keeps the right of withdrawal. The exclusion only applies to items the customer consented to AND that WooCommerce has recorded as downloaded.
No, not on its own. The plugin decides that supply has begun by reading WooCommerce download logs, so a file WooCommerce never served reads as not downloaded and the item stays withdrawable. Erring towards the customer is deliberate. If you deliver outside WooCommerce, the withdraw/digital_supply_begun filter lets you supply the truth.
Yes. Each of the four request statuses has its own WooCommerce email, sent when you change the status in the request log. The acceptance one also carries the return address, the return deadline and who pays for the return. Switch any of them off under WooCommerce > Settings > Emails if you would rather write yourself.
Whoever you say, and the plugin says nothing until you choose. Article 14(1) only lets you put the direct cost of the return on the customer if you told them so before the contract, in your withdrawal information. If you did not, it is yours, so a plugin that assumed the customer pays would be making a claim on your behalf that might not hold.
Yes. Orders are read through the WooCommerce order API, which is HPOS-compatible.
withdraw/resolve_order_number filter never saw it. The number is now read as typed.[withdraw_instructions] shortcode rendering the model instructions on withdrawal (Annex I.A) for your terms or returns page, generated from the same details and from your withdrawal period, so it cannot drift out of step with what the form enforces. Attributes heading="no" and form="no" trim it. The withdraw/model_instructions filter is there for the service-contract and digital-content paragraphs a particular catalogue needs.withdraw/digital_supply_begun filter is there for those shops.withdraw/resolve_order_number filter for other numbering schemes.[withdraw_link] shortcode and an optional footer link. Article 11a(1) requires the function to be easily accessible for the whole withdrawal period, and the My Account control only reaches a signed-in customer already looking at that order, so a guest had no way in.required attribute and the server never looked at it, so a request posted without it was stored as a valid declaration. That record is the whole point of the plugin, so it is now refused server-side and nothing is written.plogins-withdraw.pot, which had fallen behind the code. It was missing five strings from the withdrawal declarations admin screen and the privacy eraser, and still carried the plugin's pre-rename name. That template is what translators work from.[withdraw_form] shortcode (order lookup + full/partial item selection), My Account withdrawal button, configurable withdrawal period and eligible statuses, admin request log with statuses, customer and shop emails, editable model withdrawal text. HPOS + Blocks compatible.