EU Consumer Rights for WooCommerce – Guarantee Notice, GARAN Label, Withdrawal Button, Right to Repair, Omnibus Price & GPSR

Plugin Banner

EU Consumer Rights for WooCommerce – Guarantee Notice, GARAN Label, Withdrawal Button, Right to Repair, Omnibus Price & GPSR

by GaranLabs

Download
Description

Regulation (EU) 2025/1960 introduces a harmonised legal-guarantee notice and a durability label (GARAN) for goods sold to consumers in the EU. EU Legal-Guarantee Notice & GARAN Durability Label for WooCommerce adds both official graphics to your WooCommerce store — automatically on every product page, at checkout, and in order confirmation emails — in the official language of your choice, out of all 24 EU languages.

From 27 September 2026, every trader selling goods to consumers in the EU must display the harmonised notice on the legal guarantee of conformity, and must also show the GARAN durability label wherever the producer offers a free, whole-product durability guarantee of more than two years. Both designs are fixed by Commission Implementing Regulation (EU) 2025/1960 — the notice in Annex I, the label in Annex II.

Shops know these under their own national names. In Germany and Austria it is the notice on the gesetzliche Gewährleistung, and the label covers a gewerbliche Haltbarkeitsgarantie. In France it is the notice on the garantie légale de conformité, with the label for a garantie commerciale de durabilité. In Spain, the garantía legal de conformidad and the garantía comercial de durabilidad. In Italy, the garanzia legale di conformità and the garanzia commerciale di durabilità. In the Netherlands and Belgium, the wettelijke garantie and the commerciële duurzaamheidsgarantie. One Regulation and one set of official artworks sits behind all of them, and this plugin ships every language edition.

Everything below is 100% free. There is no Pro version, no license key, and no locked feature.

This plugin is a display helper. It shows the official harmonised graphics as intended by the Regulation. It does not provide legal advice and does not guarantee that your store is legally compliant — whether and how the rules apply to your business is for you (and, if needed, your legal advisor) to determine.

EU Legal-Guarantee Notice & GARAN Durability Label for WooCommerce is an independent WooCommerce plugin and is not affiliated with or endorsed by the European Union or the European Commission.

Features

EU Legal-Guarantee Notice (Annex I)

  • The official harmonised legal-guarantee notice, in all 24 EU languages, rendered from the Commission’s own artwork — not a re-creation.
  • Automatic placement on every WooCommerce product page, at 7 selectable positions (before the summary, under the product image, after the title, after the price, after the short description, after Add to cart, or near the tabs).
  • Three display modes: Popup (compact row that opens the full notice in a dialog), Full (the complete graphic shown inline) or Nested (a compact trigger that expands the full graphic in place).
  • Three trigger row styles — Minimal, Classic (teal “View” button), or Custom (plain clickable text with a shield icon) — each with your own trigger text (default “Your legal guarantee rights”, translated) and adjustable text size.
  • Adjustable maximum notice width, so the graphic sits comfortably in any theme.
  • Optional header notice: a “Your legal guarantee rights” link automatically added to your site’s navigation menu (desktop, tablet and mobile), with a hover preview and click-to-open modal — falls back to a standalone banner if no menu can be found.
  • Shows automatically on the Checkout page, under the “Checkout” heading — works with both the classic shortcode checkout and the WooCommerce block-based checkout.
  • Optional inclusion in WooCommerce order confirmation emails (processing, on-hold, completed, and customer invoice), in both HTML and plain-text format, customer-facing only (never the admin’s own copy) — choose between a full embedded graphic, a compact text line with a link, or the graphic sent as a real file attachment.
  • Click-to-open notice with a direct link to the matching Your Europe legal-guarantee information page for your selected language.
  • Manual placement anywhere via the [eu_guarantee_notice] shortcode or the “EU Guarantee Notice” Gutenberg block.
  • Works without WooCommerce: on any WordPress site selling goods, place the notice and the label with the shortcodes or blocks.
  • On Polylang and WPML sites, “Automatic” language follows the language each visitor is reading, with nothing to set up.
  • Optional “Powered by GARAN Labs” credit line.

