Title: Digital Product Passport
Author: PluginWave (Cosmin)
Published: <strong>September 26, 2025</strong>
Last modified: September 26, 2025

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/digital-product-passport.svg)

# Digital Product Passport

 By [PluginWave (Cosmin)](https://profiles.wordpress.org/pluginwave/)

[Download](https://downloads.wordpress.org/plugin/digital-product-passport.0.1.0.zip)

 * [Details](https://vec.wordpress.org/plugins/digital-product-passport/#description)
 * [Reviews](https://vec.wordpress.org/plugins/digital-product-passport/#reviews)
 *  [Installation](https://vec.wordpress.org/plugins/digital-product-passport/#installation)
 * [Development](https://vec.wordpress.org/plugins/digital-product-passport/#developers)

 [Support](https://wordpress.org/support/plugin/digital-product-passport/)

## Description

This plugin exists to solve a simple but common need: display a Digital Product 
Passport (DPP) on WordPress sites, including WooCommerce product pages, without 
being tied to a specific provider or API. If you have the JSON, this plugin will
render it consistently, accessibly, and without sending data to third parties.

Key features

 * Vendor-agnostic: Works with any DPP JSON source. No provider lock-in.
 * WooCommerce ready: Adds a meta box on product edit screens to store the JSON.
 * Human-readable HTML view: Clean accordion layout with friendly labels (for example,“
   End of Life and Circularity”), tuned for Ecodesign for Sustainable Products Regulation(
   ESPR) naming styles.
 * JSON view: Inspect the raw JSON in a formatted code block; one-click Copy JSON.
 * Shortcode and Block: Insert the viewer with a shortcode or the included Gutenberg
   block.
 * Classic Editor button: “Insert Digital Product Passport” modal for quick shortcode
   setup.
 * Accessibility: Keyboard navigation, ARIA roles, semantic HTML (details/summary).
 * Responsive: Looks great on phones, tablets, and desktops.
 * Privacy by design: No tracking, no external calls, no cookies.
 * Translation ready: All strings can be localized.

Why this plugin

 * One viewer for WordPress and WooCommerce that is independent of provider.
 * Displays your DPP from post/product meta in a consistent way across themes.
 * Uses only the JSON you supply and renders it locally in the browser.

### Usage

 * Quick start:
    1. Edit any post, page, or WooCommerce product and find the “Digital Product Passport”
       meta box.
    2. Paste valid JSON and update/publish. The plugin stores it as post meta.
    3. Insert the viewer where you want it to appear using either the shortcode or 
       the block below.
 * Shortcode: `[digital_product_passport]`
    - By default renders the JSON saved in the meta box for that post/product.
    - You can also pass inline JSON via the `json` attribute (single quotes recommended
      around the JSON):
    - Example: `[digital_product_passport json='{"id":"urn:uuid:123","type":"Product","
      name":"Sample"}']`
    - Attributes:
    - `json`: Inline JSON to render (optional). If omitted, uses the saved post 
      meta JSON.
    - `view`: `html|json` to pick the default tab (default `html`).
    - `show_raw`: `true|false` to force JSON (deprecated; overrides `view`).
    - `title`: Optional title displayed above the viewer.
    - `limit`: Number of top-level sections to show before a Show more toggle. `
      0` (default) shows all.
    - `include`: Comma-separated list of section keys/labels to include (case-insensitive;
      matches raw keys or humanized labels). Example: `include="id,type,manufacturer"`.
    - `exclude`: Comma-separated list of section keys/labels to hide. Example: `
      exclude="identifiers,documentation"`.
    - `order`: Comma-separated preferred order of sections. Items not listed keep
      their natural order after these. Example: `order="id,type,manufacturers,identifiers"`.
    - `more_label` / `less_label`: Override the Show more/Show less button text.
    - Examples:
    - `[digital_product_passport view="html" title="Digital Product Passport"]`
    - `[digital_product_passport view="json"]`
    - `[digital_product_passport limit="5" order="ID,Type,Manufacturers" exclude
      ="Documentation"]`
    - `[digital_product_passport include="ID,Version,Language,Identifiers" more_label
      ="Show all details" less_label="Show fewer"]`
    - Note: The legacy `[dpp]` shortcode has been removed to comply with wp.org 
      prefixing guidelines. Use `[digital_product_passport]`.
 * Block (Gutenberg): “Digital Product Passport”
    - Add the block and (optionally) paste JSON in the block settings to override
      the post/product meta for that block.
    - Choose the default tab (HTML or JSON) in the block inspector.
 * Classic Editor: Use the “Digital Product Passport” toolbar button
    - Click the button, pick a title and default view (HTML or JSON), then insert.
      It uses the JSON saved in the meta box.
 * WooCommerce: On product edit screens, the same meta box is available. Place the`[
   digital_product_passport]` shortcode in any product description area or block
   to display the viewer on the product page.
 * Viewer controls (front end):
    - Tabs switch between HTML and JSON. The JSON view has a “Copy JSON” button.
    - Large passports show a Show more/less toggle when `limit` is set.
 * Troubleshooting:
    - If you see “No Digital Product Passport JSON found.”, either save valid JSON
      in the meta box or pass JSON via the shortcode `json` attribute.
    - Ensure the shortcode `[digital_product_passport]` is present where you expect
      the viewer to appear.

### Compliance and Privacy

 * Privacy by design: No tracking, no external calls, no cookies.
 * Data handling: DPP JSON is stored as post meta and rendered client-side. Nothing
   is sent to third parties.
 * Security: Output is escaped and JSON is normalized server-side before embedding.
 * Accessibility: Semantic HTML with ARIA, keyboard navigation, and visible focus.
 * Performance: Minimal CSS/JS loaded only when the viewer is present.

### External services

 * None required: This plugin does not connect to, depend on, or transmit data to
   any third‑party/external service. No data leaves your site when rendering a passport.
 * Example placeholders: The sample JSON shown in the editor includes illustrative
   links such as `https://example.com` and `https://example.com/manual.pdf`. These
   are placeholders for demonstration only; the plugin does not fetch or otherwise
   contact those URLs. Replace them with your own documentation links as needed.
 * Namespaces in SVG: The editor/block icon contains inline SVG markup that references
   the XML namespace `http://www.w3.org/2000/svg`. This is a namespace identifier,
   not a network request or external service.

No third‑party terms of service or privacy policies apply because the plugin does
not use any external services.

### GDPR and EU Privacy Notes

 * Personal data scope: This plugin does not collect, track, or profile users. It
   only renders the DPP JSON you provide. If your JSON contains personal data (for
   example, a contact person’s name or email), you are the controller of that data.
 * Lawful basis: Ensure you have a lawful basis under GDPR to publish any personal
   data included in the DPP. Prefer business contacts or shared inboxes over named
   individuals where possible.
 * Data minimization: Avoid including personal data unless strictly necessary for
   the product passport. Consider using role-based contacts (e.g., support@example.
   com).
 * Data location and transfers: The plugin does not perform network requests or 
   transfer data to third countries. Any links inside your JSON are rendered as 
   links only; the plugin does not fetch or proxy them.
 * Retention: DPP JSON is stored as post meta and retained until you edit or delete
   the post/product or remove the meta.
 * Data subject rights (DSR): The plugin does not store visitor-level personal data,
   so it does not add custom exporters or erasers. If you include personal data 
   in DPP JSON, handle DSRs by updating/removing the JSON in your content.
 * Privacy Policy helper: The plugin registers guidance for Tools > Privacy so you
   can include accurate information on your site’s Privacy Policy page.
 * Redaction hooks: Developers can filter or redact fields before display using 
   the `digital_product_passport_viewer_data` filter.
 * Access control: The viewer displays wherever the post/product is visible. Use
   WordPress visibility/roles or your membership tools to restrict access if needed.
 * Disclaimer: This is not legal advice. Consult your legal counsel to confirm compliance
   for your use case.

## Blocks

This plugin provides 1 block.

 *   Digital Product Passport

## Installation

 1. Upload the `digital-product-passport` folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the “Plugins” menu in WordPress.
 3. Paste (or save) JSON in the “Digital Product Passport” meta box on any post/page/
    product, or use the block/shortcode.

#### Manual ZIP installs

 * From WordPress.org, the download is `digital-product-passport.zip` (latest stable).
 * For manual builds (e.g., GitHub release), package the plugin as `digital-product-
   passport-<version>.zip` (with dots, e.g. `digital-product-passport-0.1.0.zip`).
 * To generate a correctly named ZIP locally, run: `composer run package` and use
   the artifact created in `dist/`.

## FAQ

### Does this plugin require a third-party service?

No. It is provider-independent and does not call external APIs. If you have JSON,
the plugin will render it.

### Does the plugin validate a specific DPP schema?

It does not enforce a particular schema. It renders any valid JSON and includes 
humanization for common ESPR-style keys in the HTML view.

### Is WooCommerce required?

No. The plugin works with WordPress posts and pages. When WooCommerce is active,
a meta box is also available on product edit screens.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Digital Product Passport” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ PluginWave (Cosmin) ](https://profiles.wordpress.org/pluginwave/)

[Translate “Digital Product Passport” into your language.](https://translate.wordpress.org/projects/wp-plugins/digital-product-passport)

### Interested in development?

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

## Changelog

#### 0.1.0

 * Initial release.

## Meta

 *  Version **0.1.0**
 *  Last updated **10 months ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **6.8.5**
 *  PHP version ** 7.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/digital-product-passport/)
 * Tags
 * [digital product passport](https://vec.wordpress.org/plugins/tags/digital-product-passport/)
   [JSON](https://vec.wordpress.org/plugins/tags/json/)[woocommerce](https://vec.wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://vec.wordpress.org/plugins/digital-product-passport/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/digital-product-passport/reviews/)

## Contributors

 *   [ PluginWave (Cosmin) ](https://profiles.wordpress.org/pluginwave/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/digital-product-passport/)