| 开发者 |
draison
recessodigitale |
|---|---|
| 更新时间 | 2026年8月15日 17:18 |
| PHP版本: | 8.2 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
/wp-content/plugins/ directory, or install it through the WordPress
plugins screen.No. The plugin provides the channel and records the request; the merchant accepts or rejects each one. The ordinary 14-day period is shown as advisory information (it does not hide the function), and the merchant can pre-exclude specific products or categories (art. 59). Rejecting a request requires a reason, which is recorded and emailed to the consumer. The mapping of the art. 59 exceptions to your catalogue must still be validated by a legal professional.
Yes. Guests receive a per-order, single-purpose signed link (HMAC, verified in constant time and rate-limited). A bare order id or order key is never sufficient to submit a withdrawal, and responses are uniform to prevent order enumeration.
No. The two-step flow is server-rendered and works with JavaScript disabled; JavaScript only enhances the admin experience.
A withdrawal acknowledgement sent by email together with a stored PDF receipt, kept in a protected location and downloadable only through a capability- or token-checked endpoint. The receipt records the content of the request and the exact date and time of transmission.
Yes. They are registered through WooCommerce's Additional Checkout Fields API, so WooCommerce renders,
validates and stores them natively in the block checkout — no extra JavaScript is loaded. That API
arrived in WooCommerce 8.9: on older versions the block checkout simply shows no consents, and the
classic [woocommerce_checkout] shortcode keeps working on every supported version.
Yes. Enable "Show each consent only when the cart contains a product classified for it" under Checkout consents. Each consent then follows the "Withdrawal status" you set on the product or its category: the digital-content box appears only with art. 16(m) items in the cart, the service box only with art. 14(4)(a) items. The option is off by default, so updating the plugin never changes what your checkout shows. Either consent can also be made a condition of placing the order, and both are off by default. For the Article 14(4)(a) service-start consent that default is deliberate: asking for the service to begin inside the withdrawal period is the customer's request to make, and it only entitles you to a proportionate payment if they later withdraw. Require it only where your service always begins inside that window — a live session, a booking for the next few days — so an order without the request is one you cannot fulfil.
Yes. The My Account "Right of withdrawal" tab lists them with the date they were sent, the order, the scope, the current status, any note you wrote when deciding, the receipt verification code and a link to the receipt PDF that keeps working for as long as the account does. Orders they can still withdraw from are listed in the same table. The tab is on by default and can be turned off under Withdrawal link visibility. Guest-checkout customers have no account, so their route stays the signed link in their emails.
Most likely the page hosting the withdrawal form was deleted, moved to the trash or unpublished. When that happens the plugin stops showing withdrawal links rather than pointing them somewhere useless, and tells you so on the settings screen and in an admin notice. Select or restore the page under General and the links come back.
Optionally. If WooCommerce Subscriptions is active, a confirmed withdrawal cancels the related subscription by transitioning its status — it never deletes subscription data. With Subscriptions absent, the plugin is unaffected.
No. It functions fully offline and loads no third-party scripts, fonts or assets.
Nothing is removed unless you opt in via the "Delete all data on uninstall" setting. When enabled, the plugin removes its tables, options and the flow page on uninstall.
recesso_dig_consent_render_hook and
recesso_dig_consent_render_priority move the checkboxes on the classic checkout (an empty hook
suppresses the render), recesso_dig_consent_applies decides per cart whether each consent is
asked for, and recesso_dig_consent_required makes either one blocking or optional. All hooks are
now documented under "Hooks for developers" below.amp;request instead of request, so the server
never saw the parameters and refused. Both are fixed and covered by tests that fail against the old
form.amp;request instead of request, so the server
never saw the parameters and refused. Both are fixed, and both are now covered by tests that fail
against the old form. These are the only two places where the plugin builds a URL server-side and
hands it to JavaScript.
[recesso_digitale_link] shortcode (attributes: text, class) for footers, widgets and
menus, and [recesso_digitale_avviso_esclusione] for product templates built with a page builder
(Divi, Elementor, Bricks and similar) whose layouts do not fire the usual WooCommerce hook.{withdrawal_page_link}
placeholder.manage_woocommerce while the requests list
required the plugin's own capability. All three now use the plugin capability, which the new roles
setting controls.consumer_declaration), applied automatically. Receipts issued
before this release keep verifying against their stored hash — the receipt payload is versioned,
and a request without a self-declaration hashes exactly as it did before.assets/) and
the build manifests (package.json, package-lock.json) alongside the compiled build/
assets, and the readme documents how to rebuild them and links the public development repository.edit_product capability explicitly.