GARAN Durability Label (Annex II)

  • Appears automatically for any product with a manufacturer guarantee of 3 years or more, configured in a dedicated “EU Guarantee” product data tab (duration in whole years, Brand/Trademark, Model identifier) — with inline help text on the eligibility threshold and a live label preview as you type.
  • Text-fit check: brand, model and duration are measured against the official label’s fixed layout, using the label’s own font. Anything too wide is flagged live in the editor and on save — and compressed on the label so it never runs into the QR code or the next field.
  • Variable product support: each variation can override the GARAN label from its own panel on the Variations tab (show/hide, duration, Brand/Trademark, Model identifier), with its own live preview — any field left blank uses the parent product’s value. On the product page the label switches as the shopper picks a variation, and cart, checkout, and order emails show each ordered variation’s own label.
  • Artwork-fit safeguards so long Brand/Trademark or Model text never breaks the label design: a 40-character cap enforced both in the editor (with a live counter) and on save, plus automatic font-shrinking with ellipsis truncation when the compact label graphic is rendered for order emails.
  • Rendered from vector SVG artwork, so it stays sharp at any size, with a site-wide adjustable badge width.
  • Same three display modes (Popup / Full / Nested) and the same 7 position choices as the notice, set independently per widget.
  • Shown at checkout (classic and block checkout) and on the classic Cart page, under each qualifying item’s thumbnail, with its own separate, smaller badge-width setting. Items carrying an identical label share one, instead of repeating it.
  • Optional inclusion in order confirmation emails (HTML and plain-text, customer-facing only), per qualifying product — a compact text line with a link, the full label graphic embedded directly (rendered server-side with the bundled font and template, no ImageMagick/librsvg required), or sent as a real file attachment.
  • Manual placement via the [eu_garan] shortcode (optionally overriding years/brand/model explicitly, e.g. [eu_garan years="5" brand="Acme" model="AC-1200"], which skips the eligibility check) or the “GARAN Label” Gutenberg block, with its own live preview in the editor.
  • Links through to the official Your Europe commercial-durability-guarantee information page.
  • Site-wide enable/disable toggle independent of per-product settings.
  • Vendor GARAN label image upload: if a manufacturer or vendor already supplies you with a ready-made GARAN durability label image for a product, upload it on the dedicated “Vendor GARAN Labels” admin page (under EU Guarantee & GARAN) — it then replaces the generated label everywhere it would normally show for that product: product page, checkout, cart, shortcode/block, and order-confirmation emails (link, embedded, and attachment formats alike). Qualifies the product on its own, with no need to also fill in its Duration/Brand/Model fields — a required “Duration (years)” field on the same page fills in the compact preview badge’s number.

  • The product’s EU Guarantee tab keeps the two guarantees apart: Legal guarantee (seller — by law) with an optional per-product legal guarantee period, and GARAN label — commercial durability guarantee (manufacturer) with the manufacturer’s duration, brand and model. The manufacturer’s duration never changes the legal guarantee period.

EU Order Withdrawal Button (Directive (EU) 2023/2673) — requires WooCommerce

  • A withdrawal form page (“Withdraw from contract”) is created as a draft with the [eggl_wd_order_withdrawal_request_form] shortcode — publish it to switch the withdrawal feature on.
  • Optional withdrawal button in the footer (shop pages only, or every page), and an optional “Withdraw from contract” link in the header menu (desktop and mobile, classic and block themes). Place the button anywhere else with [eggl_wd_order_withdrawal_button]. The button wording can be changed under Withdrawals Settings Button text.
  • My account integration: a “Withdraw” button next to each order that can still be withdrawn, in My account Orders and on the order’s own page.
  • Partial withdrawals: customers choose which items (and how many) to withdraw. Guests get a “Choose items” link in their confirmation email once their email matches the order.
  • Guest validation levels (none, order number or email, order must exist, order and email must match), plus built-in spam protection (honeypot field, submit-time check, IP limits).
  • Configurable withdrawal period (days from completion), non-refundable product types (virtual by default), mandatory form fields, and an optional “additional information” field.
  • Five emails: request received (customer), new request (admin), request confirmed, request rejected with reason (customer), and request deleted (admin) — all editable under WooCommerce Settings Emails.
  • Manage requests under EU Guarantee & GARAN Withdrawals Requests: confirm, reject or delete individually or in bulk, search, filter by status, preview. Requests also show on the WooCommerce order screen, with “Pending withdrawal” and “Withdrawn” order statuses.
  • Refunds on a confirmed withdrawal are linked to it automatically; withdrawn quantities are shown to the customer on their order.
  • Privacy tools: withdrawal data is included in WordPress personal-data export and erasure.
  • Independent of the standalone “EU Order Withdrawal Button for WooCommerce” plugin: it keeps its own requests, statuses, emails and settings, so both can be active at once. Theme template overrides go in woocommerce/eggl-withdrawal/.

