--- title: "Add the EU legal guarantee notice to WooCommerce: a plugin you can build today" description: EU Regulation 2025/1960 requires a harmonised legal-guarantee graphic on product pages from 27 September 2026. Here is the plugin that adds it. source: https://steem.dev/blog/woocommerce-eu-legal-guarantee-notice-plugin published: 2026-09-09 updated: 2026-09-09 site: Steem — AI WordPress plugin generator --- # Add the EU legal guarantee notice to WooCommerce: a plugin you can build today EU Regulation 2025/1960, which implements Directive 2024/825, requires any trader selling physical goods to consumers in the EU to display a harmonised legal-guarantee notice on their product pages from 27 September 2026. The notice is a specific graphic published by the European Commission in all 24 official EU languages. You must use the official artwork; there is no approved alternative design. Stores that sell physical goods to EU consumers and do not display it face enforcement by national consumer authorities from that date, with no transition period. WooCommerce has no built-in setting for this. The notice must appear prominently near the product description, not in a site footer or buried in terms and conditions. The practical options are adding it manually to every product description, which does not scale, or a small plugin that reads a single setting and renders the graphic on every product page automatically. The plugin described here does exactly that. You upload the official graphic once to your media library, choose where on the product page it should appear, and the plugin handles the rest. The GARAN durability label, which the same regulation requires on specific products where a producer offers a voluntary durability guarantee of more than two years, is a separate requirement involving per-product data and is not covered here. ## What one build covers - Settings page under WooCommerce to upload the official EU legal-guarantee graphic once for the whole store - Configurable display position on the product page: after title, after short description, before add-to-cart, or after meta - Site-wide display on every WooCommerce product page with no per-product exclusion toggle - No external dependencies, no front-end scripts, no third-party stylesheets loaded ## What it does not cover - Multi-language support: one image is stored, with no per-language switching for WPML or Polylang setups - The GARAN durability label: a per-product field tied to voluntary guarantees over two years, and a separate build - Automatic downloading or version-checking of the official EU Commission graphic - Legal advice on placement requirements or the interpretation of any national enforcement authority - Display on shop archive pages, the cart, or the checkout ## The prompt ```text Build a WordPress plugin that adds an EU legal guarantee notice to WooCommerce product pages. Add a submenu page under the WooCommerce admin menu called Legal Guarantee. On the settings page, register two options using the Settings API: eu_legal_guarantee_image_id (the attachment ID of the legal guarantee graphic, default 0) and eu_legal_guarantee_position (the display position, default after_meta). Render the settings page with a form that has: a hidden input for eu_legal_guarantee_image_id, a button labelled Select image that opens the WordPress media library via wp.media when clicked, a preview img tag at 200px wide showing the current image if an attachment ID is stored, and a Remove link that clears both the preview and the hidden input; plus a select input for eu_legal_guarantee_position with options labelled After product title, After short description, Before add-to-cart button and After product meta with corresponding values and priorities 6, 21, 29 and 41. Call wp_enqueue_media on that admin page and add an inline script that initialises the wp.media frame, handles the Select image button click to open the frame and write the chosen attachment ID into the hidden input and update the preview src, and handles the Remove link to clear both. On the front end, hook into woocommerce_single_product_summary at the priority stored in eu_legal_guarantee_position. In the callback, retrieve eu_legal_guarantee_image_id; if it is set and greater than zero and the attachment exists, output a div with class eu-legal-guarantee-notice containing wp_get_attachment_image with the stored ID and size medium. Enqueue no front-end scripts or styles. Register all hooks inside a function attached to plugins_loaded. ``` ## What the regulation actually requires The harmonised legal-guarantee notice is mandatory for all traders selling physical goods to consumers in the EU. It is a fixed graphic, standardised across the bloc, that reminds buyers of the two-year legal guarantee of conformity they already have by law. The European Commission publishes the official artwork free of charge in all 24 EU languages. You download the version for your store's language, and that image is what gets displayed. The notice must be prominent, placed near the product rather than in generic site-wide text. A link in the footer or a mention on a legal page does not satisfy the requirement. The GARAN durability label is a separate item covered by the same package of rules. It applies only when a producer offers a voluntary free durability guarantee that extends beyond the statutory two years. Not every product will have one. Implementing it correctly requires a per-product field for the guarantee duration and the producer's details, which is a different build from the site-wide notice. ## What the plugin does The plugin adds a submenu page under WooCommerce in the admin menu, labelled Legal Guarantee. There are two settings. The first is an image picker that opens the WordPress media library so you can select the official EU graphic you have already uploaded. The second is a position dropdown with four options: after the product title, after the short description, before the add-to-cart button, or after the product meta. The default is after the product meta, which places it clearly on the page without interrupting the purchase flow. On the front end, the plugin hooks into WooCommerce's product summary action at the configured position and outputs the image wrapped in a container. No front-end scripts or third-party stylesheets are loaded. The image uses the medium size from your media library, so it scales reasonably on mobile without any additional CSS. The notice displays on every product page. There is no per-product toggle. Because the notice is a legal requirement for all physical goods sold to EU consumers, adding a switch to exclude individual products would create liability gaps without a good technical reason. ## Who this is for WooCommerce stores that sell physical goods to consumers in the EU and need a compliant solution before the 27 September 2026 deadline. If your store does this and you have not yet implemented the notice, this is the fastest path to having something in place. Store owners running a single-language shop. You download the graphic for your store's language from the European Commission website, upload it once, and the plugin takes care of displaying it everywhere it needs to appear. Developers maintaining client stores who need to roll out the notice across multiple sites quickly. The settings are minimal, activation takes a few minutes, and the only manual step per site is uploading the correct language version of the graphic. ## Who should take a different approach Multi-language stores running WPML or Polylang. The notice must appear in the language the buyer is viewing the site in, which means each language needs its own version of the graphic. The plugin here holds one image and one position setting. Matching the notice to the active language requires integration with your translation layer, and that is a follow-up build rather than the one described here. Stores that also need to implement the GARAN durability label on specific products. That requires a per-product metabox for the guarantee duration and producer details, and a separate display template. Use the follow-up prompt in the How to build it section once the site-wide notice is in place. Anyone unsure how their national consumer authority interprets the placement requirements. The regulation sets the standard; enforcement is by national bodies. If your legal exposure is significant, get advice from someone qualified in your country's consumer law rather than relying on a plugin alone. ## How to build it Before running the prompt, download the official EU legal-guarantee notice graphic from the European Commission website for the language or languages your store uses. The official texts are on EUR-Lex under Regulation (EU) 2025/1960. Upload the graphic to your WordPress media library. Then paste the prompt below into Steem. Once the plugin is active, go to WooCommerce > Legal Guarantee, select the image you uploaded, choose a position, and save. Visit any product page to confirm the notice appears. For stores that also need the GARAN durability label, a follow-up prompt to have ready: 'Add a per-product GARAN durability label metabox to the WooCommerce product editor. The metabox should have a checkbox to enable the label for that product, a text field for the producer name, and a number field for the guarantee duration in years. Display the label on the product page below the legal guarantee notice, using the same container style, only when the checkbox is enabled and both the producer name and duration are filled in.' ## Questions ### Where do I get the official EU legal guarantee graphic? The European Commission publishes the harmonised legal-guarantee notice artwork free of charge. The official texts and associated materials are on EUR-Lex under Regulation (EU) 2025/1960 and Directive (EU) 2024/825. The Commission's consumer affairs pages link to the downloadable graphics in all 24 EU languages. Download the version for your store's language before activating the plugin. ### My store serves customers in multiple EU languages. Do I need a different image for each? Yes. The notice must appear in the language the buyer is using. The plugin stores one image. If you run a multi-language store with WPML or Polylang, use the follow-up prompt to add per-language image settings that swap the graphic based on the active language. ### Does the notice need to appear on the cart or checkout pages too? The regulation specifies prominent display near the product. The plugin hooks into the product page summary. Cart and checkout display is not part of the harmonised notice provisions, though placement requirements can vary by national authority, so verify with your legal adviser if your exposure is significant. ### What about the GARAN durability label? The GARAN label is only required when the producer offers a voluntary free durability guarantee longer than two years. It is a per-product field, not a site-wide graphic. Use the follow-up prompt in the How to build it section to add it once the main notice is in place. ### Is this plugin enough to comply with the regulation? It handles the technical implementation of displaying the graphic on product pages. Whether that satisfies requirements under your national enforcement authority depends on factors a plugin cannot determine, including the prominence of placement, your product types, and the language versions you have uploaded. Use it as the implementation tool, not as legal advice. --- Source: https://steem.dev/blog/woocommerce-eu-legal-guarantee-notice-plugin Build this plugin: https://steem.dev/app