{"id":348748,"date":"2026-08-10T14:44:49","date_gmt":"2026-08-10T14:44:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pressprimer-certificate\/"},"modified":"2026-10-29T13:21:28","modified_gmt":"2026-10-29T13:21:28","slug":"pressprimer-certificate","status":"publish","type":"plugin","link":"https:\/\/skr.wordpress.org\/plugins\/pressprimer-certificate\/","author":23411440,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.0","stable_tag":"2.1.0","tested":"7.1.4","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"PressPrimer Certificate","header_author":"PressPrimer","header_description":"Design, issue, and verify certificates on your own site. Build them in a drag-and-drop designer, award them automatically through integrations with popular LMS plugins, and let anyone scan a QR code to confirm a certificate is real.","assets_banners_color":"ced5dc","last_updated":"2026-10-29 13:21:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/pressprimer.com\/certificate","header_author_uri":"https:\/\/pressprimer.com","rating":5,"author_block_rating":0,"active_installs":300,"downloads":3119,"num_ratings":2,"support_threads":3,"support_threads_resolved":3,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"pressprimer","date":"2026-08-10 14:44:37","revision":3640745},"1.1.0":{"tag":"1.1.0","author":"pressprimer","date":"2026-08-24 12:04:39","revision":3663354},"2.0.0":{"tag":"2.0.0","author":"pressprimer","date":"2026-09-24 17:52:39","revision":3711808},"2.0.1":{"tag":"2.0.1","author":"pressprimer","date":"2026-09-29 13:14:55","revision":3719112},"2.0.2":{"tag":"2.0.2","author":"pressprimer","date":"2026-10-13 14:45:45","revision":3744228},"2.1.0":{"tag":"2.1.0","author":"pressprimer","date":"2026-10-29 13:21:28","revision":3773017}},"upgrade_notice":{"2.1.0":"<p>Branded HTML emails with a View Certificate button, A3 and Legal page sizes, bulk actions on the Certificates screen, and points minimums for Assignment triggers, plus security and privacy fixes. Existing certificates and templates are unchanged.<\/p>","2.0.2":"<p>Fixes a false &quot;Changed elsewhere&quot; warning when saving templates on sites using LiteSpeed Cache, and helps certificates with large custom fonts render on hosts with a low memory limit. Nothing else changes.<\/p>","2.0.1":"<p>The certificate view page no longer lists the site&#039;s comments or offers an Edit link on themes and page builders that render comments unconditionally. Recommended for every 2.0.0 site; nothing else changes.<\/p>","2.0.0":"<p>Certificate search and filters, test award emails, Geometric starter templates, a Certificate Link block, PDF download on the verification page, multi-page rendering, a developer API, and the Educator, School, and Enterprise premium tiers. Existing certificates and templates are unchanged.<\/p>","1.1.0":"<p>Merge fields inside text, &quot;Any&quot; award triggers, certificate names from merge fields, clickable PDF credentials, designer alignment tools, and email merge fields. Existing certificates and templates are unchanged.<\/p>","1.0.0":"<p>Initial release of PressPrimer Certificate. Design, issue, and verify certificates on your own site \u2014 free forever.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3640745,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3640745,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3640745,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3640745,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pressprimer-certificate\/verify":{"name":"pressprimer-certificate\/verify","title":"Certificate Verification"},"pressprimer-certificate\/my-certificates":{"name":"pressprimer-certificate\/my-certificates","title":"My Certificates"},"pressprimer-certificate\/certificate-link":{"name":"pressprimer-certificate\/certificate-link","title":"Certificate Link"}},"tagged_versions":["1.0.0","1.1.0","2.0.0","2.0.1","2.0.2","2.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3640745,"resolution":"1","location":"assets","locale":"","width":1200,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3640745,"resolution":"2","location":"assets","locale":"","width":1200,"height":800},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3640745,"resolution":"3","location":"assets","locale":"","width":1200,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3640745,"resolution":"4","location":"assets","locale":"","width":1200,"height":800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3640745,"resolution":"5","location":"assets","locale":"","width":1200,"height":800}},"screenshots":{"1":"Dashboard with award statistics, quick actions, and recent certificates","2":"The certificate designer: a true-size canvas, element palette, and properties panel","3":"Starter template gallery with Letter and A4 variants","4":"Design defaults: brand colors, logo, signature, and certificate size","5":"The My Certificates page where learners view, verify, and download their certificates"}},"plugin_section":[],"plugin_tags":[2191,2201,18342,10796,2195],"plugin_category":[],"plugin_contributors":[253460],"plugin_business_model":[],"class_list":["post-348748","plugin","type-plugin","status-publish","hentry","plugin_tags-certificate","plugin_tags-certification","plugin_tags-elearning","plugin_tags-learndash","plugin_tags-lms","plugin_contributors-pressprimer","plugin_committers-pressprimer"],"banners":{"banner":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/banner-772x250.png?rev=3640745","banner_2x":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/banner-1544x500.png?rev=3640745","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/icon-128x128.png?rev=3640745","icon_2x":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/icon-256x256.png?rev=3640745","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/screenshot-1.png?rev=3640745","caption":"Dashboard with award statistics, quick actions, and recent certificates"},{"src":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/screenshot-2.png?rev=3640745","caption":"The certificate designer: a true-size canvas, element palette, and properties panel"},{"src":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/screenshot-3.png?rev=3640745","caption":"Starter template gallery with Letter and A4 variants"},{"src":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/screenshot-4.png?rev=3640745","caption":"Design defaults: brand colors, logo, signature, and certificate size"},{"src":"https:\/\/ps.w.org\/pressprimer-certificate\/assets\/screenshot-5.png?rev=3640745","caption":"The My Certificates page where learners view, verify, and download their certificates"}],"raw_content":"<!--section=description-->\n<p><strong>PressPrimer Certificate<\/strong> brings the full certification lifecycle to your WordPress site. A drag-and-drop designer produces the certificate. Unique credential IDs, QR codes, and a public verification page make it authoritative. And it can all be connected to course activity in LearnDash, LifterLMS, Tutor LMS, or LearnPress.<\/p>\n\n<p><strong>This is a genuinely free plugin.<\/strong> Unlimited templates, unlimited certificates, the full designer, a suite of integrations, public verification, and email delivery are all included at no cost.<\/p>\n\n<p>https:\/\/www.youtube.com\/watch?v=3MVuPFKdhzo<\/p>\n\n<h4>Why PressPrimer Certificate?<\/h4>\n\n<p>Certificate tools built into LMS plugins are often afterthoughts: rigid and awkward layouts, no way to verify what students have earned, and no easy way to track certificate activity. Standalone certificate services charge monthly fees and hold your credentials on someone else's infrastructure.<\/p>\n\n<p>PressPrimer Certificate delivers a complete, self-hosted credential workflow, including:<\/p>\n\n<ul>\n<li><strong>A true-size designer<\/strong> \u2013 The canvas is the PDF. What you build on screen is exactly what recipients download.<\/li>\n<li><strong>Credentials that can be checked<\/strong> \u2013 Every certificate carries a unique, non-guessable credential ID and a QR code linking to a public verification page on your site.<\/li>\n<li><strong>Comprehensive integrations<\/strong> \u2013 Certificates award themselves when a learner passes a quiz, earns a grade, or completes a course. Manual certificate generation is also available.<\/li>\n<li><strong>Records that outlive the template<\/strong> \u2013 Issued certificates snapshot their design and data at issue time. Editing a template later never changes a certificate that has already been earned.<\/li>\n<\/ul>\n\n<h4>Features Included Free<\/h4>\n\n<p><strong>Certificate Designer<\/strong><\/p>\n\n<ul>\n<li>Interactive WYSIWYG canvas with drag, resize, keyboard nudging, undo\/redo, and zoom<\/li>\n<li>Eight starter designs - Formal, Modern, Playful, and Geometric, each in portrait and landscape - every one in Letter and A4, plus a blank option<\/li>\n<li>Image, logo, signature, and background elements accept PNG, JPEG, and GIF, plus WebP and AVIF where your server supports them<\/li>\n<li>Six bundled open-license fonts (SIL OFL) with real bold and italic faces<\/li>\n<li>Text, merge field, image, signature, line\/shape, QR code, and background elements<\/li>\n<li>Merge fields for recipient, certificate, site, quiz, assignment, and course data, including custom user and post meta<\/li>\n<li>Merge fields inside text: write \"Expires:\" and insert the expiry date field, and the whole line centers and wraps as one piece<\/li>\n<li>Alignment tools: align and distribute grouped elements, and guides to help with alignment<\/li>\n<li>Live PDF preview from the real renderer<\/li>\n<\/ul>\n\n<p><strong>Design Defaults<\/strong><\/p>\n\n<ul>\n<li>Letter, A4, Legal, and A3 page sizes, in portrait or landscape<\/li>\n<li>Site-wide defaults for certificate size, font, logo, and signature<\/li>\n<li>Brand colors (primary, accent, text) that starter templates apply automatically<\/li>\n<\/ul>\n\n<p><strong>Issuance &amp; Automation<\/strong><\/p>\n\n<ul>\n<li>Automatic triggers: PressPrimer Quiz pass thresholds, PressPrimer Assignment grades, and course, lesson, topic, or quiz completion in LearnDash, LifterLMS, Tutor LMS, and LearnPress<\/li>\n<li>\"Any\" award options: one trigger can cover any quiz, any course, or any lesson in a chosen course, so one certificate serves your whole catalog<\/li>\n<li>Certificate display names built from merge fields, so a template reused across courses names each certificate after its course everywhere it appears<\/li>\n<li>Manually issue certificates with optional backdating and expiry dates<\/li>\n<li>Validity periods: set how long certificates from a template stay valid (days, months, or years), pick an exact expiry date, or let them last forever<\/li>\n<li>Per-trigger control over repeat completions: suppress duplicates or issue a fresh certificate every time (for compliance and recertification courses)<\/li>\n<li>Revoke certificates and reinstate them if revoked by mistake<\/li>\n<\/ul>\n\n<p><strong>Credentials &amp; Verification<\/strong><\/p>\n\n<ul>\n<li>Unique, non-guessable credential IDs with a check that catches typos<\/li>\n<li>Public verification page (shortcode and block) that anyone can use, no account needed<\/li>\n<li>Optional QR code on every certificate linking to its verification page<\/li>\n<li>The QR code and credential ID on issued PDFs are clickable, so an emailed certificate verifies in one click<\/li>\n<li>A shareable certificate view page with PDF download<\/li>\n<li>Download PDF on the verification page for valid and expired certificates, so a verifier can keep a copy<\/li>\n<li>Certificate Link block and shortcode: one button on a course, lesson, topic, or quiz page that downloads the logged-in learner's own certificate for that item (or opens its page, your choice), hidden until it is earned<\/li>\n<li>My Certificates list (shortcode and block) so logged-in learners can see, verify, and download everything they have earned, with status filters and sorting by date, name, or upcoming expiry<\/li>\n<\/ul>\n\n<p><strong>Admin<\/strong><\/p>\n\n<ul>\n<li>Dashboard with certificate statistics, an awarded-over-time chart, quick actions, and recent certificates<\/li>\n<li>A guided setup tour that walks you from a starter template to your first issued certificate in five minutes<\/li>\n<li>Certificates screen with search by recipient, certificate name, or exact credential ID, and template, status, source, and issue-date filters<\/li>\n<li>Bulk actions: revoke, reinstate, resend, or delete the certificates you check, or every certificate matching your filters, with a progress bar and a summary of anything skipped<\/li>\n<li>Earned certificates listed on each user's profile page with verify and download links<\/li>\n<li>Certificate templates list with trigger, page size, and status columns<\/li>\n<\/ul>\n\n<p><strong>Email<\/strong><\/p>\n\n<ul>\n<li>Branded HTML certificate emails: your logo or site name at the top, the message in a clean white card, and the certificate PDF attached<\/li>\n<li>A formatted message editor (bold, italics, lists, and links) and a View Certificate button<\/li>\n<li>Certificate merge fields in the email subject and body, so the email can name the exact course or quiz that was completed<\/li>\n<li>Send a test email to any address<\/li>\n<li>Resend a certificate's email with one click<\/li>\n<\/ul>\n\n<p><strong>Security, Privacy &amp; Accessibility<\/strong><\/p>\n\n<ul>\n<li>PDF and QR code generation happen locally on your server<\/li>\n<li>PDFs are protected against editing: Acrobat and other tools refuse to change text like the student name, while printing and copying stay available<\/li>\n<li>WordPress Privacy API integration (Tools &gt; Export\/Erase Personal Data)<\/li>\n<li>Clean uninstall with optional complete data removal<\/li>\n<li>Keyboard navigation, screen reader support, and reduced motion preferences<\/li>\n<\/ul>\n\n<h4>Premium Add-ons<\/h4>\n\n<p>Everything above is free on WordPress.org. Optional add-ons from <a href=\"https:\/\/pressprimer.com\/pressprimer-certificate-pricing\/\">pressprimer.com<\/a> extend the plugin in three tiers, each building on the one below it:<\/p>\n\n<p><strong>Educator<\/strong><\/p>\n\n<ul>\n<li><strong>Custom Fonts<\/strong> \u2013 Upload your brand's TTF fonts; they appear in every designer font control and render identically on screen and in the PDF.<\/li>\n<li><strong>Multi-Page Certificates<\/strong> \u2013 Add, duplicate, and reorder pages in the designer; every page renders in the PDF.<\/li>\n<li><strong>Bulk Awarding<\/strong> \u2013 Award a certificate to many recipients at once from a user list or a CSV, with a full per-row preview before anything sends.<\/li>\n<li><strong>Wallet Cards<\/strong> \u2013 A credit-card or business-card size card designed in the same designer and issued with every certificate, as a card PDF or a print sheet with cut marks.<\/li>\n<li><strong>Custom Page Sizes<\/strong> \u2013 Any width and height from 1 to 24 inches.<\/li>\n<li><strong>Email Templates<\/strong> \u2013 As many named award and expiry reminder emails as you need, chosen for each certificate template.<\/li>\n<li><strong>Brand Kit<\/strong> \u2013 Up to 10 brands, each with its colors, fonts, and logos, offered first in the designer, with Replace Colors to recolor a design in one step.<\/li>\n<li><strong>One-Off Certificates<\/strong> \u2013 Issue a certificate to anyone by name and email, with no account or course needed.<\/li>\n<li><strong>Expiry Reminder Emails<\/strong> \u2013 Remind recipients before their certificate expires, on a schedule you control, with a rich-text message (or a different reminder email per template) and a test send to any address.<\/li>\n<li><strong>Branded Verification Page<\/strong> \u2013 Your logo, accent color, intro line, and footer on the public verification page, with a live preview.<\/li>\n<li><strong>Social Sharing<\/strong> \u2013 One-click LinkedIn add-to-profile, share composers for LinkedIn, X, and Facebook, copy link, and link previews that show the certificate itself.<\/li>\n<\/ul>\n\n<p><strong>School<\/strong> <em>(everything in Educator, plus)<\/em><\/p>\n\n<ul>\n<li><strong>Issuing Organizations<\/strong> \u2013 Issuer profiles with their own name, logo, and web address; members as owners or issuers; templates assigned per organization so members see and award only their own.<\/li>\n<li><strong>Public Registry<\/strong> \u2013 An issuer profile page and per-credential program pages with a sample certificate image and earner count.<\/li>\n<li><strong>Credential Directory<\/strong> \u2013 A searchable public directory of credential holders, listed according to your site policy and per-certificate consent.<\/li>\n<li><strong>Organization-Branded Verification<\/strong> \u2013 The verification page carries the issuing organization's logo, accent color, intro, and footer.<\/li>\n<li><strong>Award Past Completions<\/strong> \u2013 Find everyone who completed a course, lesson, quiz, or assignment before the trigger existed, in the dates you choose, preview every row, and award them in one run, each certificate dated to its completion.<\/li>\n<li><strong>Credential ID Formats<\/strong> \u2013 Each organization's own ID format, like ACME-2026-00042, that never reuses a number and verifies however it is typed.<\/li>\n<li><strong>Organization Brands and Emails<\/strong> \u2013 Choose which of the site's brands and emails each organization's templates can use, and let owners manage their organizations' certificates in bulk.<\/li>\n<li><strong>Email Copies<\/strong> \u2013 Per-template CC and BCC on award emails, plus optional copies to LearnDash Group Leaders and PressPrimer Teachers.<\/li>\n<\/ul>\n\n<p><strong>Enterprise<\/strong> <em>(everything in School, plus)<\/em><\/p>\n\n<ul>\n<li><strong>Audit Log<\/strong> \u2013 A single, filterable record of who did what and when across the suite, with per-category retention controls, CSV export, and support for WordPress's Export and Erase Personal Data tools.<\/li>\n<li><strong>Open Badges 3.0<\/strong> \u2013 Every certificate can also be a signed Open Badges 3.0 credential that learners add to a digital wallet, upload to Credly or Open Badge Passport, or share as a badge image, and revoking the certificate revokes the badge for verifiers (PHP 8.2 or later required).<\/li>\n<li><strong>White Label<\/strong> \u2013 Run the certificate system under your own brand: the admin menu, dashboard, and logos, email footers, PDF document details, and custom admin styles.<\/li>\n<li><strong>Verification API and Embeddable Widget<\/strong> \u2013 A key-authenticated JSON endpoint that answers what the verification page shows, and a drop-in widget partners paste into their own pages.<\/li>\n<\/ul>\n\n<h4>Perfect For<\/h4>\n\n<ul>\n<li><strong>Course creators<\/strong> using LearnDash, LifterLMS, Tutor LMS, or LearnPress who need real, verifiable certificates<\/li>\n<li><strong>Training providers<\/strong> whose completion certificates must survive audits and employer checks<\/li>\n<li><strong>Universities and schools<\/strong> issuing program or workshop credentials<\/li>\n<li><strong>Membership and community sites<\/strong> recognizing achievements with shareable certificates<\/li>\n<li><strong>Standalone WordPress educators<\/strong> issuing certificates manually (no LMS is required)<\/li>\n<\/ul>\n\n<h4>Built-in Integrations<\/h4>\n\n<p>PressPrimer Certificate automatically detects and integrates with:<\/p>\n\n<p><strong>PressPrimer Quiz:<\/strong> Award a certificate when a learner passes a quiz, with quiz score and title merge fields.<\/p>\n\n<p><strong>PressPrimer Assignment:<\/strong> Award a certificate when an assignment is graded and passed, optionally with a minimum grade or score in points, with grade, points, and assignment merge fields.<\/p>\n\n<p><strong>LearnDash:<\/strong> Award on course, lesson, topic, or quiz completion, with associated merge fields.<\/p>\n\n<p><strong>LifterLMS:<\/strong> Award on course or quiz completion.<\/p>\n\n<p><strong>Tutor LMS:<\/strong> Award on course or quiz completion.<\/p>\n\n<p><strong>LearnPress:<\/strong> Award on course or quiz completion, including quizzes inside course sections.<\/p>\n\n<p>Every integration also offers \"Any\" options, so one template can cover every course or quiz without a trigger per item.<\/p>\n\n<p>All integrations are bundled in the free version, and the plugin is still fully functional if you don't use an LMS plugin.<\/p>\n\n<h4>Built for Developers<\/h4>\n\n<ul>\n<li>Public <code>ppcert_*()<\/code> functions for issuing, rendering, and linking certificates from your own plugin<\/li>\n<li><code>ppcert_issue_certificate()<\/code> arguments for recipients without a site account, merge overrides, and a credential ID you supply<\/li>\n<li>Filters and actions for page sizes, credential IDs, email templates and format, render variants, bulk actions, certificate permissions, and deletion<\/li>\n<li>Action hooks for issuance, revocation, and verification events<\/li>\n<li>Filter-based registries for custom trigger types (including value-only \"threshold\" triggers) and merge fields<\/li>\n<li>REST API support<\/li>\n<li>Custom database tables with automatic schema migration<\/li>\n<\/ul>\n\n<h4>Documentation &amp; Support<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/pressprimer.com\/knowledge-base\/pressprimer-certificate\/\">Knowledge Base<\/a><\/li>\n<\/ul>\n\n<h4>Source Code &amp; Development<\/h4>\n\n<p>The full uncompressed source code for all JavaScript and CSS files is available in our public GitHub repository:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/github.com\/PressPrimer\/pressprimer-certificate\">GitHub Repository<\/a><\/li>\n<\/ul>\n\n<p>The <code>\/src<\/code> directory contains all unminified source files. The plugin uses webpack for building production assets. To rebuild from source:<\/p>\n\n<ol>\n<li>Clone the repository<\/li>\n<li>Run <code>npm install<\/code> to install dependencies<\/li>\n<li>Run <code>npm run build<\/code> to compile assets<\/li>\n<\/ol>\n\n<h3>Privacy<\/h3>\n\n<p>PressPrimer Certificate stores certificate data (templates, issued certificates, recipient references, and issuance events) in your WordPress database under your full control. PDF and QR code generation happen locally on your server. No certificate or recipient data is ever transmitted to external servers. The single exception to \"nothing leaves your site\" is the optional email-course opt-in described under External Services; it sends only an email address that an administrator explicitly typed in and submitted.<\/p>\n\n<p>Issued certificates are public to anyone who has the link or the credential ID. The certificate's share page, its verification result, and its PDF download open without signing in and show the recipient's name, the certificate title, the issuer, the issue and expiry dates, and the full certificate with every merge field placed on its design (which can include the recipient's email address if the template uses that field). Core credential IDs are long, random, and never sequential, and rate limiting makes guessing them impractical, but anyone a recipient shares the link with, or who scans the QR code, sees the same information. If your site must meet GDPR or similar rules, say so in your privacy policy: the plugin adds suggested wording under Settings &gt; Privacy &gt; Policy Guide.<\/p>\n\n<p>The plugin integrates with the WordPress Privacy API:<\/p>\n\n<ul>\n<li><strong>Tools &gt; Export Personal Data<\/strong> includes all certificates issued to the requested person, including certificates issued to their email address without a site account.<\/li>\n<li><strong>Tools &gt; Erase Personal Data<\/strong> permanently deletes those certificates and removes the person from activity records on other certificates.<\/li>\n<\/ul>\n\n<p>Verification and download events are stored without IP addresses or user agents, and verification records are cleaned up on a configurable retention schedule. Administrators can permanently delete all plugin data via Settings &gt; Advanced &gt; \"Remove all data on uninstall\" before uninstalling the plugin.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin offers an optional free email course for administrators. When (and only when) a user types their email address into the opt-in form and clicks the subscribe button, the plugin connects to pressprimer.com to register the subscription.<\/p>\n\n<ul>\n<li><strong>When:<\/strong> Only on an explicit opt-in submission. No request is ever made automatically (no telemetry, no activation pings, no environment data).<\/li>\n<li><strong>What data:<\/strong> The typed email address and a tag naming which screen the form was on. Nothing else.<\/li>\n<li><strong>Unsubscribing:<\/strong> Every email includes an unsubscribe link, honored immediately.<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/pressprimer.com\/terms-conditions\/<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/pressprimer.com\/privacy-policy\/<\/li>\n<\/ul>\n\n<p>Dismissing the offer is remembered permanently and is stored only on your own site.<\/p>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>The plugin bundles the following open-source software (nothing is loaded from a CDN and no external requests are made):<\/p>\n\n<ul>\n<li><strong>TCPDF<\/strong> (6.11.3, pinned) \u2014 LGPL-3.0 by Nicola Asuni \/ Tecnick.com \u2014 renders certificate PDFs on your server. Its bundled barcode module also generates the QR codes. https:\/\/github.com\/tecnickcom\/TCPDF<\/li>\n<li><strong>Recharts<\/strong> (3.x) \u2014 MIT \u2014 draws the dashboard's awarded-over-time chart. Compiled into the plugin's script bundles. https:\/\/github.com\/recharts\/recharts<\/li>\n<li><strong>Day.js<\/strong> (1.x) \u2014 MIT \u2014 date handling in the admin apps. Compiled into the plugin's script bundles. https:\/\/github.com\/iamkun\/dayjs<\/li>\n<\/ul>\n\n<p>The bundled fonts are all licensed under the SIL Open Font License 1.1, with license files shipped alongside each family:  \u2026<\/p>\n\n<!--section=installation-->\n<h4>Automatic Installation<\/h4>\n\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong> in your WordPress admin<\/li>\n<li>Search for \"PressPrimer Certificate\"<\/li>\n<li>Click <strong>Install Now<\/strong> and then <strong>Activate<\/strong><\/li>\n<li>Navigate to <strong>Certificates<\/strong> in your admin menu; the setup tour will walk you through your first certificate<\/li>\n<\/ol>\n\n<h4>LMS Integration<\/h4>\n\n<p>If you have PressPrimer Quiz, PressPrimer Assignment, LearnDash, LifterLMS, Tutor LMS, or LearnPress installed, their triggers are enabled automatically. Open a certificate template's Award tab to connect it, choose a specific course or quiz, or an \"Any\" option to cover them all.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20this%20really%20free%2C%20or%20is%20it%20a%20limited%20trial%3F\"><h3>Is this really free, or is it a limited trial?<\/h3><\/dt>\n<dd><p>It's genuinely free and not locked down. PressPrimer Certificate includes unlimited templates, unlimited certificates, the full designer, plugin integrations, public verification, bulk actions, and branded HTML email in the free version. Optional Educator, School, and Enterprise add-ons add features such as custom fonts, wallet cards, bulk awarding, issuing organizations, Open Badges, and an audit log; the Upgrade page under Certificates compares them, and the free plugin never loses a feature.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20require%20an%20lms%3F\"><h3>Does this plugin require an LMS?<\/h3><\/dt>\n<dd><p>No. PressPrimer Certificate is fully functional with no LMS installed; you can design certificates and issue them manually to any user. When PressPrimer Quiz, PressPrimer Assignment, LearnDash, LifterLMS, Tutor LMS, or LearnPress is detected, automatic issuance triggers become available.<\/p><\/dd>\n<dt id=\"can%20i%20issue%20a%20certificate%20to%20someone%20without%20an%20account%20on%20my%20site%3F\"><h3>Can I issue a certificate to someone without an account on my site?<\/h3><\/dt>\n<dd><p>The free plugin issues certificates to your site's users, by hand or automatically. The Educator add-on's Issue One-Off sends a certificate to anyone by name and an optional email address, with no account or course needed, and WordPress's Export and Erase Personal Data tools find those certificates by email address.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20pressprimer%20quiz%20and%20pressprimer%20assignment%3F\"><h3>Does it work with PressPrimer Quiz and PressPrimer Assignment?<\/h3><\/dt>\n<dd><p>Yes. Quiz pass thresholds and Assignment grades are included triggers with their own merge fields, so a certificate can show the score a learner earned.<\/p><\/dd>\n<dt id=\"how%20does%20verification%20work%3F\"><h3>How does verification work?<\/h3><\/dt>\n<dd><p>Every certificate can include a unique credential ID and\/or a QR code. Scanning the QR code, clicking it, or typing the ID into your site's verification page shows whether the credential is valid, revoked, or expired, along with the recipient name, what it was awarded for, and the issue date. No account is needed to verify.<\/p><\/dd>\n<dt id=\"how%20do%20learners%20see%20the%20certificates%20they%20have%20earned%3F\"><h3>How do learners see the certificates they have earned?<\/h3><\/dt>\n<dd><p>Three ways. Each certificate is emailed as a PDF the moment it is issued. Learners can also visit a My Certificates page you create with the included block or <code>[ppcert_my_certificates]<\/code> shortcode, which lists everything they have earned with verify and download links, status filters, and sorting. And every certificate has its own shareable view page with the certificate image and a PDF download.<\/p><\/dd>\n<dt id=\"can%20learners%20add%20a%20certificate%20to%20linkedin%20or%20a%20digital%20wallet%3F\"><h3>Can learners add a certificate to LinkedIn or a digital wallet?<\/h3><\/dt>\n<dd><p>Every certificate has its own shareable page and PDF in the free plugin. The Educator add-on adds LinkedIn's Add to Profile button and share links for LinkedIn, X, and Facebook. The Enterprise add-on can also issue each certificate as a signed Open Badges 3.0 credential that learners add to a badge wallet such as the Learner Credential Wallet, or upload to Credly or Open Badge Passport.<\/p><\/dd>\n<dt id=\"can%20i%20put%20a%20link%20to%20a%20learner%27s%20certificate%20on%20the%20course%20page%20itself%3F\"><h3>Can I put a link to a learner's certificate on the course page itself?<\/h3><\/dt>\n<dd><p>Yes. Add the Certificate Link block (or the <code>[ppcert_certificate_link]<\/code> shortcode) to a course, lesson, topic, or quiz page, or to any page where you have placed a PressPrimer quiz or assignment with its block or shortcode. Each logged-in learner sees one button that downloads their own certificate for that item (you can point it at the certificate page or the verification page instead), and nothing at all until they have earned it. If the learner has earned it more than once, the newest certificate is linked. Add a message in the block's settings and it appears in a panel with the button, only when the button shows, so you can congratulate the learner and explain the certificate without that text stranding on the page for everyone else. Point the block at a specific quiz, assignment, or post by ID, or at a template, when the page itself is not the source.<\/p><\/dd>\n<dt id=\"can%20a%20verifier%20download%20the%20pdf%20from%20the%20verification%20page%3F\"><h3>Can a verifier download the PDF from the verification page?<\/h3><\/dt>\n<dd><p>Yes. Valid and expired certificates show a Download PDF button on the verification page, so an employer or registrar can keep a copy. Revoked certificates do not offer a download.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20edit%20a%20template%20after%20certificates%20have%20been%20issued%3F\"><h3>What happens if I edit a template after certificates have been issued?<\/h3><\/dt>\n<dd><p>Nothing changes for existing certificates. Each certificate snapshots its design and data at issue time, so a certificate always looks exactly as it did the day it was earned. That includes the display name: a certificate keeps the name it was issued with. Template edits only affect future issuance.<\/p><\/dd>\n<dt id=\"can%20one%20certificate%20template%20cover%20all%20of%20my%20courses%3F\"><h3>Can one certificate template cover all of my courses?<\/h3><\/dt>\n<dd><p>Yes. On a template's Award tab, choose an \"Any\" option instead of a specific course, quiz, or lesson, and that one trigger awards for every item of that type (lessons and topics are scoped to a course you pick). Pair it with a certificate display name like \"{{source.course_title}} Certificate\" and each certificate is named after what earned it in the My Certificates list, on the verification page, and in emails.<\/p><\/dd>\n<dt id=\"can%20a%20merge%20field%20sit%20inside%20a%20sentence%3F\"><h3>Can a merge field sit inside a sentence?<\/h3><\/dt>\n<dd><p>Yes. In any text element, put the cursor where the value belongs and use the Insert Merge Field button. The line centers, wraps, and styles as one piece, so \"Awarded to {{recipient.display_name}} on [date]\" behaves like a single line of text. Merge fields also work in the certificate email's subject and body.<\/p><\/dd>\n<dt id=\"can%20someone%20edit%20a%20certificate%20pdf%20and%20change%20the%20name%3F\"><h3>Can someone edit a certificate PDF and change the name?<\/h3><\/dt>\n<dd><p>Certificate PDFs are generated with AES-256 protection that denies editing, so Acrobat and similar tools refuse to modify the text (unlike plain LMS certificates, which anyone can retype). Printing and text copying remain available. More importantly, every certificate's QR code and credential ID point to the verification page on your site, where the authoritative name, date, and status live. A tampered or fabricated PDF immediately mismatches what a verifier sees.<\/p><\/dd>\n<dt id=\"what%20page%20sizes%20do%20certificates%20use%3F\"><h3>What page sizes do certificates use?<\/h3><\/dt>\n<dd><p>Letter, A4, Legal, and A3, in landscape or portrait. Choose a template's size in the designer's Size menu, and the site's default size under Settings &gt; Appearance. Every starter design ships in Letter and A4; with A3 or Legal as your default, the starter gallery picks the matching designs and you switch the size in the designer. The PDF renders at print quality from the same layout you see on the canvas. The Educator add-on adds custom sizes.<\/p><\/dd>\n<dt id=\"can%20i%20change%20how%20certificate%20emails%20look%3F\"><h3>Can I change how certificate emails look?<\/h3><\/dt>\n<dd><p>Yes. Certificate emails are HTML: your email logo (or your site name) at the top, the message in a white card, and a footer naming your site, with the certificate PDF attached. Under Settings &gt; Email, choose the logo, write the message with bold, italics, lists, and links, add a View Certificate button with the {certificate_button} token, and send a test to any address to check it in Gmail, Outlook, or any other email app. Recipient names and certificate titles always appear as plain text.<\/p><\/dd>\n<dt id=\"can%20i%20revoke%20or%20delete%20many%20certificates%20at%20once%3F\"><h3>Can I revoke or delete many certificates at once?<\/h3><\/dt>\n<dd><p>Yes. On the Certificates screen, check the certificates you want, or check them all and choose \"Select all certificates that match these filters\", then pick Revoke, Reinstate, Resend email, or Delete from Bulk actions. A progress bar shows the work as it runs, and a summary lists anything skipped and why. Deleting every certificate that matches a filter asks you to type DELETE first. If you close the page partway, the Certificates screen offers to resume or discard the rest.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Added: Certificate emails are branded HTML, with your email logo or site name at the top, the message in a white card, and a footer naming your site, matching PressPrimer Assignment's emails<\/li>\n<li>Added: A View Certificate button in certificate emails: the new {certificate_button} token, included in the default email<\/li>\n<li>Added: Settings &gt; Email has an email logo, a formatted message editor with bold, italics, lists, and links, and test emails to any address<\/li>\n<li>Added: A3 and Legal page sizes, in the designer and as the default certificate size under Settings &gt; Appearance<\/li>\n<li>Added: Bulk actions on the Certificates screen: revoke with one reason, reinstate, resend email, or delete the certificates you check<\/li>\n<li>Added: Bulk actions can apply to every certificate matching the current search and filters, not just the ones on the page; deleting them all asks you to type DELETE first<\/li>\n<li>Added: A bulk action interrupted by closing the page can be resumed or discarded from the Certificates screen<\/li>\n<li>Added: PressPrimer Assignment triggers can require a minimum score in points, alongside or instead of a minimum grade percentage<\/li>\n<li>Added: A Score (Points) merge field prints an assignment grade as points earned of points possible, such as 62 \/ 65<\/li>\n<li>Added: The designer explains the dashed safe-print line around the page<\/li>\n<li>Added: A one-time request for feedback after 50 certificates; dismiss it for good or postpone it for 30 days<\/li>\n<li>Added: Support for the Educator, School, and Enterprise 2.1 add-ons, including certificates for people without a site account, credential ID formats and IDs from a spreadsheet, wallet cards, email templates, and brand kits<\/li>\n<li>Improved: Certificate pages and public PDF downloads are rate limited per visitor, and certificate preview images use file names that can't be guessed from the credential ID<\/li>\n<li>Improved: PDF downloads and email attachments share one file name, such as certificate-ab12-cd34-ef56.pdf<\/li>\n<li>Improved: The designer's \"Changed elsewhere\" notice explains what can cause a save conflict and when the other save happened, and offers Reload<\/li>\n<li>Improved: With A3 or Legal as the default size, the starter gallery preselects the matching A4 or Letter designs and explains how to change the size<\/li>\n<li>Improved: Switching a design to a different page size keeps text, line thickness, and corner radius within their limits, so the design saves exactly as shown<\/li>\n<li>Improved: Downloaded PDFs record the recipient's name in their document properties, matching the emailed copy<\/li>\n<li>Improved: Saving a template while an add-on is inactive keeps that add-on's settings and design data<\/li>\n<li>Changed: Clearing the From address on Settings &gt; Email now sends from the site's administration email, and an invalid address shows an error when you save instead of being ignored<\/li>\n<li>Changed: For developers, <code>ppcert_email_content<\/code> now carries the full HTML email; return 'text' from the new <code>ppcert_email_format<\/code> filter to send plain-text emails as in 2.0<\/li>\n<li>Changed: For developers, new extension points for add-ons and integrations: <code>ppcert_issue_certificate()<\/code> arguments for recipients without an account, merge overrides, duplicate scope, and a supplied credential ID; duplicate-suppression refs as lists; and filters and actions for page sizes, credential IDs, email templates, render variants, bulk actions, certificate permissions, and deletion<\/li>\n<li>Fixed: Thin horizontal and vertical lines, including the rules and signature lines in the starter templates, draw perfectly straight on the canvas, in PDFs, and in certificate images<\/li>\n<li>Fixed: The certificate page shows the recipient's name as it was issued, not their current account name<\/li>\n<li>Fixed: Award triggers can only be viewed or changed by people allowed to edit that template<\/li>\n<li>Fixed: A revoked certificate can no longer be emailed again, even from an old Resend link<\/li>\n<li>Fixed: Erasing a person's data with WordPress's privacy tools also removes them from activity records on other people's certificates<\/li>\n<li>Fixed: \"Remove all data on uninstall\" also removes certificate page previews and the font cache<\/li>\n<li>Fixed: Two downloads or emails of the same certificate at the same moment no longer interfere with each other<\/li>\n<li>Fixed: Certificate pages load on servers without the Imagick extension<\/li>\n<li>Fixed: The verification page picker in Settings searches every published page, and a chosen page is no longer reported as deleted on sites with many pages<\/li>\n<li>Fixed: Certificate links work on sites that use plain permalinks<\/li>\n<li>Fixed: Certificate pages give themes that print a post date the correct local date<\/li>\n<li>Fixed: Deactivating the plugin removes the certificate page addresses until it is activated again<\/li>\n<li>Fixed: The \"verification page deleted\" notice shows only to people who can change settings<\/li>\n<li>Fixed: Duplicated templates keep their settings; award triggers are still not copied<\/li>\n<li>Fixed: The designer's merge-field samples from user meta always show your own values, not another administrator's<\/li>\n<li>Fixed: The verification rate limit's time window no longer extends with every request<\/li>\n<li>Fixed: The \"Changed elsewhere\" notice no longer opens under the WordPress admin bar<\/li>\n<li>Fixed: On sites with no LMS or quiz plugin, the designer's Award tab shows the certificate name, validity, test email, and add-on settings instead of only a message about award sources<\/li>\n<li>Fixed: The suggested privacy policy text describes the records the plugin keeps: verifications and downloads, not page views<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Fixed: On sites using LiteSpeed Cache with REST API caching, the template editor and other PressPrimer Certificate screens no longer load an outdated cached copy, which caused a false \"Changed elsewhere\" warning when saving a template<\/li>\n<li>Improved: Certificate PDFs raise PHP's memory limit while rendering, so certificates using large custom fonts, such as Chinese, Japanese, or Korean fonts, render reliably on hosts with a low default limit<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed: The certificate view page no longer lists the site's comments, or offers an Edit link that leads to the Posts list, on themes and page builders that exposed them. <\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added: Suggested privacy policy text under Settings &gt; Privacy &gt; Policy Guide, covering what certificates store and that certificate pages, verification, and PDF downloads are public to anyone with the link or credential ID<\/li>\n<li>Added: Search and filters on the Certificates screen.<\/li>\n<li>Added: Send yourself a test award email from the template editor.<\/li>\n<li>Added: Four Geometric starter templates.<\/li>\n<li>Added: Multi-page certificate rendering.<\/li>\n<li>Added: An Upgrade page under the Certificates menu comparing the free plugin with the new Educator, School, and Enterprise tiers.<\/li>\n<li>Added: Certificate Link block and shortcode.<\/li>\n<li>Added: Download PDF button on the public verification page for valid and expired certificates, so a verifier can keep a copy without an account.<\/li>\n<li>Added: WebP and AVIF images in certificate designs render in PDFs and previews on servers whose image library supports them.<\/li>\n<li>Added: Short upgrade notes for administrators on the Settings Email tab and in the designer.<\/li>\n<li>Added: Public developer API. New <code>ppcert_*()<\/code> functions let other plugins issue certificates, render PDFs, look up a learner's certificate, and build view and download links through a supported, stable surface.<\/li>\n<li>Added: Value-only award trigger support.<\/li>\n<li>Added: Third-party certificate integrations now appear with their proper names everywhere the built-in integrations do, including while their plugin is deactivated.<\/li>\n<li>Added: A duplicate-suppression scoping filter for integrations whose completion events carry per-occurrence references.<\/li>\n<li>Added: Support for Educator, School, and Enterprise add-ons.<\/li>\n<li>Added: Add-ons can scope the Certificates list (its Template and Source filters included), the Dashboard, and certificate actions to an issuing organization (used by School's owner and issuer roles)<\/li>\n<li>Improved: Designer sidebar labels and help icons render at higher contrast.<\/li>\n<li>Improved: Send Test Email on the Email settings tab saves your unsaved changes first, so the test always reflects what is on the page.<\/li>\n<li>Fixed: The verification form's Verify button uses the same button style as the rest of the plugin, and the credential ID field is sized for a credential ID instead of stretching across the page.<\/li>\n<li>Fixed: Themes can no longer underline the plugin's buttons and filter chips.<\/li>\n<li>Fixed: The Valid For controls in the designer's Award tab keep the number readable while its up and down controls are showing.<\/li>\n<li>Fixed: The designer's merge-field meta-key pickers, which read other users' and posts' data, are for administrators only.<\/li>\n<li>Fixed: Custom merge-field groups registered with a sub-field named \"label\", \"key\", or \"resolver\" no longer disappear from the designer palette.<\/li>\n<li>Fixed: The certificate view page's preview image keeps its layout wrapper instead of rendering flush against the details panel.<\/li>\n<li>Fixed: The verification result's status colors appear on the JavaScript-enhanced page as well as the no-JavaScript page.<\/li>\n<li>Fixed: Admin styling loads on every suite screen, including addon pages, so dropdowns keep their intended focus style.<\/li>\n<li>Fixed: The Settings page shows its Save button on addon tabs.<\/li>\n<li>Fixed: When a design uses a font that is unavailable, the designer canvas substitutes the same face the PDF uses, keeping the two identical.<\/li>\n<li>Fixed: Temporary PDF files are removed through the WordPress file API, and uninstall cleanup queries use identifier placeholders throughout.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added: Merge fields now work inside text elements. <\/li>\n<li>Added: \"Any\" award options in the trigger picker. One trigger can award for any quiz, any course, or any lesson in a chosen course, so a single certificate covers your whole catalog.<\/li>\n<li>Added: The QR code and credential ID on issued PDFs are now clickable links to the certificate's verification page.<\/li>\n<li>Added: Alignment tools in the designer. Align and distribute selected elements from the toolbar, and matching-margin guides show measurements when two elements sit the same distance from opposite page edges.<\/li>\n<li>Added: Certificate merge fields in the issuance email subject and body, so the email can name the exact course or quiz that was completed.<\/li>\n<li>Added: Certificate display names. Set a display name pattern on the Award tab, like \"{{source.course_title}} Certificate\", and each certificate is named after what earned it in the My Certificates list, on its view and verification pages, in the admin list, and in emails. <\/li>\n<li>Improved: Sample values in the designer's merge field menus render at higher contrast.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: certificate designer, credential IDs, QR verification, automatic issuance from PressPrimer Quiz, PressPrimer Assignment, LearnDash, LifterLMS, Tutor LMS, and LearnPress, email delivery, and a public verification page.<\/li>\n<\/ul>","raw_excerpt":"Design, issue, and verify certificates on your own site. A drag-and-drop designer, automatic awards from popular LMS plugins, and scannable QR proof.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/348748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=348748"}],"author":[{"embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pressprimer"}],"wp:attachment":[{"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=348748"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=348748"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=348748"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=348748"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=348748"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/skr.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=348748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}