Price History & EU Omnibus Lowest Price (Directive (EU) 2019/2161) — requires WooCommerce

  • Price recording: every price change on simple products and variations is saved automatically, including changes made through the REST API and product importers. Recording starts as soon as the plugin is active.
  • Lowest price: show the lowest price from the last 30 days next to products on sale, with your own wording ({lowest_price} placeholder), as the Omnibus Directive requires for announced price reductions.
  • Price history chart: an optional bar chart on the product page, with its own colours, width, title, date range and minimum number of prices before it appears. It can be hidden per product.
  • Anchor price (Croatian price rules): store a reference price and its date per product or variation and show it next to the current price; if you don’t enter one, it can be filled in from the recorded history.
  • Digital price list (Croatian price rules): publish current prices as a CSV at a public URL (default /price-list/) and via the REST API (/wp-json/eggl-price-history/v1/price-list), regenerated daily, with older versions kept for 30 days.
  • Price Compliance Manager: edit anchor prices for many products on one screen, or export and import them as CSV, with filters and SKU matching.
  • Product Price History tab: each product (and variation) lists its recorded prices, newest first, with the price, currency and the date and time it was recorded. Tick Hide to leave an entry out of the chart and the lowest-price calculation (for example a pricing mistake fixed within minutes); hidden entries are shown struck through. Recorded prices can’t be edited or deleted here, as they are the record behind the lowest price. The chart can also be hidden per product.
  • Settings under EU Guarantee & GARAN Price History; bulk editing under EU Guarantee & GARAN Price Compliance Manager.
  • Independent of the standalone “Product Price History for WooCommerce” plugin: it keeps its own price history table, settings and product data, so both can be active at once. History recorded by the standalone plugin is not imported.
  • Based on “Product Price History for WooCommerce” by Devnet (GPLv2 or later).

GPSR Product Safety Information (Regulation (EU) 2023/988), CE & UKCA — requires WooCommerce

  • A Product Safety (GPSR) tab in the WooCommerce Product data panel, with its own switch per section.
  • Manufacturer and responsible person (EU/UK) contact details: name, postal address, phone, email and website.
  • Warnings & safety information text.
  • Product documents from the Media Library (PDF, JPG or PNG): certificates of analysis and conformity, declaration of conformity, instructions for use, user manual, safety data sheet, installation instructions, troubleshooting guide and other documents.
  • Shown to shoppers in a “Product safety” tab on the product page, only for products where it is switched on and filled in.
  • Settings under EU Guarantee & GARAN Product Safety (GPSR): switch the whole feature on or off (product data is kept), and choose whether its product data is deleted when the plugin is deleted.
  • Independent of the standalone “Euverify- GPSR, CE & UKCA for WooCommerce” plugin: it keeps its own product data, so both can be active at once. Data entered in the standalone plugin is not imported. Based on that plugin by euverify.com (GPLv3 or later).

