DrDanon Certificates for WooCommerce

Description

DrDanon Certificates for WooCommerce lets customers who bought a course download their certificate from My account Certificates.

The customer enters her name once (with a live preview and a confirmation checkbox). From then on she can download the certificate as PDF or PNG as often as she likes. The certificate file is generated in the browser, so no files are stored on the server.

Features

  • Certificate per product: JPG or PNG background, available from a chosen date – optionally from a chosen time (e.g. 12:00).
  • Name, certificate number, date and QR code – each with its own position, size, colour, font, bold and alignment.
  • Long names can be split into two lines automatically.
  • Date of issue or course date, in a format you choose (presets, the site format or a custom PHP date format) – globally or per product.
  • Built-in fonts with Latin and Cyrillic characters, uploaded TTF/OTF/WOFF/WOFF2 fonts and fonts from the WordPress Font Library, with a character check.
  • Public verification page ([tcert_verify] shortcode) with full or masked names, rate limiting and a cache test. It can be turned off.
  • Automatic revocation after a refund or cancellation, manual revocation, manual access grants and CSV import of access.
  • Live preview and “Download sample PDF” button in the product editor.
  • All texts of the customer pages can be edited; button colours, corner radius and width can be set in the settings.
  • Own time zone for unlock times and printed dates (defaults to the site time zone).
  • Personal data export and erasure (WordPress privacy tools), suggested privacy policy text.
  • Compatible with WooCommerce High-Performance Order Storage (HPOS).

No e-mails. The plugin never sends any e-mail – neither to customers nor to the administrator.

No external services. The plugin has no telemetry and does not contact any third-party service. Fonts, QR code generator and the PDF writer are bundled. The browser loads only files from your own site: the certificate background and uploaded fonts from your Media Library – if your site serves media through a CDN, they come from that CDN.

WooCommerce is a trademark of its owner. This plugin is an independent add-on and is not affiliated with or endorsed by WooCommerce or Automattic.

Privacy

The plugin stores the name entered for the certificate, the date it was saved, manually granted access and the issued certificates (number, course, name, date of issue, status) in the WordPress database. The data is used to generate certificates and to confirm their authenticity. It is included in the WordPress personal data export and removed by the personal data eraser and when the user account is deleted. The plugin sends no data to third-party services and sends no e-mails.

