{"id":392993,"date":"2026-10-28T20:18:02","date_gmt":"2026-10-28T20:18:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/verifycate\/"},"modified":"2026-10-28T20:17:34","modified_gmt":"2026-10-28T20:17:34","slug":"verifycate","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/verifycate\/","author":15120440,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.0","stable_tag":"0.1.0","tested":"7.1.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Verifycate","header_author":"Verifycate","header_description":"Issue verifiable certificates from your WordPress LMS. Connects LearnDash, Tutor LMS, LearnPress, LifterLMS, Sensei and more to Verifycate.","assets_banners_color":"","last_updated":"2026-10-28 20:17:34","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/verifycate\/wp-plugin","header_author_uri":"https:\/\/verifycate.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"aswinshenoy","date":"2026-10-28 20:17:34","revision":3771545}},"upgrade_notice":{"0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3771603,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3771603,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":{"verifycate\/wallet":{"name":"verifycate\/wallet","title":"Verifycate Wallet"}},"tagged_versions":["0.1.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3771544,"resolution":"1","location":"assets","locale":"","width":2752,"height":2064},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3771544,"resolution":"10","location":"assets","locale":"","width":2752,"height":2064},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3771544,"resolution":"11","location":"assets","locale":"","width":2752,"height":2064},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3771544,"resolution":"12","location":"assets","locale":"","width":2752,"height":2064},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3771544,"resolution":"2","location":"assets","locale":"","width":2752,"height":2064},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3771544,"resolution":"3","location":"assets","locale":"","width":2752,"height":2064},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3771544,"resolution":"4","location":"assets","locale":"","width":2752,"height":2064},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3771544,"resolution":"5","location":"assets","locale":"","width":2752,"height":2064},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3771544,"resolution":"6","location":"assets","locale":"","width":2752,"height":2064},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3771544,"resolution":"7","location":"assets","locale":"","width":2752,"height":2064},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3771544,"resolution":"8","location":"assets","locale":"","width":2752,"height":2064},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3771544,"resolution":"9","location":"assets","locale":"","width":2752,"height":2064}},"screenshots":{"1":"Connect your Verifycate workspace and see which LMS plugins are active.","2":"Store the workspace API key without exposing it in the admin.","3":"Map any course, quiz or lesson to a Verifycate certificate.","4":"Add a minimum score for quiz-based completions.","5":"Pick certificates directly from the Verifycate catalogue.","6":"Search quiz and lesson options grouped by course.","7":"Use the same mapping flow for Sensei LMS.","8":"Map custom completion hooks when an LMS is not covered.","9":"Monitor queued and issued certificates from the logs screen.","10":"Give learners a wallet with every certificate they have earned.","11":"Let anyone verify a certificate with its public ID.","12":"Embed a certificate card anywhere with a shortcode."}},"plugin_section":[],"plugin_tags":[44546,10796,40048,2195,179218],"plugin_category":[],"plugin_contributors":[289324],"plugin_business_model":[],"class_list":["post-392993","plugin","type-plugin","status-publish","hentry","plugin_tags-certificates","plugin_tags-learndash","plugin_tags-learnpress","plugin_tags-lms","plugin_tags-tutor-lms","plugin_contributors-aswinshenoy","plugin_committers-aswinshenoy"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/verifycate\/assets\/icon-128x128.png?rev=3771603","icon_2x":"https:\/\/ps.w.org\/verifycate\/assets\/icon-256x256.png?rev=3771603","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-1.png?rev=3771544","caption":"Connect your Verifycate workspace and see which LMS plugins are active."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-2.png?rev=3771544","caption":"Store the workspace API key without exposing it in the admin."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-3.png?rev=3771544","caption":"Map any course, quiz or lesson to a Verifycate certificate."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-4.png?rev=3771544","caption":"Add a minimum score for quiz-based completions."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-5.png?rev=3771544","caption":"Pick certificates directly from the Verifycate catalogue."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-6.png?rev=3771544","caption":"Search quiz and lesson options grouped by course."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-7.png?rev=3771544","caption":"Use the same mapping flow for Sensei LMS."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-8.png?rev=3771544","caption":"Map custom completion hooks when an LMS is not covered."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-9.png?rev=3771544","caption":"Monitor queued and issued certificates from the logs screen."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-10.png?rev=3771544","caption":"Give learners a wallet with every certificate they have earned."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-11.png?rev=3771544","caption":"Let anyone verify a certificate with its public ID."},{"src":"https:\/\/ps.w.org\/verifycate\/assets\/screenshot-12.png?rev=3771544","caption":"Embed a certificate card anywhere with a shortcode."}],"raw_content":"<!--section=description-->\n<p>Verifycate connects your WordPress LMS to the Verifycate credential platform, so\na verifiable certificate is queued and issued automatically when a learner\ncompletes a course.<\/p>\n\n<p>Supported course plugins:<\/p>\n\n<ul>\n<li>LearnDash<\/li>\n<li>Tutor LMS<\/li>\n<li>LearnPress<\/li>\n<li>LifterLMS<\/li>\n<li>Sensei<\/li>\n<li>A generic custom hook for course, membership, e-commerce and in-house plugins<\/li>\n<\/ul>\n\n<p>Highlights:<\/p>\n\n<ul>\n<li>Automatic issuance on course completion, quiz passing or lesson completion,\nwith \u201cAny\u201d options so one mapping can cover a whole catalogue or a group of\nitems.<\/li>\n<li>Optional minimum quiz scores, so a certificate is only issued after the learner\nreaches the required result.<\/li>\n<li>Map learner and course data to certificate attributes with tokens such as\n{user_name}, {course_title}, {completion_date}, {user_meta:key} and\n{course_meta:key}.<\/li>\n<li>Control repeat completions: issue once per learner, or reissue onto the latest\npublished design for recertification.<\/li>\n<li>A durable issuance queue with exponential backoff, visible failures and a\nretry action, so a temporary API outage does not lose a completion.<\/li>\n<li>A certificate wallet shortcode and block so learners can open what they have\nearned, plus single-certificate and public-verification shortcodes.<\/li>\n<li>Search, sorting, pagination and bulk actions for course mappings.<\/li>\n<li>A dedicated Configure screen for the workspace API key and environment\nsettings.<\/li>\n<li>Translation-ready, with a bundled <code>languages\/verifycate.pot<\/code> template.<\/li>\n<li>A connection test that explains bad keys, missing plans and permission\nproblems.<\/li>\n<li>WP-CLI commands for status, mappings, direct issuance, queue processing,\nretries and logs.<\/li>\n<\/ul>\n\n<p>Designing the certificate itself happens in the Verifycate dashboard. This\nplugin handles the connection and issuance.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Verifycate API to create and issue digital\ncertificates.<\/p>\n\n<ul>\n<li>Service: Verifycate (https:\/\/verifycate.com)<\/li>\n<li>API endpoint: https:\/\/api.verifycate.com<\/li>\n<li>What is sent, and when: after an administrator connects the site with a\nVerifycate workspace API key and configures at least one course mapping, the\nplugin sends the learner's name, email address, the course title, the\ncompletion date, a score when the LMS provides one, and any mapped certificate\nattributes to the Verifycate API so the certificate can be created, issued and\ndelivered. When a logged-in learner opens the certificate wallet, their\nWordPress account email is sent to retrieve their certificates. Public\nverification sends only the certificate's public ID. No learner data is sent\nby the issuance pipeline before the site is connected and a mapping is saved.<\/li>\n<li>The connection uses the REST API over HTTPS with a workspace API key.<\/li>\n<li>Terms of Use: https:\/\/verifycate.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/verifycate.com\/privacy<\/li>\n<li>Pricing: https:\/\/verifycate.com\/pricing<\/li>\n<\/ul>\n\n<p>A paid Verifycate workspace is required for the plugin to issue certificates.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Verifycate stores workspace settings, certificate mappings, issuance queue\nentries and activity logs in the WordPress database. Queue entries and logs can\ninclude a learner's name, email address, course, quiz or lesson identifiers,\ncertificate metadata and API responses needed to diagnose issuance. Logs can be\ncleared from Verifycate &gt; Logs. Uninstalling the plugin removes settings,\nmappings, queue history and logs only when the administrator enables\n\u201cDelete settings, mappings, queue history and logs when the plugin is\nuninstalled\u201d on the Configure screen.<\/p>\n\n<p>Certificate issuance sends learner data to Verifycate as described under\nExternal services. The Verifycate privacy policy is available at\nhttps:\/\/verifycate.com\/privacy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/verifycate\/<\/code>, or install it\nthrough the WordPress plugins screen.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to Verifycate &gt; Get started, paste a workspace API key, and click Connect\nVerifycate. The plugin finds the workspace, checks the key scopes and plan,\nand tests the connection.<\/li>\n<li>Create at least one certificate in the Verifycate dashboard, then map a\ncourse under Verifycate &gt; Mappings and choose the course, quiz-passed or\nlesson-completed trigger.<\/li>\n<li>Optional: add <code>[verifycate_wallet]<\/code> to a learner-facing page, or insert the\nVerifycate Wallet block.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20an%20lms%20plugin%3F\"><h3>Does this plugin require an LMS plugin?<\/h3><\/dt>\n<dd><p>No. The plugin works with LearnDash, Tutor LMS, LearnPress, LifterLMS and Sensei\nwhen they are present, and you can also issue certificates through the custom\nhook. A custom-hook mapping lets you connect other plugins without waiting for a\ndedicated integration.<\/p><\/dd>\n<dt id=\"do%20i%20need%20a%20verifycate%20account%3F\"><h3>Do I need a Verifycate account?<\/h3><\/dt>\n<dd><p>Yes. Certificates are created and hosted by Verifycate. The plugin is the\nconnection between your WordPress site and your Verifycate workspace.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20design%20my%20certificates%3F\"><h3>Does the plugin design my certificates?<\/h3><\/dt>\n<dd><p>No. You design certificates in the Verifycate dashboard and map to them here.<\/p><\/dd>\n<dt id=\"can%20i%20issue%20a%20certificate%20for%20a%20quiz%20or%20a%20lesson%3F\"><h3>Can I issue a certificate for a quiz or a lesson?<\/h3><\/dt>\n<dd><p>Yes. Choose the LMS, then select the course-completed, quiz-passed or\nlesson-completed trigger and pick a specific course, quiz or lesson \u2014 or use one\nof the \u201cAny\u201d options to cover a whole catalogue or a group of items. Quiz\ntriggers can optionally require a minimum score. For an event your LMS does not\nexpose, use the custom hook and trigger <code>verifycate_course_completed<\/code> from your\nown code.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20an%20api%20key%3F\"><h3>Does it work without an API key?<\/h3><\/dt>\n<dd><p>No. Course-completion issuance requires a workspace API key so the plugin can\ntalk to the Verifycate API.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20verifycate%20api%20is%20temporarily%20unavailable%3F\"><h3>What happens if the Verifycate API is temporarily unavailable?<\/h3><\/dt>\n<dd><p>The completion is written to a database queue. The plugin retries with\nexponential backoff, up to five attempts, and shows the last error under\nVerifycate &gt; Logs. Failed jobs can be retried after the connection or mapping is\nfixed.<\/p><\/dd>\n<dt id=\"where%20is%20data%20stored%3F\"><h3>Where is data stored?<\/h3><\/dt>\n<dd><p>Settings, encrypted API key, mappings, queue jobs and bounded logs are stored in\nyour WordPress database. Uninstall removes them only when the administrator\nenabled data removal on the Get started screen.<\/p><\/dd>\n<dt id=\"can%20learners%20see%20their%20certificates%3F\"><h3>Can learners see their certificates?<\/h3><\/dt>\n<dd><p>Yes. Add the <code>[verifycate_wallet]<\/code> shortcode or the Verifycate Wallet block to a\npage. Logged-in learners see the certificates issued to their account email.\nYou can also embed a single certificate with <code>[verifycate_certificate\npublic_id=\"...\"]<\/code> or add a public verification form with <code>[verifycate_verify]<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20translate%20the%20plugin%3F\"><h3>Can I translate the plugin?<\/h3><\/dt>\n<dd><p>Yes. The plugin is translation-ready and includes a <code>languages\/verifycate.pot<\/code>\ntemplate. Use Poedit, Loco Translate, or WP-CLI to create a translation for your\nlocale, then place the <code>.po<\/code> and <code>.mo<\/code> files in <code>wp-content\/languages\/plugins\/<\/code>\nor the plugin's <code>languages\/<\/code> directory.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Connection setup with an API key stored encrypted at rest and a connection\ntest with actionable errors.<\/li>\n<li>Course mappings for LearnDash, Tutor LMS, LearnPress, LifterLMS, Sensei and a\ncustom hook, including any-course mappings and attribute templates.<\/li>\n<li>Course-completed, quiz-passed and lesson-completed triggers, with optional\nminimum quiz scores.<\/li>\n<li>Durable issuance queue with retries, exponential backoff and a retry action.<\/li>\n<li>Duplicate suppression and recertification (reissue) policies.<\/li>\n<li>Certificate wallet shortcode and server-rendered block, plus\nsingle-certificate and public-verification shortcodes.<\/li>\n<li>Search, sorting, pagination and bulk actions for course mappings.<\/li>\n<li>Dedicated Configure screen for the workspace API key and environment settings.<\/li>\n<li>Translation-ready with a bundled POT file.<\/li>\n<li>Admin mappings, queue and activity log screens.<\/li>\n<li>WP-CLI commands for status, mappings, issuance, queue, retries and logs.<\/li>\n<\/ul>","raw_excerpt":"Issue verifiable certificates from your WordPress LMS with Verifycate.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/392993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=392993"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/aswinshenoy"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=392993"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=392993"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=392993"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=392993"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=392993"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=392993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}