Right to Repair — Defect Claims (Directive (EU) 2024/1799) — requires WooCommerce

  • Defect claim form: a “Report a defect” page (created as a draft with the [eggl_repair_claim_form] shortcode — publish it to switch the form on). Customers pick the defective item(s) and quantity, describe the defect, optionally add photos, and choose repair or replacement — with the notice that choosing repair extends the legal guarantee by 12 months.
  • Guests and customers: logged-in customers choose the order from an Order dropdown and its claim form opens right below; guests find their order with order number + email. Contact details (email, first name, last name, phone) are pre-filled from the order. A “Report a defect” button appears in My account Orders next to every order with items still under the legal guarantee, and the order page lists its claims and any guarantee extensions.
  • Only what is still covered: physical items within the legal guarantee period can be claimed; virtual and downloadable items are left out, and an item with an open claim can’t be claimed twice.
  • Orders that can be claimed: choose the order statuses (any status in your store, including custom ones such as “Delivered”) under Right to Repair Settings. Completed is the default, as the legal guarantee covers goods the customer has received.
  • Legal guarantee period: a store default (2 years from delivery, adjustable for countries that give more), and an optional period per product or variation in its EU Guarantee tab — for example 12 months for used goods where the law allows it. The period is saved on each order line at purchase, so later product changes don’t affect what customers bought.
  • 12-month extension, automatically: mark a claim “Repaired” and each repaired item’s legal guarantee is extended by 12 months (adjustable upwards), saved on the order item, noted on the order and shown to the customer. Repeated repairs add up, and an extended item can be claimed for again until its new end date.
  • Claims management under EU Guarantee & GARAN Right to Repair: open/all/per-status views, search, claim details with photos, statuses Received, In progress, Repaired, Replaced, Refunded or price reduced and Rejected (a reason is required and sent to the customer), a history of every change, bulk actions, and a “Defect claims” box on the order screen.
  • Three emails, editable under WooCommerce …
  1. Install and activate the plugin. With WooCommerce, everything is placed automatically; without it, use the shortcodes or blocks.
  2. Go to the EU Guarantee & GARAN main menu.
  3. Choose your display language and save.
  4. The EU legal-guarantee notice now appears on your product pages. Set a manufacturer guarantee of 3+ years under a product’s Product data EU Guarantee tab to also show the GARAN durability label.
  5. Optionally turn on the header notice, checkout placement, and order-email content from the Display settings tab.
  6. For GPSR product safety information, open a product’s Product data Product Safety (GPSR) tab, fill in the details and switch on “Show Product Safety tab”.
  7. For price history and the EU Omnibus lowest price, go to EU Guarantee & GARAN Price History.
  8. For the right to repair, publish the “Report a defect” draft page under Pages, then review EU Guarantee & GARAN Right to Repair Settings (orders that can be claimed, legal guarantee period, notices, header menu).
  1. Legal Guarantee Notice (Annex I) preview.

    Legal Guarantee Notice (Annex I) preview.

  2. GARAN Durability Label (Annex II) preview.

    GARAN Durability Label (Annex II) preview.

  3. EU Order Withdrawal Button (Directive (EU) 2023/2673) preview.

    EU Order Withdrawal Button (Directive (EU) 2023/2673) preview.

  4. Price History & EU Omnibus Lowest Price (Directive (EU) 2019/2161) preview.

    Price History & EU Omnibus Lowest Price (Directive (EU) 2019/2161) preview.

  5. Right to Repair — Defect Claims (Directive (EU) 2024/1799) preview.

    Right to Repair — Defect Claims (Directive (EU) 2024/1799) preview.

  6. GPSR Product Safety Information (Regulation (EU) 2023/988), CE & UKCA preview.

    GPSR Product Safety Information (Regulation (EU) 2023/988), CE & UKCA preview.

  7. Legal Guarantee Notice (Annex I) settings.

    Legal Guarantee Notice (Annex I) settings.

  8. GARAN Durability Label (Annex II) settings.

    GARAN Durability Label (Annex II) settings.

  9. Display languages.

    Display languages.

  10. Advanced settings.

    Advanced settings.

  11. Upload a vendor label for a product

    Upload a vendor label for a product

  12. Withdrawal admin Settings

    Withdrawal admin Settings

  13. Withdrawal requests handling area

    Withdrawal requests handling area

Does this make my store legally compliant?

No. The plugin only displays the official harmonised graphics. Whether the Regulation applies to you and how to comply is your responsibility; consult a professional for legal questions.

Which languages are supported?

All 24 official EU languages. The official notice graphic is shown in the language you select in the plugin’s settings.

Does it require WooCommerce?

No. With WooCommerce, the notice and label are placed automatically on product pages, the cart, the checkout and order emails, and each product gets its own GARAN fields. Without WooCommerce, place them yourself with the [eu_guarantee_notice] and [eu_garan years="5" brand="Acme" model="AC-1200"] shortcodes, the matching blocks, or the header notice.

