Linux 软件免费装
Banner图

CertiSprout – Certificate QR Verify for LearnDash

开发者 pluginsprout
更新时间 2026年11月4日 02:10
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPLv2 or later
版权网址: 版权信息

标签

verification certificate learndash qr-code certificate-verification

下载

1.0.6

详情介绍:

An employer, auditor or client holds a LearnDash certificate PDF and wants to know if it is real. They should not have to email you and wait for an answer. With this plugin they can verify a LearnDash certificate themselves. The certificate carries a QR code and a printed verification code. Scanning the QR code opens a certificate verification page on your own site. It works with the LearnDash certificates you already have. You add one shortcode to the certificate template. There is no new certificate builder and no settings screen. What does the person checking see? One of three answers. The page returns HTTP 200, 404 or 410 for these three answers, so a script can tell them apart. It is marked noindex as a header and a meta tag, and it is sent with no-cache headers. The only branding on it is your site name. How does it work?
  1. A learner completes a course, or passes a quiz, that has a LearnDash certificate assigned.
  2. The plugin stores a random verification code for that learner and that course or quiz. There is one code per learner per course or quiz.
  3. You add [cert_qr_verify] to your certificate under LearnDash LMS > Certificates.
  4. The certificate PDF shows the QR code with the code printed under it, as Verify: XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX.
  5. The QR code links to https://your-site/?cert_verify=CODE.
Learners who finished before you installed the plugin get a code the first time they open their certificate. The plugin first asks LearnDash whether the course really is complete, or the quiz really was passed, so the shortcode never creates a code for unfinished work. What is under the hood? What did we test? With WordPress 7.1.2 and LearnDash 5.1.10, we logged in as a learner, downloaded her certificate PDF and read its QR code with a standard QR reader. The link opened the page headed "Valid certificate". The link with the printed code, capitals and dashes included, opened the same page, and a made-up code got "Certificate not found" with a 404. What does it not do? Every feature described here is in this plugin. Nothing is held back for a paid version. If your certificates also need an expiry date and renewal reminders, we sell a separate plugin for that: Certificate Expiry for LearnDash. This plugin does not need it.

安装:

  1. Install and activate LearnDash.
  2. Go to Plugins > Add New > Upload Plugin, upload the plugin zip and activate it. Or unzip it and upload the plugin folder to /wp-content/plugins/.
  3. Edit your certificate under LearnDash LMS > Certificates and add [cert_qr_verify] where the QR code should appear.
  4. Open a certificate for a completed course to see the QR code.
The certificate must be assigned to a course or quiz. Without one, the shortcode prints nothing and creates no code. Shortcode options: Example: [cert_qr_verify size="150" show_code="no"]

屏幕截图:

  • Scanning the QR opens the verify page: "Valid certificate", with the learner's name, course and completion date.
  • When the course is unpublished or completion is reset, the code shows "This certificate is no longer valid" (HTTP 410).
  • An unknown or mistyped code shows "Certificate not found" (HTTP 404) and nothing about your learners.

升级注意事项:

1.0.6 Renamed to CertiSprout – Certificate QR Verify for LearnDash, and the verification page styles now load through WordPress. Certificate PDFs and existing codes are unchanged. 1.0.5 Safer network deactivation on large or multi-network installs, and hardening of the verification page. Certificate PDFs and existing codes are unchanged. 1.0.4 On multisite, network deactivation now removes the daily clean-up task from every site. Certificate PDFs and existing codes are unchanged. 1.0.2 Clears codes left on multisite sub-sites by users deleted from Network Admin, and lines the QR code up with its verification code on web pages. Certificate PDFs and existing codes are unchanged. 1.0.1 Tightens the gap between the QR code and the verification code on web pages. Certificate PDFs and existing codes are unchanged. 1.0.0 First release. Add [cert_qr_verify] to your certificate template to print the QR code.

常见问题:

Does it work with quiz certificates?

Yes. A quiz certificate gets its own code once the learner passes the quiz. Group certificates are not covered in this version.

Can someone check a code without scanning it?

Yes. Open https://your-site/?cert_verify= followed by the printed code. Capital letters, spaces and dashes are accepted, so the code can be typed exactly as it appears on the certificate.

Which name does the verification page show?

The learner's first and last name. If those are empty, it shows their display name, unless the display name is an email address or their username. In that case the page says "Certificate holder". Developers can change the name with the psr_cqv_public_name filter.

How do I preview the QR code as an administrator?

The shortcode draws the code for the logged-in user. To test a layout, name a learner and a course in the shortcode, for example [cert_qr_verify user_id="12" course_id="34"], or use quiz_id for a quiz. These attributes are ignored for anyone without the manage_options capability, and a code is still only created if that learner has completed the course.

