| 开发者 | conformitico |
|---|---|
| 更新时间 | 2026年9月10日 22:53 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wpml-config.xml, so multilingual sites can translate them per language.[r54b_link] shortcode) resolve to the correct page translation on WPML and Polylang sites.FeaturesUtil::declare_compatibility().[r54b_form] — embeds the withdrawal form anywhere.[r54b_link] — a permanent link to the withdrawal page for any footer, widget area or template part, helping meet the "clearly identifiable" requirement of Article 11a.[r54b_avviso_esclusione] — places the excluded-product notice with page builders (Divi, Elementor, Bricks, ShopLentor) that render their own product template and skip the standard WooCommerce hooks./wp-content/plugins/, or install the ZIP from Plugins → Add New → Upload Plugin.No — the plugin works right after activation with sensible defaults: the "Withdraw from contract" button appears for orders in Processing and Completed status (with WooCommerce), or the "Right of withdrawal" page is published (without it), and notifications go to the site admin email. The optional two-step quick setup, reachable from the activation notice or from Recesso 54-bis → Overview, only lets you confirm the notification email and the eligible order statuses — everything else can be fine-tuned later under Settings, with no obligation to do so.
No, not by default. The 14-day period legally starts when the goods are delivered (or, for digital content, when the download begins) — a date the shop cannot detect automatically — so auto-rejecting on the order or completion date could turn away customers who are still within their legal window. Instead the plugin flags requests that look past the approximate window in the admin notification and lets you check the real delivery date and decide. You can tune the advisory calculation (order date vs. completion date, plus grace days) under Recesso 54-bis → Settings. If your start date is reliable (services, digital content, shop pickup, predictable carriers) you can switch the Deadline enforcement setting from Advisory to Strict, which hides the button and blocks new requests once the deadline plus grace days has passed. Advisory is the default and the safe choice for goods with unpredictable delivery.
Use the single Withdrawal status dropdown, available per category and per product:
Page builders such as Divi, Elementor, Bricks or ShopLentor render their own single-product template and skip the standard WooCommerce hook where the notice is injected. Drop the [r54b_avviso_esclusione] shortcode into your product layout (most builders have a "Shortcode" element) and the notice will print for the current product whenever it is flagged as excluded. With no attributes it resolves the product being viewed; pass id="123" to target a specific product.
When the cart contains flagged products, the plugin can inject two consent checkboxes at checkout:
The right of withdrawal protects consumers (natural persons acting outside their trade or profession), not business buyers, but the plugin never decides that for you. Enable Consumer self-declaration under Recesso 54-bis → Settings and the form shows a required checkbox where the buyer declares they purchased as a consumer; a business that cannot declare it self-excludes, and the declaration is stored with the request as proof. It is off by default. The r54b_show_consumer_check filter lets you decide per order (VIES validation, a customer-type field, etc.).
Yes. It is generated dynamically from your shop name, address and contact email, with an optional trader phone from settings. It appears as a collapsible block below the public form and has a printable view on the same page. Providing this model is a pre-contractual information obligation under Art. 6(1)(h) of Directive 2011/83/EU; the online function added by Directive 2023/2673 complements but does not replace it.
It is a SHA-256 hash computed from the request data (post ID, customer name, email, order reference, scope, order date and submission timestamp). The customer keeps the email as tamper-evident proof on a durable medium. If a dispute arises later, recompute the hash from the stored fields with the r54b_compute_receipt_hash() helper and confirm the original submission was not altered.
Each request is a private custom post type entry (r54b_richiesta), not publicly accessible from the frontend, managed under the top-level Recesso 54-bis menu. Because each request holds personal data (name, email, IP), you choose under Recesso 54-bis → Settings → Permissions which roles, besides the administrator, may view and manage them. The administrator always has access.
Yes. The plugin declares HPOS compatibility on load.
Yes. The form, shortcode, request log, email notifications, SHA-256 receipt hash, Annex I.B model and GDPR integration all run as a standalone tool under their own Recesso 54-bis menu. When WooCommerce is active, the plugin adds order/email validation, the My Account endpoint, the email notice, private order notes and the Article 16 product/category exclusions on top.
Yes. Under Recesso 54-bis → Settings you can set the sender ("From name" and "From address") and edit the body of the accepted, rejected and completed status emails; left empty, each falls back to the bundled default. All strings remain translatable through the text domain. Emails are sent in plain text.
Filters:
r54b_grace_days — extra days added to the advisory deadline.r54b_allowed_statuses — order statuses (without the wc- prefix) for which the button and email notice are offered.r54b_email_ids — WooCommerce email IDs where the withdrawal notice is injected (return an empty array to remove it).r54b_allow_unverified_order — return true to accept submissions whose order number cannot be matched to a real order.r54b_pre_resolve_wc_order — short-circuit the order resolver (return a WC_Order, false, or null to fall through).r54b_resolve_wc_order — late filter receiving the resolved order and the raw reference, for auditing or last-chance overrides.r54b_validation_result — the order/email validation result before the request proceeds; return valid => false with an error code to reject (e.g. a captcha integration).r54b_show_consumer_check — whether the "bought as a consumer" checkbox is shown, with the current field values.r54b_after_status_change — fires after a status change (individual or bulk). Arguments: request ID, new status, optional admin comment.r54b_after_form — fires inside the public form wrapper, right after </form>, so modules can inject content below the form. Used internally by the Annex I.B model form.r54b_form_before_submit — fires inside the form, right before the submit button, so an integrator can render a captcha/anti-spam widget or an extra field posted with the form.It covers the functional building blocks the directive imposes EU-wide from 19 June 2026: a discoverable digital withdrawal function, eligibility by order status with an advisory deadline flag, Article 16 exclusions with subcategory inheritance, durable-medium proof via the SHA-256 receipt hash, the Annex I.B model form and the checkout consent checkboxes for the Art. 16(m) and Art. 14(4)(a) exceptions, plus operational tooling such as the status lifecycle and native GDPR integration. Legal compliance ultimately depends on your business model, catalogue and jurisdiction; the plugin provides the technical building blocks, not legal advice — consult a consumer-law specialist for your specific case.
Yes. The plugin generates sample legal texts (the withdrawal page, Article 59 exclusion notices, checkout consents and emails) and reminds you to have them reviewed before publishing. Conformitico — the team behind this plugin, lawyers and technicians — offers professional review and tailoring of those texts, and drafts your Terms & Conditions to match. See Recesso 54-bis → Legal services in the admin. These are optional paid services; the plugin stays free and fully functional on its own.