Does it work with Polylang or WPML?

Yes. Leave the display language on “Automatic” and the notice follows the language of the page each visitor is reading.

How do I know the notice is really showing?

Open Tools Site Health, or the plugin’s settings page: both say in plain words whether the notice and the label are being shown, where, and what to change if not.

Does it send any customer data anywhere?

No. The notice and label are static graphics rendered locally by your own server; the plugin does not call out to any external service and requires no account or license key.

Can I show the notice or label somewhere other than the automatic product-page position?

Yes — use the [eu_guarantee_notice] and [eu_garan] shortcodes, or the matching “EU Guarantee Notice” and “GARAN Label” Gutenberg blocks, anywhere in your content.

Can shoppers see the notice and label at checkout?

Yes, both can be shown on the checkout page (classic and block checkout), and the GARAN label also appears on the classic Cart page.

Can I include these in order confirmation emails?

Yes. Turn on “Order confirmation email” for either the notice or the GARAN label, then choose how it’s delivered: a compact text line with a link, the full graphic embedded in the email body, or the graphic sent as a file attachment.

Is there a paid/Pro version?

No. Every feature in this plugin is free and fully functional.

Is this an official EU plugin?

No. It’s an independent WooCommerce plugin that displays the Commission’s own harmonised artwork; it is not affiliated with or endorsed by the European Union or the European Commission.

What stops the Brand/Trademark or Model text from breaking the label design?

Each field is measured against the space the official label leaves for it, using the label’s own font. Text that won’t fit is flagged in the product editor as you type and after saving (for every variation too), and is compressed on the label so it never overlaps the QR code or the next field. Fields are also capped at 40 characters.

Can I use my own label image instead of the generated one?

Yes. If a manufacturer or vendor already supplies a ready-made GARAN label graphic for a product, upload it on the “Vendor GARAN Labels” admin page (search for the product, pick the image). It then replaces the generated label everywhere for that product — product page, checkout, cart, and order emails — until you remove it.

Does it include an order withdrawal button (Directive (EU) 2023/2673)?

Yes, with WooCommerce. A “Withdraw from contract” page (slug contract-withdrawal) with the [eggl_wd_order_withdrawal_request_form] shortcode is created as a draft; once published, a withdrawal button appears in the shop footer (or place it with [eggl_wd_order_withdrawal_button]). Manage requests and settings under EU Guarantee & GARAN Withdrawals. It is independent of the standalone “EU Order Withdrawal Button for WooCommerce” plugin (own requests, statuses, emails and settings), so both can be active at once.Theme template overrides go in woocommerce/eggl-withdrawal/.

Does it show the EU Omnibus “lowest price in the last 30 days”?

Yes, with WooCommerce. Every price change is recorded from the moment the plugin is active, and the lowest price from the 30 days before a discount can be shown next to products on sale. Switch it on under EU Guarantee & GARAN Price History Price Compliance Lowest Price. Only changes made after activation are known, so a new install needs some history before the lowest price is meaningful. The module also offers a price history chart, anchor price and digital price list.

Does it show GPSR product safety information (Regulation (EU) 2023/988)?

Yes, with WooCommerce. Each product gets a “Product Safety (GPSR)” tab in its product data box for the manufacturer, the EU/UK responsible person, warnings and safety information, and product documents (declaration of conformity, user manual, safety data sheet and more). Switch on “Show Product Safety tab” on the product and the details appear in a “Product safety” tab on its product page. The feature can be switched off site-wide under EU Guarantee & GARAN Product Safety (GPSR), where you can also choose to delete this data when the plugin is deleted.

Does it handle the right to repair (Directive (EU) 2024/1799)?

Yes, with WooCommerce. Publish the “Report a defect” page (EU Guarantee & GARAN Right to Repair Settings shows a link to it) and customers can report a defect for items still under the legal guarantee and choose repair or replacement. You handle the claims under Right to Repair Claims; marking a claim “Repaired” extends that item’s legal guarantee by 12 months and emails the customer the new end date. Claims are kept when the plugin is deleted, like withdrawal requests.

How long is the legal guarantee, and can it differ per product?

