Directory / plugin
OtkazPro – Withdrawal Button for WooCommerce
v2.1.0 · by Project Yordanov
The online “withdraw from the contract” button and form required by EU Directive 2023/2673 – for WooCommerce stores in Bulgaria and the EU.
About this plugin
Since 2026, online shops in the EU must let consumers withdraw from a distance contract through an easily accessible online function (EU Directive 2023/2673; in Bulgaria Art. 52a of the Consumer Protection Act, in force since 24 September 2026). OtkazPro adds exactly that to WooCommerce – without forcing the customer to log in or give a reason.
For the customer – two clicks
- A clearly labelled “Withdraw from the contract here” button: in order emails, in My account Orders, and on a dedicated page you can link from the footer.
- Guests find their order with the order number + email; links from emails open the order directly.
- All eligible products are pre-selected; the customer can untick products or lower quantities (partial withdrawal), then clicks “Confirm withdrawal”.
- A confirmation with the statement number, date, time, products and the full text of the statement is emailed immediately (durable medium).
For the shop
- Register of all statements (WooCommerce Withdrawals) with filters, CSV export, IP and user agent as evidence, and “Resend confirmation”.
- Refund deadline tracking: every statement shows how many days are left of the 14-day refund deadline. A daily email reminds the store of withdrawals whose deadline is near or past, and a withdrawal is marked as processed automatically when you refund the order.
- “Prepare refund” opens the order with the WooCommerce refund form already filled in with the products and quantities of the statement – you check the amount and confirm the refund.
- Order note, order meta box, badge in the orders list and an indicative “in time / late” marker (the form itself never closes).
- Store notification email with a link to the order.
- Products, variations or categories can be marked as excluded from the right of withdrawal (e.g. personalised or perishable goods) – soft mode (selectable with a warning) or strict mode. Optional storefront label in product, cart and checkout pages (classic and block checkout).
- Optional custom order status “Withdrawal requested”.
Built to keep working
- Works with any theme (shortcode
[otkazpro]), page builders such as Elementor, classic and block themes. - If the form page is missing or unpublished, links automatically fall back to a built-in page, so the function never disappears.
- Sends “do not cache” signals to page caches and CDNs and checks itself whether the form page is cached (WooCommerce settings and Tools Site Health).
- Adds the withdrawal link to order emails even when an email template plugin replaces the WooCommerce templates.
- HPOS compatible, WPML / Polylang ready, accessible (keyboard, screen readers), works without JavaScript.
- GDPR: personal data exporter, retention period with automatic deletion, privacy policy text suggestion.
Languages: English. Translations, including Bulgarian, are delivered automatically through translate.wordpress.org.
This plugin does not provide legal advice. Your terms and conditions and the information on the right of withdrawal remain your responsibility.