Third-party resources

  • QR Code Generator for JavaScript by Kazuhiko Arase, version 2.0.4 (unmodified dist/qrcode.js from the npm package qrcode-generator, source: https://github.com/kazuhikoarase/qrcode-generator) – MIT license – assets/js/vendor/qrcode.js, licence text in assets/js/vendor/qrcode-LICENSE.txt. “QR Code” is a registered trademark of DENSO WAVE INCORPORATED.
  • Fonts Caveat, Cormorant Garamond, Lora, Marck Script, Montserrat and Playfair Display – SIL Open Font License 1.1 – assets/fonts/ (see assets/fonts/OFL.txt).

Installation

  1. Install and activate WooCommerce.
  2. Upload the plugin in Plugins Add New Upload Plugin, or install it from the WordPress.org plugin directory, and activate it.
  3. Go to WooCommerce Training certificates and check the settings. Click “Create the verification page” (General tab) to add the verification page.
  4. Edit a product, open the Certificate tab, enable “Issue a certificate”, choose a background and place the elements. Use “Download sample PDF” to check the result.
  5. If My account Certificates shows a 404 error, go to Settings Permalinks and click “Save Changes”.

FAQ

Can customers change their name later?

No – the name is saved once. An administrator can correct it or unlock editing in Users Edit user Certificate.

Who gets a certificate?

Logged-in customers who bought the product (paid order) and customers to whom access was granted manually or by CSV import. After a full refund, a refund of the course line (its whole quantity) or a cancellation the certificate is revoked automatically. A refund of an amount only (no quantity) does not revoke it. The list of issued certificates shows the saved status, which can be updated with a short delay (background check); the verification page and My Account always check the current state.

Is the PDF signed?

No. The PDF contains an image of the certificate. Authenticity is confirmed by the certificate number and QR code on the verification page.

Can certificates unlock at a specific time?

Yes. In the product, set “Available from” and check “Unlock at a specific time” (for example 12:00). The time uses the plugin time zone from WooCommerce Training certificates General, which by default is the site time zone. Without a time the certificate unlocks at 00:00.

Which date formats can I use?

Presets such as 31 October 2026, 31.10.2026, 10/31/2026 or 2026-10-31, the site format from Settings General, or a custom PHP date format such as l, j F Y. Month and day names follow the site language. Each product can override the global format.

Cache and CDN

The verification page and My account Certificates must not be cached. In your cache plugin (LiteSpeed, WP Rocket, W3 Total Cache…) add both addresses to “Never cache”. With Cloudflare create a Cache Rule with the action “Bypass cache” for the path of your verification page (for example /certificate-verification) and for the My account endpoint (/certificates or, for sites that used older versions, /certyfikaty). Then use “Check that the verification page is not cached” in WooCommerce Training certificates.

A rate limiting rule for the verification page on your CDN (for example 30 requests per minute per IP) is recommended as a second line of defence.

Does it work with Multisite?

No. The plugin supports single-site installations only.

Is the plugin available in my language?

The plugin is fully translatable. Translations are managed on translate.wordpress.org and installed by WordPress automatically.

Can I change the My account address?

New installations use /my-account/certificates/. Sites updated from versions before 1.7.0 keep /my-account/certyfikaty/, so links customers already have keep working.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“DrDanon Certificates for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.8.4

  • Fixed: critical error on activation on sites where another plugin (SEO, page builder, cache) runs shortcodes while a page is saved.
  • Changed: the verification page is no longer created on activation – create it with the button in Settings (an existing published page with the [tcert_verify] shortcode is reused, no duplicates; drafts are never published automatically).
  • Fixed: “Failed to fetch” when the background or font URL points to another address (www / http vs https, CDN or cache plugin) – the other address is tried as well, also when a file downloads but is not a valid image or font.
  • Fixed: refunding the whole quantity of one course line (order still paid) now revokes that course’s certificate.
  • Changed: the QR code has the standard 4-module quiet zone.
  • Added: the date the name was saved is included in the personal data export.
  • Added: full MIT licence text of the bundled QR code library.

1.8.2

  • Fixed: QR codes encode non-ASCII addresses (international domains, page slugs) as UTF-8.
  • Changed: no silenced PHP errors in the font check; translation template header updated.

1.8.1

  • Changed: plugin name “DrDanon Certificates for WooCommerce”, slug and text domain drdanon-certificates-for-woocommerce.
  • Removed: the free-form custom CSS setting. Use Appearance Customize Additional CSS instead; the colour, corner radius and width settings stay.
  • Changed: all request data is sanitized when it is read; nonces are sanitized before verification.
  • Changed: admin notices are shown only on the Plugins screen, the plugin’s own screens and product screens.
  • Changed: translations are provided through translate.wordpress.org (no bundled .po/.mo files).

1.8.0

  • New: certificates can be unlocked at a specific time (“Unlock at a specific time” in the product).
  • New: time zone setting in WooCommerce Training certificates General (default: the site time zone). It is used for unlock times and for the dates on certificates and on the verification page.

1.7.2

  • Changed: text domain and plugin folder are now drdanon-certificates-for-woocommerce (the WordPress.org slug).
  • Fixed: the QR code in the product preview and the sample PDF leads to the verification page.
  • Fixed: the certificate number stays in the field when the name check form on the verification page has expired.
  • Fixed: the “(uploaded)” font label and the download file names are translatable.

1.7.0

  • New: date format – more presets, the site format and custom formats, globally and per product (with a live preview).
  • New: long names can be split into two lines automatically.
  • New: English source texts, translation ready.
  • New: default texts follow the site language until you change them.
  • New: suggested privacy policy text.
  • Changed: plugin name “DrDanon Certificates for WooCommerce”, readme in the WordPress.org format.
  • Changed: database queries use $wpdb->prepare() with identifier placeholders; uninstall uses the WordPress filesystem API.
  • Changed: verification name check is protected with a nonce.
  • Changed: font uploads use wp_handle_upload().
  • Removed: Markdown change logs and test notes from the package.

1.6.2

  • Fixed: certificate status in the user profile is reconciled before display.
  • Fixed: clearer error for an empty name confirmation on the verification page.
  • Improved: per-request cache of certificate products.

1.6.1

  • Improved: access checks during verification, save locks, font validation and privacy tools. Multisite is blocked.

1.6.0

  • New: certificate number without the address, separate switch for the verification page, editable texts and styles, date on the certificate, custom fonts, PDF page sized like the graphic.