The store default is set under Right to Repair Settings (at least 2 years in the EU; some countries give more). A product can have its own period in its EU Guarantee tab — for example 12 months for used goods where your country allows a shorter period, or longer where the period depends on the product’s expected lifespan (Netherlands, Finland). This is the seller’s legal guarantee; the manufacturer’s commercial guarantee for the GARAN label is a separate field and doesn’t change it.

Which orders can customers report a defect for?

Orders with a status you choose under Right to Repair Settings Orders that can be claimed — Completed by default. Only physical items still inside their legal guarantee period (plus any repair extensions) can be claimed.

Simple, Reliable, and Essential for EU Compliance

By sam (samsonic89) on October 2, 2026

Setting up compliance features for European e-commerce regulations can often be frustrating, but this plugin makes the entire process remarkably straightforward. It handles the requirements of Regulation (EU) 2025/1960 by placing official legal guarantee notices and GARAN durability labels directly where customers need to see them—on product pages, at checkout, and in order confirmation emails.

What stands out most is how flexible and well-designed the integration is. You can choose between different display styles, such as popup, nested, or full views, so the notices fit naturally with your existing theme without ruining the design. It automatically supports all 24 official EU languages and integrates smoothly with WPML and Polylang to show the correct language to each visitor. Managing specific details for product variations or uploading custom vendor label images is equally hassle-free. Additionally, the recently added withdrawal button feature is a very useful touch that makes handling cancellation rights even more convenient for shoppers.

From a technical standpoint, the plugin is lightweight and runs entirely on your own server. It makes no outbound API calls, sends no customer data elsewhere, and requires no account setup or license keys. The built-in Site Health checks are also a helpful touch, confirming that your notices are actively displaying correctly.

It is rare to find a plugin that is completely free, easy to configure, and fully functional without any hidden paid tiers. Highly recommended for any WooCommerce store selling to customers in the EU. Many thanks to the development team for creating such a solid, reliable tool and offering it for free!

Best GARAN plugin

By ucsendre on September 30, 2026

The plugin is easy to set up and configure. The localised version is loaded automatically. Has all options you could possibly need to customise the forn-end output. Support is fast and helpful. Great plugin!

Easy to set up and works well

By razvang95 on September 29, 2026

Very easy and quick to set up. Everything works as expected and the settings are straightforward.

The only small issue I had was with my custom WooCommerce product page template, so the notice wasn’t displayed automatically. I added the provided shortcode manually to my product template and it worked perfectly.

Overall, a simple and useful plugin.

Highly Recommended!

By joeklement on September 18, 2026

The labels look good, and the layout is easy to adjust. It also picked up my site’s language automatically. Really happy with it!

Does exactly what I needed!

By regansp on September 1, 2026

Easy to set up and use, with a clean way to add the EU guarantee notice and GPSR information to WooCommerce products. The compliance audit is a really useful touch. Simple and practical plugin.

2.1.0

  • New: price history for WooCommerce products — every price change is recorded, with a per-product history in the Product Price History tab (review entries, newest first, and hide individual ones).
  • New: EU Omnibus “lowest price in the last 30 days” next to sale prices, with custom wording.
  • New: optional price history chart on the product page.
  • New: anchor price, digital price list (public CSV + REST API) and the Price Compliance Manager (bulk edit, CSV import/export) for Croatian price rules.
  • New: EU Guarantee & GARAN Price History and Price Compliance Manager screens.
  • The price history module runs independently of the standalone “Product Price History for WooCommerce” plugin; both can be active at the same time.
  • New: GPSR product safety information (Regulation (EU) 2023/988) — manufacturer, EU/UK responsible person, warnings and product documents per product, shown in a “Product safety” tab on the product page, with a global on/off switch and delete-on-uninstall option under EU Guarantee & GARAN Product Safety (GPSR). Runs independently of the standalone “Euverify- GPSR, CE & UKCA for WooCommerce” plugin.
  • Translations for the new price history and GPSR screens in all 23 bundled languages.
  • New: right to repair (Directive (EU) 2024/1799) — defect claim form with repair-or-replacement choice and photos, “Report a defect” in My account, claims management under EU Guarantee & GARAN Right to Repair, three claim emails, and the automatic 12-month legal guarantee extension when a claim is marked “Repaired”.
  • New: “Your right to repair” notice in all 24 EU languages — on the claim form, optionally on product pages and in order emails, and via [eu_repair_notice]. On product pages it is a compact row showing the product’s legal guarantee period.
  • New: Right to Repair settings for the order statuses that can be claimed (Completed by default) and an optional “Report a defect” link in the header menu.
  • New: optional legal guarantee period per product and variation (EU Guarantee tab), saved on each order line at purchase. The EU Guarantee tab now separates the seller’s legal guarantee from the manufacturer’s commercial guarantee (GARAN).
  • The claim form uses WooCommerce’s field markup and the theme’s buttons, with an Order dropdown for logged-in customers and first/last name fields.
  • Improved: the Product Price History tab now shows a readable table (price, currency, date and time; newest first), and leftover upgrade badges and non-working controls from the original price history plugin were removed.
  • Fixed: spacing between order action buttons in My account Orders when “Report a defect” wraps to a new line.

