Title: Primevo GPSR Product Safety for WooCommerce
Author: primevo
Published: <strong>September 27, 2026</strong>
Last modified: September 27, 2026

---

Search plugins

![](https://ps.w.org/primevo-gpsr-product-safety/assets/banner-772x250.png?rev=3715173)

![](https://ps.w.org/primevo-gpsr-product-safety/assets/icon-256x256.png?rev=3715173)

# Primevo GPSR Product Safety for WooCommerce

 By [primevo](https://profiles.wordpress.org/primevo/)

[Download](https://downloads.wordpress.org/plugin/primevo-gpsr-product-safety.2.0.0.zip)

 * [Details](https://wordpress.org/plugins/primevo-gpsr-product-safety/#description)
 * [Reviews](https://wordpress.org/plugins/primevo-gpsr-product-safety/#reviews)
 *  [Installation](https://wordpress.org/plugins/primevo-gpsr-product-safety/#installation)
 * [Development](https://wordpress.org/plugins/primevo-gpsr-product-safety/#developers)

 [Support](https://wordpress.org/support/plugin/primevo-gpsr-product-safety/)

## Description

Since 13 December 2024, every shop selling to consumers in the European Union must
display the manufacturer’s details on each product page — and, for goods made outside
the EU, the details of the importer or the responsible person established in the
Union.

Typing those addresses into every product is unnecessary work. This plugin lets 
you define each company **once** as a reusable profile and assign it to products
with a single click — or to your whole catalogue at once.

The plugin is completely free. There is no paid version, no licence key, no limits
on profiles or products, and no feature locked away.

**Profiles and product data**

 * Reusable profiles for manufacturers, importers and EU responsible persons — name,
   postal address, country, email, phone and website.
 * Shop-wide default profiles that cover every product without its own assignment.
 * Details entered manually for a single product when it does not fit any profile.
 * Product-level and shop-wide safety warnings.
 * Certificates and declarations of conformity (CE, RoHS, REACH and more), with 
   a one-click starter set and links to PDF documents.

**Display**

 * A clean information block on the product page: below the description, in its 
   own product tab, or wherever you want it.
 * A **block for the block editor** (“GPSR information”) — works in block themes
   and in the Site Editor’s product template.
 * An **Elementor widget** (“GPSR information”) for Elementor and Elementor Pro 
   product templates.
 * The `[primevo_gpsr_info]` shortcode for everything else.
 * Works with block themes out of the box: the information is added after the “Product
   details” block automatically.
 * Optional Schema.org structured data: the manufacturer is added to the product’s
   markup.

**Catalogue tools**

 * Compliance overview showing how many of your products still lack the required
   details, and products that point to a deleted profile.
 * A GPSR column and filter in the product list, and a manufacturer field in WooCommerce
   bulk edit.
 * Bulk assignment of a profile to all products or to one category.
 * CSV export of profiles (a backup you can import back) and of product data (for
   audits and inspections), and CSV import of profiles.

Works with High-Performance Order Storage, fully translatable (Polish included),
no external requests.

**Important — your responsibility**

This plugin provides tools for displaying information required by GPSR. It cannot
verify whether the details you enter are accurate, complete or sufficient for your
product range. Responsibility for that content, for its compliance with applicable
law, and for any consequences of errors — including penalties imposed by market 
surveillance authorities — rests solely with the shop operator. This plugin is not
legal advice.

**Privacy**

This plugin makes no external connections, sets no cookies and collects no statistics.
It stores only the business details you enter as an administrator; it does not collect,
transmit or process any customer data.

## Screenshots

[⌊The compliance overview: catalogue coverage, profiles, certificates and what the
regulation asks of the shop.⌉⌊The compliance overview: catalogue coverage, profiles,
certificates and what the regulation asks of the shop.⌉[

The compliance overview: catalogue coverage, profiles, certificates and what the
regulation asks of the shop.

[⌊A manufacturer profile — name, postal address, email and phone, entered once and
reused across products.⌉⌊A manufacturer profile — name, postal address, email and
phone, entered once and reused across products.⌉[

A manufacturer profile — name, postal address, email and phone, entered once and
reused across products.

[⌊The GPSR tab on the product edit screen: manufacturer, importer, EU responsible
person, certificates and a safety warning.⌉⌊The GPSR tab on the product edit screen:
manufacturer, importer, EU responsible person, certificates and a safety warning
.⌉[

The GPSR tab on the product edit screen: manufacturer, importer, EU responsible 
person, certificates and a safety warning.

[⌊The information block as customers see it on the product page.⌉⌊The information
block as customers see it on the product page.⌉[

The information block as customers see it on the product page.

[⌊The "GPSR information" block in the block editor, with a live preview of the product's
data.⌉⌊The "GPSR information" block in the block editor, with a live preview of 
the product's data.⌉[

The “GPSR information” block in the block editor, with a live preview of the product’s
data.

[⌊Certificates and declarations of conformity, with a one-click starter set.⌉⌊Certificates
and declarations of conformity, with a one-click starter set.⌉[

Certificates and declarations of conformity, with a one-click starter set.

[⌊Tools: assign a profile to all products or one category, export and import CSV.⌉⌊
Tools: assign a profile to all products or one category, export and import CSV.⌉[

Tools: assign a profile to all products or one category, export and import CSV.

[⌊The GPSR column in the product list shows at a glance which manufacturer covers
each product.⌉⌊The GPSR column in the product list shows at a glance which manufacturer
covers each product.⌉[

The GPSR column in the product list shows at a glance which manufacturer covers 
each product.

## Blocks

This plugin provides 1 block.

 *   GPSR information Shows the manufacturer, importer, EU responsible person, safety
   warnings and certificates that GPSR requires for a product.

## Installation

 1. Install the plugin from **Plugins  Add New**, or upload the ZIP file there.
 2. Activate the plugin. WooCommerce must be active.
 3. Go to **WooCommerce  GPSR** and add your manufacturer profile.
 4. Either set it as the shop-wide default (Display tab), assign it in bulk (Tools 
    tab), or open a product, switch to its **GPSR** tab and pick the profile.

## FAQ

### Does this plugin make my shop legally compliant?

No plugin can do that. It displays the information you provide in the place customers
expect to find it. Whether that information is correct and sufficient is for you—
and, where needed, your legal adviser — to determine.

### Is there a paid version or any limit?

No. Everything is included and free, with no limits on the number of profiles or
products.

### Where does the information appear?

Below the product description by default. You can move it to a separate product 
tab, or choose “Shortcode, block or widget only” and place it yourself with the 
block, the Elementor widget or the `[primevo_gpsr_info]` shortcode. When you place
it yourself on a product, the automatic block is not repeated.

### I use a block theme and see nothing

The information is added after the “Product details” block of the single product
template. If your template does not use that block, add the “GPSR information” block
to the template in **Appearance  Editor**.

### Does it work with Elementor?

Yes. Search for “GPSR information” in the Elementor widget panel and drop it into
your single product template. Leave the product ID empty to use the product being
displayed.

### Does it work with product variations?

Details are set per product and apply to all of its variations.

### Does the plugin send any data anywhere?

No. This plugin makes no external requests, sets no cookies and collects no statistics.
Profiles and product data never leave your database.

### Where do I get help?

Please use the support forum on WordPress.org — that way the answer helps everyone
who runs into the same thing.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Primevo GPSR Product Safety for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ primevo ](https://profiles.wordpress.org/primevo/)

[Translate “Primevo GPSR Product Safety for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/primevo-gpsr-product-safety)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/primevo-gpsr-product-safety/),
check out the [SVN repository](https://plugins.svn.wordpress.org/primevo-gpsr-product-safety/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/primevo-gpsr-product-safety/)
by [RSS](https://plugins.trac.wordpress.org/log/primevo-gpsr-product-safety/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.0.0

 * **Everything is included and free, with no limits.** Unlimited profiles and products;
   there is no paid version any more.
 * New: certificates and declarations of conformity, with a ready-made starter set.
 * New: bulk assignment, CSV import and export, a GPSR column and filter in the 
   product list, and a manufacturer field in bulk edit.
 * The GPSR column in the product list has a proper width instead of wrapping the
   manufacturer name one letter per line.
 * New: optional Schema.org structured data for the manufacturer (now also includes
   the phone number).
 * New: “GPSR information” block for the block editor, with a live preview of the
   product’s data.
 * New: “GPSR information” widget for Elementor.
 * New: block themes show the information automatically after the “Product details”
   block.
 * Placing the block, widget or shortcode on a product no longer shows the information
   twice.
 * The profile CSV export can now be imported back, certificates included, and duplicate
   names in one file are skipped.
 * CSV import is limited to 2 MB / 2,000 rows and reports how many entries were 
   added.
 * Editing a certificate no longer changes its identifier, so products keep their
   assignment.
 * Bulk assignment now respects per-product edit permissions and marks products 
   for a clean uninstall.

#### 1.7.1

 * Author name and contributor list aligned with the plugin’s WordPress.org account.

#### 1.7.0

 * **Renamed to “Primevo GPSR Product Safety for WooCommerce”.** The previous name
   was too close to an existing plugin with the same purpose, which is not allowed
   in the WordPress.org directory. Nothing in your shop changes: your profiles, 
   defaults and product data are untouched.
 * The dashboard widget’s stylesheet is now enqueued properly instead of being written
   into the page as a `<style>` block.
 * Form data passed to add-ons through the `gpsr_save_product` hook is sanitised
   first, and limited to this plugin’s own fields. Add-ons no longer receive the
   raw `$_POST` array.
 * The “PRO version” link on the plugins list is a plain link again, without colour
   or bold.
 * The new-profile template is a standard `<template>` element rather than a `<script
   >` block.
 * The shortcode is now `[primevo_gpsr_info]`. Every earlier tag — `[prime_gpsr_info]`
   and `[primewp_gpsr_info]` — keeps working permanently, so published pages are
   unaffected.

#### 1.6.1

 * **Fixed a fatal error on activation when an older copy of the plugin was still
   installed.** Because 1.5.1 changed the plugin’s folder name, WordPress treats
   the old and new packages as two different plugins and allows both to be active—
   which made PHP stop with “Cannot redeclare wc_gpsr()” and showed only “The plugin
   has caused a critical error”. The plugin now detects the second copy, steps aside
   quietly, and tells you exactly which folder to remove.
 * The same protection covers uninstalling: removing both copies in one go no longer
   breaks halfway through.

#### 1.6.0

 * **The plugin now speaks English.** Every screen, label and message in the source
   is English, which is what the WordPress.org directory expects — and what lets
   the community translate the plugin into any language.
 * Polish ships as a full translation (`pl_PL`), bundled with the plugin. Polish
   shops see exactly what they saw before; nothing is lost.
 * Translation loading was rewritten: a translation you install in `wp-content/languages/
   plugins` always wins over the bundled one, so an updated community translation
   is never overwritten by the package.
 * The plugin header, the readme and the interface now use one consistent name.
 * The shortcode is now `[prime_gpsr_info]`. The previous `[primewp_gpsr_info]` 
   keeps working permanently, so pages you have already published are unaffected.
 * Fixed: the settings screen could suggest the `[gpsr_info]` shortcode even when
   another GPSR plugin had claimed that tag, pointing you at someone else’s shortcode.

#### 1.5.1

 * Renamed to “Prime GPSR for WooCommerce”. “WP” is a restricted term in the WordPress.
   org plugin directory and cannot appear in a plugin name or slug. The plugin, 
   its author and its support remain unchanged.
 * Translation files now carry the new text domain. If you had your own translation,
   rename the .po/.mo files to match the new text domain.
 * Tested against WordPress 7.1.
 * Replaced the deprecated `load_plugin_textdomain()` call with a targeted loader.
 * The product limit notice escapes its link markup explicitly instead of relying
   on the surrounding filter.
 * Housekeeping on database queries: prepared statements, cache annotations and 
   prefixed globals in the uninstall routine.

#### 1.5.0

 * One package again: the plugin no longer ships in two variants. The same ZIP goes
   to the WordPress.org directory and to direct downloads.
 * The product edit screen now locks the GPSR fields when the free product limit
   is reached, instead of accepting input and discarding it on save.
 * The “deleted profile” warning now lists which role and how many products are 
   affected, and no longer suggests a fix that cannot work.
 * A stale reference left by an unticked importer / responsible-person switch is
   no longer reported as a compliance gap.
 * Coverage is now counted over published products only, so a catalogue full of 
   drafts can no longer read 100%.
 * Screen-reader labels on setup steps, profile delete buttons and the importer /
   responsible-person switches.
 * A dismissible welcome notice replaces the removed activation redirect, shown 
   only to the person who activated the plugin.
 * The settings screen now shows the shortcode tag that is actually registered.

#### 1.4.0

 * Fixed a serious reporting error: the compliance overview could show 100% coverage
   while product pages showed nothing, because a deleted default profile was still
   counted as active.
 * New warning on the overview when products point at a profile that no longer exists.
 * Fixed a lockout: the free product limit counted products that displayed no data,
   and once the limit was reached those same products could no longer be corrected.
 * The GPSR block now renders once per product instead of once per page request,
   so pages showing several products no longer lose the block on all but the first.
 * Saving profiles no longer rewrites existing profile identifiers, which previously
   could detach every product that referenced them.
 * Structured data setting is no longer switched off when the add-on is briefly 
   inactive.
 * Removed the forced redirect after activation.
 * Clearer privacy policy text: the plugin does store personal data when the responsible
   person is a natural person, and now says so.
 * The responsibility disclaimer is now confirmed per user and records who confirmed
   it.

#### 1.3.0

 * Security and robustness pass following a full external review of the plugin.
 * Uninstall now removes only this plugin’s own product meta — it no longer touches
   identically named meta belonging to other GPSR plugins — and cleans every site
   on a multisite network.
 * A product whose assigned profile has been deleted now shows nothing instead of
   silently falling back to the shop-wide default company.
 * The profile limit no longer removes profiles that are already saved; it only 
   prevents adding new ones.
 * The shortcode refuses products that are not publicly visible, and loads its stylesheet
   when used outside a product page.
 * The shortcode is now registered as [primewp_gpsr_info]; the shorter [gpsr_info]
   is also registered unless another plugin already claimed it.
 * Product saves no longer leave empty meta rows behind, and the “limit reached”
   notice is shown to the user who hit it, not to whoever opens the admin next.
 * Hardened against array values submitted into text fields, which could abort a
   product save on PHP 8.
 * The block is no longer rendered twice by themes that fire the product hook twice.
 * Fixed a translation call that ran too early on WordPress 6.7+.

#### 1.2.0

 * Fixed the Overview tab, which could render empty after the internal refactor.
 * A product whose assigned profile has been deleted now shows nothing instead of
   silently falling back to the shop-wide default company.
 * The profile limit no longer removes profiles that are already saved; it only 
   prevents adding new ones.
 * Uninstall now removes product data only from products this plugin actually wrote
   to, and cleans every site on a multisite network.
 * The shortcode now refuses non-public products and loads its stylesheet outside
   product pages.
 * Product saves no longer store empty meta rows for every field.
 * Hardened against array values submitted into text fields (PHP 8 fatal error).
 * Coverage now counts products served by the shop-wide default profile, so a fully
   configured shop reads 100% instead of appearing incomplete.
 * The overview no longer shows a product count and the message “everything filled
   in” at the same time.
 * Clearer “what you have / what the extended version adds” comparison on the overview.
 * Consistent naming of the base version across all screens.

#### 1.1.0

 * Renamed the plugin folder to avoid a slug collision with an unrelated plugin,
   which could cause WordPress to replace this plugin with that one.

#### 1.0.1

 * Fixed a fatal error on activation caused by a leftover reference to a class that
   now lives in the PRO add-on.

#### 1.0.0

 * First public release.
 * Reusable manufacturer, importer and EU responsible person profiles.
 * Product-level and shop-wide safety warnings.
 * Display below the description, in a product tab, or via shortcode.
 * Compliance overview and setup guidance.
 * HPOS compatible.

## Meta

 *  Version **2.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [compliance](https://wordpress.org/plugins/tags/compliance/)[gpsr](https://wordpress.org/plugins/tags/gpsr/)
   [manufacturer](https://wordpress.org/plugins/tags/manufacturer/)[product safety](https://wordpress.org/plugins/tags/product-safety/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/primevo-gpsr-product-safety/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/primevo-gpsr-product-safety/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/primevo-gpsr-product-safety/reviews/)

## Contributors

 *   [ primevo ](https://profiles.wordpress.org/primevo/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/primevo-gpsr-product-safety/)