Description
From 27 September 2026, Commission Implementing Regulation (EU) 2025/1960 requires online sellers in the EU to prominently display a harmonised notice reminding consumers of their statutory legal guarantee — before they complete a purchase.
market-it! EU Guarantee Notice for WooCommerce places the official EU notice on your store for you: the right language, in a place you choose, presented the way the Commission’s own practical guidelines show it — without you redesigning or editing the artwork yourself.
This plugin displays the general legal-guarantee notice only. It does not cover the separate, optional GARAN durability label, which only applies if you voluntarily offer a commercial guarantee of more than two years covering the whole product at no extra cost.
Requires WooCommerce (WooCommerce 8.0 or later; tested up to 11.0).
Key features
- Ships the official EU notice artwork, colour version, for all 24 official EU languages — nothing is redrawn, recoloured or edited
- Fully automatic per-locale display: the right notice image and the right “Your Europe” link are chosen for the visitor’s language with no setup required
- Popup display by default: a short link reveals the full notice on click, matching the guidelines’ product-page and checkout examples
- Popup trigger text is translated automatically too (English, German, Swedish, Spanish, French, with English as the fallback for other languages) — or override it with your own wording, shown as-is to every visitor
- “Always visible” display mode for placements where a popup doesn’t fit (e.g. templates you use for order confirmation emails)
- Automatic placement on the product page, checkout, and/or the WooCommerce content area — check as many as you like
[miegn_guarantee_notice]shortcode for placing it anywhere else (page builders, widgets, the site header/footer, specific templates)- Language detection (Polylang, WPML, and site locale), with a configurable fallback for the rare visitor whose language can’t be determined at all
- Notice links to the exact “Your Europe” page for the visitor’s language — the same destination required for the QR code, sourced from the Commission’s published URL list
- No customer or order data is read, stored or transmitted by this plugin
How the notice is shown
The European Commission’s practical guidelines illustrate the harmonised notice appearing behind a short sentence such as “Your legal guarantee rights”, revealed on the first click or mouse roll-over. This plugin’s default Popup display mode reproduces exactly that pattern: a text trigger, styled like any other link on your site, and the full official notice image in a dismissible, centered dialog (closes on its own close button, on clicking outside, or on Escape).
Switch to Always visible under WooCommerce EU Guarantee Notice if you’d rather the full notice image appear directly wherever it’s placed — this is also the only sensible option for content that can’t run JavaScript, such as an order confirmation email template.
Placement
Configure automatic placement under WooCommerce EU Guarantee Notice — check as many as you like, they can all be active together:
- Product page (after Add to Cart)
- WooCommerce content area (single product + shop loop)
- Checkout, before Place Order
Leave all three unchecked and the notice only appears where you place the shortcode yourself.
There’s no automatic “site header” or “site footer” option, deliberately: those are regions your theme or page builder generates itself, and this plugin has no reliable way to detect where inside them a plugin-injected block of markup will actually land — depending on the builder, it can end up outside the area’s own styling and layout entirely. The shortcode doesn’t have that problem: use [miegn_guarantee_notice] anywhere — a header or footer template, a page builder’s own layout, widgets, an order confirmation email template — and it renders exactly where you put it.
Checkout works automatically either way your store is set up: on the classic checkout template, and on the newer WooCommerce Checkout block — each is detected and handled by its own mechanism, so switching between them (or a WooCommerce update changing the default) doesn’t silently break it. If your checkout is instead built with a page builder that reconstructs the checkout outside WooCommerce’s own template/block, verify the notice appears there the same way you would for header/footer; the shortcode remains the dependable fallback if it doesn’t.
For an order confirmation email template — which can’t run JavaScript, so use Always visible — add [miegn_guarantee_notice] to the template yourself, or call MIEGN_Notice::instance()->render() from a woocommerce_email_* hook.
Language handling
The plugin bundles the official notice for all 24 EU languages and shows it fully automatically: it detects the visitor’s language (Polylang or WPML if active, otherwise the site locale), shows the matching notice image, and links it to that language’s official “Your Europe” guarantee-information page. Nothing needs configuring for this to cover every official EU language. The “Default / fallback language” setting only matters on the rare request where a visitor’s language can’t be determined at all.
The trigger link (shown when “Display” is set to Popup) is automatic too, by default. The plugin ships its own translation of the trigger text — English, German, Swedish, Spanish and French, see /languages — and shows the one matching the notice’s language, independently of the site’s own admin locale and without needing Polylang or WPML for this specific piece of text. Every other supported notice language falls back to the English wording.
If you’d rather every visitor see the exact same wording — in one language, worded your way — type your own text under WooCommerce EU Guarantee Notice, “Trigger link text”: whatever you type there is shown verbatim to every visitor, in every language, instead of the automatic translation. Leave it blank to keep the automatic behaviour. Developers who want the automatic default translated into additional languages, or an override that varies by language itself, can use the miegn_trigger_text filter, which receives the notice’s resolved language code.
Source of the bundled artwork and links
The notice images and the per-language link destinations are taken, unmodified, from the European Commission’s “Practical guidelines for sellers and producers on the EU harmonised notice and label for product guarantees” and its accompanying high-resolution vector file download:
https://commission.europa.eu/publications/high-resolution-vector-files-eu-notice-and-label-product-guarantees_en
© European Union. Reused under the Commission’s default document reuse policy (Commission Decision of 12 December 2011, equivalent to Creative Commons Attribution 4.0), which permits redistribution — including in commercial software — provided the source is credited, as it is here.
WooCommerce® is a registered trademark of Automattic Inc. This plugin is an independent, third-party extension and is not affiliated with, endorsed by, or sponsored by Automattic or the WooCommerce project.
Privacy
This plugin does not process any personal or order data. It renders a static notice image and a link to an EU information page; nothing is stored, logged, or sent to market-it! or any other external service.
Legal disclaimer
market-it! EU Guarantee Notice is a software tool designed to help WooCommerce merchants display the official EU legal-guarantee notice. It is provided for informational and operational purposes only and does not constitute legal advice. Merchants remain responsible for ensuring that their website and business processes comply with all applicable laws in their jurisdiction, including confirming the notice artwork, placement, and link destination remain current.
Legal requirements may vary between countries and may change over time. Seek advice from a qualified legal professional where needed.
market-it! does not guarantee legal compliance and accepts no responsibility for how the plugin is configured, implemented, or used.
Screenshots



