Zen Cart Logo
Forums / All Other Contributions/Addons / EU Withdrawal Button [Support Thread]

EU Withdrawal Button [Support Thread]

Views: 12

Results 1 to 1 of 1
5 Oct 2026, 9:24 AM
#1
dbltoe avatar

dbltoe

Totally Zenned

Join Date:
Jan 2004
Location:
N of San Antonio TX
Posts:
9,829
Plugin Contributions:
17

EU Withdrawal Button [Support Thread]

EU Withdrawal Button v1.0.0: the withdrawal function EU law requires from 19 June 2026, for Zen Cart 1.5.8 through 3.0.0, as an encapsulated plugin

GitHub: https://github.com/dbltoe/EU_Withdrawal_Button

Download: https://github.com/dbltoe/EU_Withdrawal_Button/releases/tag/v1.0.0 (also free at https://myzencartzone.com/index.php?main_page=product_info&products_id=40)

Zen Cart: 1.5.8a, 2.0.x, 2.1.0, 2.2.x, 2.3.x and 3.0.0, one package

PHP: 7.4 through 8.5

License: GPL-2.0

Why it's needed

From 19 June 2026, Article 11a of the Consumer Rights Directive (added by Directive (EU) 2023/2673) requires a store selling online to consumers in the EU to offer a withdrawal function: a clearly labeled "withdraw from contract here" button, a short form, a "confirm withdrawal" step, and an acknowledgment of receipt on a durable medium with the date and time. As discussed in the EU Withdrawal Button thread earlier this year, Zen Cart had nothing for it.

What it does

  • Adds a Withdraw From Contract Here button to the footer of every page, with no template edits.
  • The withdrawal page needs no account: name, order and email, then a review screen with the Confirm Withdrawal button. A logged-in customer's details are filled in and they pick from their recent orders; the button on an order's page opens the form for that order.
  • The moment the customer confirms, they're emailed an acknowledgment of receipt with their statement and the date and time it was sent, and the store gets a notice with reply-to set to the customer. Both go out after the statement is saved, so a mail failure loses nothing, and a failed acknowledgment can be sent again from the admin.
  • A statement is never refused. One that doesn't match an order is saved and flagged for you to look at.
  • A matched order gets a note in its history that the customer doesn't see, and can move to an order status you choose.
  • Customers > Withdrawals in the admin lists every statement with its status, a staff note and a Send Acknowledgment button.
  • A spam trap holds suspicious statements, emailing nobody, until you release them.
  • The two labels the law fixes come word for word in English, Dutch, Finnish, French, German, Italian and Spanish.
  • Show Withdrawal Button To can be All Visitors (the default) or Selected Countries (the EU plus Iceland, Liechtenstein and Norway), so a store outside the EU can show it only to customers there.
  • Both emails are previewable in the free Preview Email plugin, built by the same code that sends them.

Encapsulated. One folder under zc_plugins/, installed from Plugin Manager. No core or template file is changed.

Installing

  1. Upload zc_plugins/EuWithdrawalButton/ so it lands at <store root>/zc_plugins/EuWithdrawalButton/v1.0.0/.
  2. Admin > Modules > Plugin Manager > EU Withdrawal Button > Install.
  3. In Configuration > EU Withdrawal Button, set Store Time Zone (for example Europe/Berlin). Left blank, the acknowledgment uses PHP's own time zone, which on most hosting servers is UTC.
  4. Look over the other settings. Everything else works as installed.

What it doesn't decide

The acknowledgment confirms receipt, not acceptance. Whether a withdrawal is valid, and whether customers outside the EU have the right at all, is a question for your own legal advisor; the plugin records and acknowledges, it doesn't decide.

The full documentation (readme.html) is inside the plugin and linked from the Plugin Manager panel.

Reporting a problem

Please include your Zen Cart and PHP versions, your template, and what you saw. If an email didn't arrive, open the statement in Customers > Withdrawals: it shows whether the acknowledgment was sent, and why not if it wasn't. For anything else, look in logs/ for a myDEBUG- file from that moment and attach it.

Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com