2.0.0

  • New: EU order withdrawal button (Directive (EU) 2023/2673) for WooCommerce stores, managed under EU Guarantee & GARAN Withdrawals (Settings and Requests tabs).
  • New: withdrawal form page and shortcodes [eggl_wd_order_withdrawal_request_form] and [eggl_wd_order_withdrawal_button].
  • New: optional withdrawal button in the footer and optional “Withdraw from contract” link in the header menu.
  • New: “Button text” setting to change the wording of the withdrawal button and header link (defaults to “Withdraw from contract” in each visitor’s language).
  • New: “Withdraw” button in My account for orders that can still be withdrawn.
  • New: partial withdrawals — customers and verified guests choose the items to withdraw.
  • The order list on the withdrawal form only shows orders that can still be withdrawn (within the withdrawal period, with items left).
  • New: five withdrawal emails, “Pending withdrawal” and “Withdrawn” order statuses, and withdrawal details on the order screen.
  • New: withdrawal requests list with confirm, reject, delete, bulk actions and search. Rejecting opens a popup for the reason that is sent to the customer.
  • New: withdrawal data in WordPress personal-data export and erasure.
  • New: a one-time admin notice introducing the withdrawal feature, with a link to its settings.
  • The withdrawal module runs independently of the standalone “EU Order Withdrawal Button for WooCommerce” plugin; both can be active at the same time.
  • Declared compatibility with WooCommerce High-Performance Order Storage and the block-based cart and checkout.
  • License is now GPLv3 or later, as the withdrawal module is based on GPLv3 code.

1.9.4

  • “Duration (years)” is now required when saving a vendor GARAN label image.
  • The trigger text now applies to every notice row style (Minimal, Classic and Custom), and defaults to “Your legal guarantee rights” in the store’s language.
  • The trigger text size now applies to every notice row style.
  • The notice and the GARAN label now default to the Nested display mode.
  • Added a “Notice width” setting for the notice’s maximum width on the product page.
  • Added Site Health checks and a status panel on the settings page, saying whether the notice and the GARAN label are actually being shown and what to change if not.
  • Added a text-fit check for GARAN labels: over-long brand, model or duration is flagged live in the editor and after saving, and compressed on the label so it never overlaps the QR code.
  • Items with an identical GARAN label now share one label at checkout, on the cart page and in order emails.
  • The plugin now works without WooCommerce, using the shortcodes, blocks and header notice.
  • On Polylang and WPML sites, the “Automatic” language now follows the language each visitor is reading.
  • Order-email GARAN images are now drawn in the browser on servers without PHP’s GD extension.
  • Added a welcome notice after activation, and an occasional request for a review.

1.9.3

  • Added GARAN label support for product variations: per-variation show/hide, duration, Brand/Trademark and Model identifier fields with a live preview, inheriting the parent product’s values when left blank.
  • The product-page label now switches to the selected variation’s label.
  • Fixed the GARAN label missing from order emails (and their label links) for variation items; cart and checkout now use each variation’s own label.
  • Vendor GARAN label images can now be assigned to individual variations, and a parent product’s image applies to its variations.
  • Removed the producer-confirmation checkbox from the EU Guarantee tab — a product now qualifies with “Show GARAN label” on and a duration of 3 years or more.

