{"id":395180,"date":"2026-11-05T00:05:02","date_gmt":"2026-11-05T00:05:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/open-badges-for-learndash\/"},"modified":"2026-11-05T00:04:26","modified_gmt":"2026-11-05T00:04:26","slug":"lxd-integral-microcredentials-for-learndash","status":"publish","type":"plugin","link":"https:\/\/lt.wordpress.org\/plugins\/lxd-integral-microcredentials-for-learndash\/","author":23213961,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"6.6","requires_php":"8.1","requires_plugins":null,"header_name":"LXD Integral Microcredentials for LearnDash","header_author":"LXD Integral Learning Ltd.","header_description":"Automatically issue Open Badges to LearnDash learners via Open Badge Factory or CanCred.","assets_banners_color":"010e59","last_updated":"2026-11-05 00:04:26","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/LXD-Integral\/lxd-integral-microcredentials-for-learndash","header_author_uri":"https:\/\/lxdintegral.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":212,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"lxdintegral","date":"2026-11-05 00:04:26","revision":3784980}},"upgrade_notice":{"1.0.0":"<p>First directory release. Existing 0.x installs upgrade in place; the database schema is upgraded automatically.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3784980,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3784980,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3784980,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3784980,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3784980,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"obld\/earned-badges":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"obld\/earned-badges","title":"Earned Badges","category":"widgets","icon":"awards","description":"Show the badges the current visitor has earned.","keywords":["badge","open badges","learndash"],"textdomain":"lxd-integral-microcredentials-for-learndash","supports":{"html":false,"align":["wide","full"],"spacing":{"margin":true,"padding":true}},"attributes":{"columns":{"type":"number","default":3},"size":{"type":"number","default":96},"showName":{"type":"boolean","default":true},"link":{"type":"boolean","default":false},"showExport":{"type":"boolean","default":true},"showVerify":{"type":"boolean","default":true}},"editorScript":"file:.\/index.js"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3785012,"resolution":"1","location":"assets","locale":"","width":2560,"height":2000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3785025,"resolution":"2","location":"assets","locale":"","width":2560,"height":1600},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3785012,"resolution":"3","location":"assets","locale":"","width":2560,"height":2000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3785012,"resolution":"4","location":"assets","locale":"","width":2560,"height":2000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3785012,"resolution":"5","location":"assets","locale":"","width":2560,"height":1800},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3785012,"resolution":"6","location":"assets","locale":"","width":2560,"height":1440}},"screenshots":{"1":"Settings: provider credentials with verified connection status.","2":"Badges: the synced badge library, with Sync Now and Refresh Award Status.","3":"Triggers: rules mapping LearnDash completions to badges.","4":"Issue Badges: award by hand or backfill a trigger.","5":"Activity Log: every attempt, filterable and exportable.","6":"The Earned Badges block on a learner's page, with Save &amp; share, Verify, and Saved to Passport."}},"plugin_section":[],"plugin_tags":[2306,290784,10796,290783,192752],"plugin_category":[],"plugin_contributors":[290785],"plugin_business_model":[],"class_list":["post-395180","plugin","type-plugin","status-publish","hentry","plugin_tags-badges","plugin_tags-cancred","plugin_tags-learndash","plugin_tags-microcredentials","plugin_tags-open-badges","plugin_contributors-lxdintegral","plugin_committers-lxdintegral"],"banners":{"banner":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/banner-772x250.png?rev=3784980","banner_2x":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/banner-1544x500.png?rev=3784980","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/icon.svg?rev=3784980","icon":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/icon.svg?rev=3784980","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-1.png?rev=3785012","caption":"Settings: provider credentials with verified connection status."},{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-2.png?rev=3785025","caption":"Badges: the synced badge library, with Sync Now and Refresh Award Status."},{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-3.png?rev=3785012","caption":"Triggers: rules mapping LearnDash completions to badges."},{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-4.png?rev=3785012","caption":"Issue Badges: award by hand or backfill a trigger."},{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-5.png?rev=3785012","caption":"Activity Log: every attempt, filterable and exportable."},{"src":"https:\/\/ps.w.org\/lxd-integral-microcredentials-for-learndash\/assets\/screenshot-6.png?rev=3785012","caption":"The Earned Badges block on a learner's page, with Save &amp; share, Verify, and Saved to Passport."}],"raw_content":"<!--section=description-->\n<p>LXD Integral Microcredentials for LearnDash connects your LearnDash site to <strong>Open Badge Factory<\/strong> or <strong>CanCred Factory<\/strong> and issues real, verifiable Open Badges 3.0 credentials to learners automatically, with no Zapier or other external automation required. Open Badges are the standard format in which microcredentials (micro-credentials) are issued and shared.<\/p>\n\n<p><strong>What it does<\/strong><\/p>\n\n<ul>\n<li>Connects to Open Badge Factory and\/or CanCred and shows a live, verified connection status.<\/li>\n<li>Syncs the badges available in each connected account.<\/li>\n<li>Lets you define <strong>triggers<\/strong>: \"when a learner completes <em>this<\/em> course, lesson, topic, or quiz, award <em>that<\/em> badge\", with an optional minimum score on quiz triggers.<\/li>\n<li>Issues the badge automatically in the background when a learner completes the item, retrying if the provider is temporarily unreachable and never issuing the same badge twice.<\/li>\n<li>Lets you award badges by hand, and <strong>backfill<\/strong> a trigger over learners who finished before the trigger existed.<\/li>\n<li>Displays a learner's earned badges with the <code>[user_badges]<\/code> shortcode or the <strong>Earned Badges<\/strong> block. Each badge carries a <strong>Save &amp; share<\/strong> link (the owner's page at the provider, where the badge can be saved to Open Badge Passport \/ CanCred Passport or downloaded) and a public <strong>Verify<\/strong> link to the provider's hosted validator.<\/li>\n<li>Keeps badge lists truthful after issuance: every hour, or on demand, the plugin checks each issued credential's status at the provider. Revoked badges are hidden, badges with an expiry show \"Expires\" or \"Expired\", and a badge saved to a Passport shows a \"Saved to Passport\" mark.<\/li>\n<li>Cooperates with full-page caches: viewer-specific badge lists are excluded from caching, and issuing a badge purges cached pages.<\/li>\n<li>Records every issuance attempt in an activity log you can filter and export to CSV.<\/li>\n<li>Surfaces configuration and connection problems as specific, actionable admin notices. The plugin is built never to fail silently.<\/li>\n<\/ul>\n\n<p><strong>Independent plugin<\/strong><\/p>\n\n<p>LXD Integral Microcredentials for LearnDash is developed and published independently by LXD Integral Learning Ltd. It is not affiliated with, supported by, or endorsed by Open Badge Factory, CanCred, Learning Agents, LearnDash, StellarWP, or 1EdTech. \"LearnDash\" is a trademark of its respective owner and is used only to describe which product this plugin works with. Open Badges is an open standard maintained by 1EdTech; the plugin issues badges that follow it through the providers above, and is not itself a 1EdTech product or certification.<\/p>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<ul>\n<li>WordPress 6.6 or newer and PHP 8.1 or newer.<\/li>\n<li>LearnDash LMS (a separate, commercial plugin). The plugin activates and can be configured without LearnDash, but no badges are awarded until LearnDash is active.<\/li>\n<li>An Open Badge Factory or CanCred Factory account with API access. API credentials (Client ID and Client Secret) are created in the provider's console under <strong>Admin tools \u2192 API<\/strong>.<\/li>\n<\/ul>\n\n<p><strong>Third-party services<\/strong><\/p>\n\n<p>This plugin relies on an external badge-issuing service that you choose and configure. Nothing is sent anywhere until you enter API credentials on the plugin's Settings screen.<\/p>\n\n<ul>\n<li><strong>Open Badge Factory<\/strong> (<code>https:\/\/openbadgefactory.com<\/code>), operated by Open Badge Factory Oy, Finland. <a href=\"https:\/\/openbadgefactory.com\/en\/terms-of-use-eng\/\">Terms of use<\/a> \u00b7 <a href=\"https:\/\/openbadgefactory.com\/en\/privacy-notice-2\/\">Privacy notice<\/a><\/li>\n<li><strong>CanCred Factory<\/strong> (<code>https:\/\/factory.cancred.ca<\/code>), operated by Learning Agents, Canada. <a href=\"https:\/\/factory.cancred.ca\/terms\">Terms of use<\/a> \u00b7 <a href=\"https:\/\/factory.cancred.ca\/privacy\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<p>When a badge is issued, the plugin sends the learner's <strong>email address<\/strong> and <strong>display name<\/strong> and the badge identifier to the configured provider over HTTPS, because the provider delivers the credential to that email address. The plugin also fetches your badge library, the share and verification links of each issued credential, and (hourly, and on demand) the status of the credentials it issued. Badge images shown in wp-admin and on your pages are loaded from the provider's servers, and the Save &amp; share and Verify links open pages at the provider. No data is sent to LXD Integral or to any other party, and the plugin contains no tracking.<\/p>\n\n<p><strong>Data stored on your site<\/strong><\/p>\n\n<p>The plugin keeps its own tables: the synced badge library, your trigger rules, one award record per issued badge (learner user ID and email address, badge, status, dates, and the credential's links), and an activity log whose entries may name the learner. Award and log records are retained after a user account is deleted; the plugin registers with WordPress's <strong>Export Personal Data<\/strong> and <strong>Erase Personal Data<\/strong> tools, so a learner's awards can be exported and their email address removed from award records and their log entries deleted. All plugin data is removed on uninstall only if you enable \"Delete all plugin data when the plugin is uninstalled\" on the Settings screen.<\/p>\n\n<p>Your Client Secret is stored encrypted (libsodium) with a key derived from the site's authentication salts. Define <code>AUTH_KEY<\/code> and <code>SECURE_AUTH_KEY<\/code> in <code>wp-config.php<\/code>, as WordPress recommends, so that key is not itself stored in the database. If the salts are ever changed, the plugin asks you to re-enter the secret.<\/p>\n\n<p>Background work (issuing, retries, link fetching, status checks) runs through WP-Cron. If your site has disabled WP-Cron, make sure a system cron job calls <code>wp-cron.php<\/code>. The plugin is designed for single-site installs; on a multisite network, activate it per site.<\/p>\n\n<p><strong>Source code<\/strong><\/p>\n\n<p>The block editor script ships as compiled JavaScript in <code>build\/<\/code>; its human-readable source is included in <code>blocks\/<\/code> and in the public repository at <a href=\"https:\/\/github.com\/LXD-Integral\/lxd-integral-microcredentials-for-learndash\">github.com\/LXD-Integral\/lxd-integral-microcredentials-for-learndash<\/a>. To rebuild it, run <code>npm install<\/code> and then <code>npm run build<\/code> in the plugin directory; the build uses <code>@wordpress\/scripts<\/code>. The PHP needs no build step.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin from the WordPress plugin directory, or upload the zip under <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>, and activate it.<\/li>\n<li>Go to <strong>Open Badges \u2192 Settings<\/strong>, enter the Client ID and Client Secret for Open Badge Factory and\/or CanCred, save, then click <strong>Test Connection<\/strong>.<\/li>\n<li>Go to <strong>Open Badges \u2192 Badges<\/strong> and click <strong>Sync Now<\/strong> to pull in the badges from each connected account.<\/li>\n<li>Go to <strong>Open Badges \u2192 Triggers<\/strong> and add a rule mapping a LearnDash completion to a badge.<\/li>\n<li>Add the <strong>Earned Badges<\/strong> block, or the <code>[user_badges]<\/code> shortcode, to any page.<\/li>\n<\/ol>\n\n<p>The <code>[user_badges]<\/code> shortcode accepts these optional attributes: <code>user<\/code> (user ID, defaults to the current visitor), <code>columns<\/code> (1\u20136, default 3), <code>size<\/code> (badge image size in px, 32\u2013256, default 96), <code>show_name<\/code> (1\/0), <code>link<\/code> (1\/0, link each badge image to the provider's badge page), <code>export<\/code> (1\/0, \"Save &amp; share\" link, owner only), <code>verify<\/code> (1\/0, \"Verify\" link).<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20with%20open%20badge%20factory%20or%20cancred%3F\"><h3>Does this work with Open Badge Factory or CanCred?<\/h3><\/dt>\n<dd><p>Both, including both at once. Open Badge Factory and CanCred Factory are functionally identical platforms with different geographical mandates. The plugin connects to each with its own Client ID and Client Secret, and every badge remembers which provider it came from.<\/p><\/dd>\n<dt id=\"where%20do%20i%20get%20api%20credentials%3F\"><h3>Where do I get API credentials?<\/h3><\/dt>\n<dd><p>In the provider's console under <strong>Admin tools \u2192 API<\/strong>, create an API key. This requires a subscription tier with API access. Paste the Client ID and Client Secret into the plugin's Settings screen and use Test Connection.<\/p><\/dd>\n<dt id=\"i%20added%20a%20badge%20in%20the%20provider%27s%20console%20but%20it%20isn%27t%20in%20the%20plugin.\"><h3>I added a badge in the provider's console but it isn't in the plugin.<\/h3><\/dt>\n<dd><p>Badges are synced, not live-queried. Go to <strong>Badges \u2192 Sync Now<\/strong> to pull the current library. Draft badges are listed but can't be issued until published in the provider's console.<\/p><\/dd>\n<dt id=\"a%20learner%20completed%20the%20course.%20why%20doesn%27t%20their%20badge%20show%20up%20immediately%3F\"><h3>A learner completed the course. Why doesn't their badge show up immediately?<\/h3><\/dt>\n<dd><p>Issuance is deliberately asynchronous. When a learner completes an item, the plugin records the award and hands it to a background job, so the learner's completion is never slowed down or broken by the badge provider. The badge is normally issued within a minute or two, and an hourly safety sweep catches anything that slipped through. If a badge still hasn't appeared after an hour, check the <strong>Activity Log<\/strong>, where every attempt is recorded with a specific reason on failure.<\/p><\/dd>\n<dt id=\"will%20a%20learner%20ever%20get%20the%20same%20badge%20twice%3F\"><h3>Will a learner ever get the same badge twice?<\/h3><\/dt>\n<dd><p>No. Awards are idempotent per trigger: once a learner holds a badge from a given trigger rule, re-completing the same item does not issue a duplicate.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20provider%20is%20down%3F\"><h3>What happens if the provider is down?<\/h3><\/dt>\n<dd><p>The award is queued and retried with increasing backoff (up to five attempts), and the hourly sweep re-processes anything still outstanding. Failures appear in the Activity Log. The learner's course completion is unaffected.<\/p><\/dd>\n<dt id=\"can%20i%20award%20badges%20for%20things%20that%20happened%20before%20i%20created%20a%20trigger%3F\"><h3>Can I award badges for things that happened before I created a trigger?<\/h3><\/dt>\n<dd><p>Yes. <strong>Issue Badges \u2192 Backfill<\/strong> runs a trigger over learners who completed the item before the trigger existed. You can also issue any badge to any learner by hand from the same screen.<\/p><\/dd>\n<dt id=\"can%20i%20require%20a%20minimum%20quiz%20score%3F\"><h3>Can I require a minimum quiz score?<\/h3><\/dt>\n<dd><p>Yes. Quiz triggers accept an optional minimum percentage. A completion without a score never satisfies a score condition.<\/p><\/dd>\n<dt id=\"what%20do%20the%20links%20under%20each%20earned%20badge%20do%3F\"><h3>What do the links under each earned badge do?<\/h3><\/dt>\n<dd><p><strong>Save &amp; share<\/strong> opens the badge's claim page at the provider, where the learner can save the badge to Open Badge Passport \/ CanCred Passport, share it, or download it. It appears only to the badge's owner. <strong>Verify<\/strong> opens the provider's public validator, which confirms that the credential is valid, not revoked, and not expired. It is shown to every visitor.<\/p><\/dd>\n<dt id=\"can%20i%20show%20one%20learner%27s%20badges%20publicly%3F\"><h3>Can I show one learner's badges publicly?<\/h3><\/dt>\n<dd><p>Yes. The shortcode accepts a <code>user<\/code> attribute. With it, any visitor sees that learner's badge names, images, and Verify links, never the owner's claim link. Without the attribute, the list always shows the signed-in visitor's own badges.<\/p><\/dd>\n<dt id=\"are%20these%20%22real%22%20open%20badges%3F\"><h3>Are these \"real\" Open Badges?<\/h3><\/dt>\n<dd><p>Yes. Every badge is issued by Open Badge Factory \/ CanCred Factory as a hosted Open Badges 3.0 verifiable credential.<\/p><\/dd>\n<dt id=\"what%20if%20a%20badge%20is%20revoked%20at%20the%20provider%3F\"><h3>What if a badge is revoked at the provider?<\/h3><\/dt>\n<dd><p>The plugin checks every issued badge's status at the provider once an hour, and immediately when you click <strong>Refresh Award Status<\/strong> on the Badges screen. A revoked badge disappears from the learner's list and from every public showcase, and the Activity Log records the change.<\/p><\/dd>\n<dt id=\"do%20badges%20expire%3F\"><h3>Do badges expire?<\/h3><\/dt>\n<dd><p>Only if the badge was set up with an expiry at the provider. The badge list then shows \"Expires\" with the date and, once the date passes, \"Expired\". Expired badges stay listed, but the owner's Save &amp; share link is dropped.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20with%20page%20caches%20like%20litespeed%20cache%3F\"><h3>Does the plugin work with page caches like LiteSpeed Cache?<\/h3><\/dt>\n<dd><p>Yes. Pages showing a visitor's own badge list are excluded from full-page caching, and issuing a badge or a status change purges the page cache. Public showcase pages remain fully cacheable.<\/p><\/dd>\n<dt id=\"can%20learners%20request%20their%20data%3F\"><h3>Can learners request their data?<\/h3><\/dt>\n<dd><p>Yes. The plugin plugs into WordPress's <strong>Tools \u2192 Export Personal Data<\/strong> and <strong>Erase Personal Data<\/strong>: an export lists every badge awarded to the email address, and an erasure removes the email address from the award records and deletes the learner's activity-log entries. The award records themselves are kept, so a badge is never issued twice, and the credential remains at the provider.<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on multisite?<\/h3><\/dt>\n<dd><p>Per site. Activate and configure it on each site that needs it; network activation is not supported.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20when%20i%20uninstall%3F\"><h3>What happens to my data when I uninstall?<\/h3><\/dt>\n<dd><p>Nothing is deleted by default: uninstalling preserves your badges, triggers, award history, and log. Tick <strong>Delete all plugin data when the plugin is uninstalled<\/strong> on the Settings screen if you want everything removed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release in the WordPress plugin directory.<\/li>\n<li>Built-in PSR-4 autoloader; the plugin ships no vendor directory.<\/li>\n<li>Activity log CSV export neutralises spreadsheet formula characters and writes RFC 4180 CSV.<\/li>\n<li>Export and Erase Personal Data support for award and log records.<\/li>\n<li>Admin script and styles go through the enqueue API; the provider base-URL filter accepts HTTPS only; API requests never follow redirects.<\/li>\n<li>Uninstall clears queued per-award cron events with <code>wp_unschedule_hook()<\/code>.<\/li>\n<li>Tested on WordPress 6.6 and 7.1, PHP 8.1 to 8.4, with <code>WP_DEBUG<\/code> on.<\/li>\n<\/ul>\n\n<p>The pre-release history (0.1.0 to 0.4.0) is in <code>changelog.txt<\/code>.<\/p>","raw_excerpt":"Automatically issue Open Badges to LearnDash learners through Open Badge Factory or CanCred when they complete courses, lessons, topics, or quizzes.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=395180"}],"author":[{"embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/lxdintegral"}],"wp:attachment":[{"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395180"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395180"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395180"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395180"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395180"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}