Why does my certificate show only the code and no QR image?

Your verification link is longer than the largest QR code the plugin draws. The plugin then prints the code alone so the certificate can still be checked, and administrators see a short note asking for a shorter site address. A normal site address is well inside the limit.

Where does the QR image come from, and does it work with a custom uploads folder or an offloaded media library?

For each certificate the plugin writes a small PNG to wp-content/uploads/cert-qr-verify/, named with a keyed hash. The certificate links it as a root-relative path such as /wp-content/uploads/cert-qr-verify/NAME.png, so the PDF step reads it from disk instead of fetching it over HTTP. The QR code is a file rather than an image embedded in the certificate because LearnDash rewrites image addresses that do not start with http or /. An embedded image would be left out of the PDF. The folder and the link both come from wp_upload_dir(). The plugin has no filter of its own for them. What that means:

  • Uploads in the default place, or moved with UPLOADS or the upload_dir filter to a folder inside the web root: the PNG is written there and the link follows. This works as long as the link path, added to the web root, is the real folder on disk.
  • Uploads outside the web root, or a local path that does not match the URL path: the PNG is still written, but the link will not point at it. The QR code may then be missing from the PDF. This is a limit of this version, and we have not tested every host.
  • Uploads served from a CDN or S3 bucket (for example with WP Offload Media): the plugin drops the host from the uploads URL and keeps only the path, so the PDF still looks on your own server. The PNG is written to the local uploads folder and is not added to the Media Library, so an offload plugin has nothing to copy. It works only while that local file exists at the same path under your web root. A host with a read-only disk will not.
  • If the folder cannot be written, the QR code is embedded as a data image. The PDF then has no QR code, and the printed code under it, if shown, still verifies the certificate.
The verification page and the printed code do not depend on any of this.

What happens if I reset a learner's progress?

Their code then shows "This certificate is no longer valid". If they complete the course again, the same code shows as valid again.

What happens when I unpublish a course or remove its certificate?

Every code for that course shows "This certificate is no longer valid" until you publish it again or assign a certificate again.

What happens if LearnDash is deactivated?

The verification page keeps answering from the stored codes, so course certificates that were valid stay valid. No new codes are created until LearnDash is active again.

What happens when I delete a user?

Their codes are deleted with them, and their certificates then show "Certificate not found". On a single site their QR image files are deleted too. On a multisite network, see the next question.

Does it work on a multisite network?

Yes, with one limit. Each site keeps its own codes and its own cert-qr-verify folder. Deleting a user from Network Admin deletes their codes on every site of the network, but it does not delete their QR image files. Those stay until you delete the plugin. Network Admin only runs plugins that are network activated or active on the main site. If the plugin is active only on a sub-site, deleting a user from Network Admin runs none of its code at that moment. Once a day, each site that runs the plugin looks for codes whose user no longer exists and deletes them with their QR image files, so that sub-site clears the user's codes within a day. WordPress runs this daily task when someone visits the sub-site, or from your server's cron if you have set one up. Until then the verification page already shows "Certificate not found" for those codes, because the user no longer exists. Users > Remove on a single site of the network only takes the user off that site, so their codes and QR files stay. Tools > Erase Personal Data covers the codes and QR files of the site you run it on.

Does it send data anywhere?

No. The plugin makes no outside requests. Codes live in one table in your WordPress database, and the QR images sit in your own uploads folder.

What personal data does it store, and who can see it?

For each certificate it stores the code, the learner's user ID, the course or quiz ID, the completion date and the date the code was made. Anyone who has the code can see the learner's name, the course or quiz title and the completion date on the verification page. The name never comes from their email address or username. It also writes a QR image file for each certificate. The file holds only the verification link with the code, no name, and sits in wp-content/uploads/cert-qr-verify/ (uploads/sites/N/cert-qr-verify/ on a multisite sub-site). The plugin adds suggested text for your privacy policy under Settings > Privacy > Policy Guide.

Does it work with the WordPress export and erase personal data tools?

Yes. Tools > Export Personal Data includes the learner's verification codes, course or quiz, dates and verification links. Tools > Erase Personal Data deletes their codes and their QR image files, and their certificates then show "Certificate not found".

What is removed when I delete the plugin?

The plugin's database table, its option, its daily clean-up task, its admin notice setting and the cert-qr-verify folder in uploads with every QR image in it. On a multisite network the table, option and folder are removed from every site. Deleting the plugin deletes every verification code, so QR codes already printed on certificates then show "Certificate not found". Deactivating the plugin keeps the codes.

更新日志:

1.0.6 1.0.5 1.0.4 1.0.2 1.0.1 1.0.0