Installation
- Upload the plugin folder to
/wp-content/plugins/(WooCommerce must already be active). - Activate market-it! EU Guarantee Notice for WooCommerce.
- Go to WooCommerce EU Guarantee Notice and check the placement(s) you want, choose a display mode, and (if using Popup) optionally write your own trigger link text.
- If you trade in a language outside the EU’s 24 official ones, add the matching official SVG to
assets/notice/(see “Source of the bundled artwork and links” above).
FAQ
-
Does this plugin cover the GARAN durability label?
-
No. It displays the general legal-guarantee notice required for all sellers. The durability label only applies if you voluntarily offer a guarantee of more than two years on the whole product at no extra cost, and is out of scope for this plugin.
-
Does the plugin store any customer data?
-
No. It only renders a static notice image and link; no personal or order data is read, stored, or transmitted.
-
Can I edit the notice image?
-
No — and you shouldn’t. The regulation requires the official artwork to be used unmodified. The plugin only controls where, how (popup or always visible), and in which language it appears.
-
Why a popup instead of just showing the notice everywhere?
-
That’s the pattern shown in the European Commission’s own guidelines — a short link that reveals the full notice on click, rather than a large image inserted permanently into every page. You can switch to “Always visible” in settings if you prefer the notice shown directly.
-
Those regions are generated by your theme or page builder, not by WooCommerce, so there’s no reliable, universal hook this plugin can use that’s guaranteed to land inside the area’s own styling — on some page builders it can render outside the container entirely. Use the
[miegn_guarantee_notice]shortcode in your header/footer template or builder instead; it always renders exactly where it’s placed. -
Does it support multilingual sites?
-
Yes. It detects Polylang and WPML if active, otherwise the site locale, with a configurable fallback language.
-
Is this plugin legal advice?
-
No. It is a software tool for displaying the official notice. You remain responsible for confirming the artwork, placement and link destination continue to meet the regulation.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“market-it! EU Guarantee Notice for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “market-it! EU Guarantee Notice for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- First stable public release.
0.9.1
- Fixed: on a site whose own locale matches the notice’s resolved language (e.g. a Swedish site showing the Swedish notice), the popup trigger link text (“Your legal guarantee rights”) showed in English instead of that language. Since this plugin no longer bundles a
/languagestranslation catalog of its own (see the 0.9.0 entry below), there was nothing for WordPress’s standard translation lookup to find in that case, and it silently fell back to the untranslated English source instead of using this plugin’s own bundled translation underincludes/i18n/. The notice image and its link were never affected by this — only the trigger link text.
0.9.0
- Renamed to “market-it! EU Guarantee Notice for WooCommerce” (slug:
market-it-eu-guarantee-notice-for-woocommerce) per WordPress.org review feedback — the previous slug exceeded the 50-character limit. No functional change; existing settings are unaffected since option names didn’t change. - No longer ships compiled translation files in
/languages— those are managed by WordPress.org’s own translation platform once approved. The small set of bundled translations this plugin needs for its own cross-language trigger-text feature (showing “Your legal guarantee rights” correctly even when the notice’s language differs from the site’s own locale) now live underincludes/i18n/instead, where they can’t be confused with or overwritten by the site-locale translations WordPress.org provides. - Fixed the declared Plugin URI, which pointed at a page that didn’t exist yet.
0.8.2
- Pre-submission housekeeping for the WordPress.org directory: updated “WC tested up to” from 10.7 to 11.0 (the current WooCommerce release), and added an explicit source-license credit for the bundled EU artwork and the required WooCommerce trademark disclaimer. No functional change.
0.8.1
- Fixed the popup rendering behind the site header specifically on the block-based Checkout (other pages were unaffected). That page is more JS-driven than a typical page, so the one-time-on-load fix that keeps the dialog above everything else could be undone afterwards by other things the page adds or moves later. The dialog now re-asserts its position as the last element on the page right when it’s actually opened, not just once up front.
0.8.0
- Checkout placement now also works automatically on the newer WooCommerce Checkout block, not just the classic checkout template. WooCommerce doesn’t fire the classic hook this plugin relied on when the block-based checkout is used, and provides no direct equivalent for “right before the submit button” — this adds a second mechanism, specific to the block checkout, that inserts the notice into the block containing the “Place order” button. Both mechanisms are wired up together and only the one matching your actual checkout ever fires, so nothing renders twice.
0.7.6
- No functional change. Ran the full WordPress.org coding standard (PHPCS + WPCS, the same rules Plugin Check uses) against the plugin using the same ruleset as our other market-it! plugins; fixed one minor style issue it found (a non-Yoda comparison).
0.7.5
- Fixed the popup needing to scroll to see the whole notice on typical laptop-height screens. The dialog card has always had a
max-height: 92vhceiling so it can never run off the bottom of the screen — the notice image itself now shrinks to fit inside that ceiling (keeping its proportions), instead of staying full-size and forcing the card to scroll internally to reach the bottom of it.
0.7.4
- The popup dialog now sizes itself to the notice image’s own width (an A4 page, roughly 595px) instead of a fixed 760px. The fixed width was a guess from 0.7.1 and, since the image is narrower than that, it was leaving blank space beside the notice. Sizing to content removes that gap; the dialog still can’t exceed the screen width on small devices.
0.7.3
- Fixed the close (×) button appearing clipped/stuck in the corner of the dialog: it was positioned partly outside the scrollable content area, which clipped it. It’s now outside that scrolling area entirely, so it’s never clipped and stays in place — visible at all times — even when the notice itself needs to scroll.
0.7.2
- Fixed the dialog still rendering underneath the site header (and other elements) on some themes/page builders even at maximum z-index. A high z-index only wins within its own CSS stacking context — if the notice happens to be echoed inside an ancestor that creates a new one (a
transform,filter, orwill-changeon a page-builder section wrapper, for example), it was trapped there regardless of its z-index. The dialog now relocates itself to be a direct child of<body>on page load, which sidesteps that entirely.
0.7.1
- The popup dialog is significantly larger (420px 760px wide on desktop, still fitting the screen on mobile): the notice is a dense, two-column document image, and at the old width its own text was too small to read.
- The dialog’s z-index is now the maximum possible value, so it’s guaranteed to render above any other themed or plugin element on the page, however high a z-index that uses.
0.7.0
- Placement is now a set of checkboxes instead of one choice: product page, checkout, and the WooCommerce content area can all be active together.
- Removed the automatic “Site header” and “Site footer” placements. On page-builder-driven templates (tested with Oxygen), those hooks can render outside the theme/builder’s own container entirely, showing as unstyled text pinned to the edge of the screen. Use the
[miegn_guarantee_notice]shortcode for those spots instead — it always renders exactly where it’s placed. Checkout stays as an automatic option since it’s a genuine WooCommerce template hook, but it depends on a classic (non-block) checkout template — verify it appears correctly on yours. - Removed “— EU Commission example” from placement labels and softened references to it elsewhere in the settings screen.
- Simplified the “Trigger link text” field: dropped the extra explanatory paragraphs in favour of just the placeholder (which already shows the real text that will be used) plus one short line.
- Re-translated the settings screen (German, Swedish, Spanish, French) to match all of the above.
0.6.3
- Fixed the automatic trigger-text translation “leaking” between languages on sites with other translation-related plugins active — it no longer relies on WordPress’s shared, global text-domain loader at all, reading straight from this plugin’s own bundled translation file instead.
- Fixed a WordPress.org plugin-check error (non-literal text-domain argument) in the same code.
- Popup display mode: the trigger is now a real link, styled by your theme like any other text link, instead of a plain blue underline this plugin invented.
- Popup display mode: the notice now opens as a proper centered dialog with a dimmed backdrop, sized to fit the screen with its own internal scrolling — instead of a small box that could overlap the page around it.
0.6.2
- Fixed a fatal error (“Class MIEGN_Settings not found”) that could take down the front end entirely: the settings class is now always loaded, not only in wp-admin.
- Fixed the automatic trigger-text default showing English instead of the correct translation for German and Spanish (Swedish and French were unaffected) on sites whose own locale differs from the notice’s language.
0.6.1
- Settings now show, in plain text, exactly what the blank “Trigger link text” field currently resolves to for a visitor in the store’s own language, plus a “see the automatic default in every language” list for German, Swedish, Spanish, French and English — so it’s clear the field being empty doesn’t mean nothing is shown.
0.6.0
- The plugin is now translated (English, German, Swedish, Spanish, French —
/languages), and the popup trigger link’s default text uses it: it’s shown in the language that matches the notice, automatically, without needing Polylang or WPML for this specific text. Other notice languages fall back to English. - “Trigger link text” in settings is now blank by default. Leave it blank to keep the automatic, per-language default above; type your own text to override it with a single fixed wording shown to every visitor.
0.5.0
- Restored all 24 official EU languages for the notice image and its link — fully automatic per visitor locale, no settings required.
- Simplified the trigger link back to a single “Trigger link text” setting, shown as-is to every visitor. This plugin no longer attempts to auto-translate the trigger text into 24 languages on the merchant’s behalf; use the
miegn_trigger_textfilter if you want to vary it by language yourself.
0.4.0
- Scoped the bundled notice artwork down to five languages (English, German, Swedish, Spanish, French) instead of all 24, to keep the initial release small and reviewable. More can be added via the
miegn_supported_languagesfilter. - Replaced the single “Trigger link text override” setting with an editable field per language, pre-filled with suggested wording — merchants can now correct or restyle any language’s trigger text directly in settings instead of relying on a hardcoded translation table.
- “Default / fallback language” is now a dropdown of the supported languages instead of a free-text field.
0.3.0
- The popup trigger link is now automatically translated to match the notice’s language (all 24 bundled languages), instead of always reading “Your legal guarantee rights” in English. Overridable per language via the
miegn_trigger_text_translationsfilter, or globally via the “Trigger link text override” setting.
0.2.0
- Popup display mode (default): a short trigger link reveals the full notice on click, matching the European Commission’s own product-page, header and checkout examples. “Always visible” mode remains for contexts like confirmation emails.
- Added Header and Checkout placement options.
- Bundled the official EU notice artwork (colour SVG) for all 24 EU languages.
- Replaced the placeholder notice link with the Commission’s published per-language “Your Europe” URLs.
0.1.0
- Initial scaffold: placement settings, language detection/fallback, shortcode, and notice rendering.
