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:
- Edit any post, page, or WooCommerce product and find the “Digital Product Passport” meta box.
- Paste valid JSON and update/publish. The plugin stores it as post meta.
- Insert the viewer where you want it to appear using either the shortcode or the block below.
-
Shortcode: [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.