1.9.2

  • Automatic translation added
  • Minor Bug Fixes.

1.9.1

  • Tested for compatibility with WooCommerce 11.1.0
  • Tested for compatibility with WordPress 7.1
  • Minor Bug Fixes.

1.9.0

  • Added a “Vendor GARAN Labels” admin page (under EU Guarantee & GARAN) to upload a manufacturer/vendor-supplied GARAN label image for a specific product — it then takes over from the generated label everywhere it would normally show: product page, checkout, cart, shortcode/block, and all three order-confirmation email formats. A vendor image qualifies the product on its own, without also requiring its Duration/confirmation fields to be filled in, and an optional “Duration (years)” field on the same page fills in the compact preview badge’s number independently of that product-level workflow.

1.8.0

  • Added an “Attachment” email content option for both the legal-guarantee notice and the GARAN label — sends the graphic to the customer as a real file attachment on order confirmation emails, instead of embedding or linking it.
  • The notice’s compact trigger row now shows just the notice title, without the “at least 2 years” sub-line.
  • The “Guarantee duration” product field’s minimum is now 3 years, matching the label’s own eligibility threshold.
  • Changed the plugin’s main admin menu icon to a shield.

1.7.1

  • Fixed the “Under the product image” position to render inside the product gallery itself (right after the thumbnails, inside .woocommerce-product-gallery__wrapper) instead of just above the summary column.

1.7.0

  • Added a new position choice, “Under the product image”, for both the notice and the GARAN label position settings — places the widget right below the product gallery, above the title/summary column.

1.6.1

  • The GARAN label’s Popup mode trigger is now the compact GARAN badge (years | GARAN ✓ | EU shield) instead of a plain text row — clicking it still opens the same dialog with the full label.

1.6.0

  • Split the “Display mode” setting into two independent settings — “Notice display mode” and “GARAN label display mode” — so each can be set to Popup, Full or Nested on its own. Sites that already set the old shared display mode keep that choice until either new setting is changed.

1.5.0

  • Added a third Display mode: “Nested” — a compact trigger (the GARAN badge for the label, the existing summary row for the notice) that expands the full graphic in place when clicked, instead of opening a dialog or always showing the full graphic.
  • Fixed a possible colour mix-up when the label’s SVG markup is rendered more than once on the same page (e.g. the nested badge and its expanded panel together): the source files’ CSS classes weren’t scoped per instance, so two copies could repaint each other’s shapes with the wrong colour. Classes are now namespaced the same way the QR code’s clip-paths already were.

1.4.0

  • The GARAN durability label now renders from a vector SVG (assets/official/garan-full.svg) instead of a flattened raster image, so Brand/Trademark, Model identifier and the guarantee-duration number are set directly on the real design text — sharper at any size, and pixel-perfect alignment in both the admin preview and the storefront.
  • Fixed a possible ID collision in the label’s QR code artwork when the label markup is rendered more than once on the same page (e.g. a quick-view modal open alongside the main product).

1.3.0

  • The legal-guarantee notice and the GARAN label are now independent widgets: each has its own position on the product page (before the summary, after the title, after the price, after the short description, after Add to cart, or after the summary near the tabs).
  • Added a “Display mode” setting: Popup (compact summary that opens the full graphic in a dialog, the previous behaviour) or Full (the full graphic shown directly on the page, no click required). Applies to both the notice and the label.

1.2.0

  • Added site-wide toggles on the Display settings tab to enable/disable the legal-guarantee notice and the GARAN durability label independently, across the whole store, regardless of per-product settings.

1.1.0

  • Redesigned the “EU Guarantee” product data tab: a “Show GARAN label” toggle, guarantee duration in whole years, Brand/Trademark and Model identifier fields (with a live label preview), and a single combined producer-confirmation checkbox.
  • The GARAN label now shows the Brand/Trademark and Model identifier you enter per product, falling back to the product’s brand attribute/name when left blank.

1.0.0

  • Initial release: EU legal-guarantee notice (Annex I) in 24 languages and the GARAN durability label (Annex II), with a tabbed-modal product-page widget and a dedicated product data tab for guarantee fields.
Back to top