{"id":302618,"date":"2026-04-29T14:34:28","date_gmt":"2026-04-29T14:34:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/dropleather-for-woocommerce\/"},"modified":"2026-06-04T23:00:39","modified_gmt":"2026-06-04T23:00:39","slug":"dropleather-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/jv.wordpress.org\/plugins\/dropleather-for-woocommerce\/","author":23484266,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.6","stable_tag":"1.1.6","tested":"7.0","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"Dropleather for WooCommerce","header_author":"Dropleather Inc.","header_description":"Connect your WooCommerce store to Dropleather for automated leather product fulfillment.","assets_banners_color":"ffffff","last_updated":"2026-06-04 23:00:39","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/dropleather.com\/integrations\/woocommerce","header_author_uri":"https:\/\/dropleather.com","rating":5,"author_block_rating":0,"active_installs":0,"downloads":135,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.5":{"tag":"1.1.5","author":"dropleather","date":"2026-04-29 14:31:55"},"1.1.6":{"tag":"1.1.6","author":"dropleather","date":"2026-06-04 23:00:39"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3561651,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":3561651,"resolution":"772x250","location":"assets","locale":"","width":1544,"height":500}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.5","1.1.6"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3561651,"resolution":"1","location":"assets","locale":"","width":1200,"height":1200},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3561651,"resolution":"2","location":"assets","locale":"","width":1200,"height":1200},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3561651,"resolution":"3","location":"assets","locale":"","width":1200,"height":1200},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3561651,"resolution":"4","location":"assets","locale":"","width":1200,"height":1200}},"screenshots":{"1":"Dashboard \u2014 order stats and recent orders","2":"Settings \u2014 connection and sync configuration","3":"Status \u2014 endpoint health and environment info","4":"Support \u2014 error logs with copy and contact"}},"plugin_section":[],"plugin_tags":[261411,39071,13906,261412,286],"plugin_category":[45],"plugin_contributors":[261413],"plugin_business_model":[],"class_list":["post-302618","plugin","type-plugin","status-publish","hentry","plugin_tags-dropleather","plugin_tags-dropshipping","plugin_tags-fulfillment","plugin_tags-leather","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-dropleather","plugin_committers-dropleather"],"banners":{"banner":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/banner-772x250.png?rev=3561651","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/icon-256x256.png?rev=3561651","icon_2x":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/icon-256x256.png?rev=3561651","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/screenshot-1.png?rev=3561651","caption":"Dashboard \u2014 order stats and recent orders"},{"src":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/screenshot-2.png?rev=3561651","caption":"Settings \u2014 connection and sync configuration"},{"src":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/screenshot-3.png?rev=3561651","caption":"Status \u2014 endpoint health and environment info"},{"src":"https:\/\/ps.w.org\/dropleather-for-woocommerce\/assets\/screenshot-4.png?rev=3561651","caption":"Support \u2014 error logs with copy and contact"}],"raw_content":"<!--section=description-->\n<p><strong>Dropleather for WooCommerce<\/strong> connects your WooCommerce store to <a href=\"https:\/\/dropleather.com\">Dropleather<\/a>, a premium leather goods fulfillment platform. Push products from your Dropleather catalog to your store, automatically receive orders, and sync fulfillment status \u2014 all without manual work.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>One-click connection<\/strong> \u2014 Enter your Dropleather email and you're set up<\/li>\n<li><strong>Product sync<\/strong> \u2014 Push Dropleather products to your WooCommerce store with full details, images, and variants<\/li>\n<li><strong>Order sync<\/strong> \u2014 New WooCommerce orders are automatically sent to Dropleather for fulfillment<\/li>\n<li><strong>Fulfillment tracking<\/strong> \u2014 Order status and tracking numbers sync back to WooCommerce automatically<\/li>\n<li><strong>Dashboard<\/strong> \u2014 View order stats, recent orders, and net profit right in your WordPress admin<\/li>\n<li><strong>Status monitoring<\/strong> \u2014 Check endpoint health, webhook status, and environment compatibility<\/li>\n<li><strong>Error logging<\/strong> \u2014 Full log with copy-to-clipboard for easy support<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 6.0 or higher<\/li>\n<li>WooCommerce 8.0 or higher<\/li>\n<li>PHP 8.0 or higher<\/li>\n<li>A Dropleather seller account (<a href=\"https:\/\/app.dropleather.com\">sign up free<\/a>)<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin exchanges data with api.dropleather.com only after the site administrator explicitly connects a Dropleather account. No tracking, analytics, or data collection happens before connection.<\/p>\n\n<p><strong>Sent from your store to Dropleather:<\/strong><\/p>\n\n<ul>\n<li>Store URL, domain, WordPress and WooCommerce version numbers<\/li>\n<li>Auto-generated WooCommerce REST API keys with read\/write permissions for products and orders<\/li>\n<li>Product catalogue data synced via the REST API: titles, descriptions, prices, images, SKUs, inventory levels<\/li>\n<li>Order data for orders containing Dropleather products: order number, customer name, email, phone, shipping address, payment status<\/li>\n<\/ul>\n\n<p><strong>Sent back from Dropleather to your store:<\/strong><\/p>\n\n<ul>\n<li>Fulfillment status, tracking numbers, and carrier details to update the matching WooCommerce orders<\/li>\n<\/ul>\n\n<p><strong>Retention:<\/strong><\/p>\n\n<ul>\n<li>Integration credentials (OAuth \/ API tokens) and synced product records are deleted within 48 hours of disconnecting the store<\/li>\n<li>Order records containing customer personal data are retained for 7 years for tax and legal compliance (German HGB \u00a7257, AO \u00a7147), then anonymized<\/li>\n<li>On-demand deletion requests under GDPR Article 17 are honored within 30 days regardless of the 7-year window<\/li>\n<li>Database backups are automatically deleted after 30 days<\/li>\n<\/ul>\n\n<p><strong>Sub-processors:<\/strong><\/p>\n\n<p>Dropleather uses AWS and Supabase for cloud hosting, and Stripe \/ PayPal \/ Adyen for payment processing. A current list of sub-processors is available on request at privacy@dropleather.com.<\/p>\n\n<p><strong>Disconnecting:<\/strong> revokes all API access and stops further data transmission immediately.<\/p>\n\n<p>Full privacy policy: https:\/\/dropleather.com\/legal\/privacy-policy<\/p>\n\n<p>A suggested privacy-policy block is registered via WordPress's Privacy Policy Guide (Settings \u2192 Privacy \u2192 Policy Guide) for admins to paste into their site policy.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install via the WordPress plugin installer<\/li>\n<li>Activate the plugin through the 'Plugins' menu<\/li>\n<li>Go to <strong>Dropleather &gt; Settings<\/strong> in your admin sidebar<\/li>\n<li>Enter your Dropleather account email and click <strong>Connect<\/strong><\/li>\n<li>Done! Your store is now connected<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20dropleather%20account%3F\"><h3>Do I need a Dropleather account?<\/h3><\/dt>\n<dd><p>Yes. Sign up at <a href=\"https:\/\/app.dropleather.com\">app.dropleather.com<\/a> \u2014 it's free to create an account.<\/p><\/dd>\n<dt id=\"how%20are%20orders%20fulfilled%3F\"><h3>How are orders fulfilled?<\/h3><\/dt>\n<dd><p>When a customer places an order on your WooCommerce store containing Dropleather products, the order is automatically sent to Dropleather. Dropleather handles production and shipping, then syncs the tracking number back to your store.<\/p><\/dd>\n<dt id=\"can%20i%20disconnect%20my%20store%3F\"><h3>Can I disconnect my store?<\/h3><\/dt>\n<dd><p>Yes. Go to <strong>Dropleather &gt; Settings<\/strong> and click <strong>Disconnect<\/strong>. All webhooks and stored credentials will be removed.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.6<\/h4>\n\n<ul>\n<li>Fixed (security): Disconnect now truly revokes all access immediately, as the privacy policy promises. Previously, after clicking Disconnect, Dropleather could still push products to the store. Disconnect now (1) tells Dropleather to disconnect while the connection is still authenticated, (2) deletes the WooCommerce REST API key it created at pairing so Dropleather's stored credentials become invalid even if Dropleather is briefly unreachable, (3) removes the Dropleather order webhooks, and (4) clears all local credentials \u2014 in that order.<\/li>\n<li>Improved: admin pages redesign. The Dropleather admin screens now run full-width to match WooCommerce's own settings pages (the old fixed-width cap is gone), and the repeated logo header has been removed from the Settings, Status, and Support tabs for a cleaner, more focused layout.<\/li>\n<li>Improved: new Connect experience. The Settings page now opens on a centered \"Connect to Dropleather\" hero \u2014 logo, a one-line explainer, and a single <strong>Connect<\/strong> button that smoothly reveals the token field when you're ready. The full data-transparency notice is kept intact but tucked into an expandable \"What data is exchanged when you connect?\" section so the first screen stays uncluttered.<\/li>\n<li>Improved: every Dropleather admin tab \u2014 Dashboard, Settings, Status and Support \u2014 now shows the same centered \"Connect to Dropleather\" screen until your store is connected, so you can pair from whichever page you land on instead of being bounced to Settings first.<\/li>\n<li>Improved: the Status page is now a single wide table (Name \/ Description \/ Status) with clear, industry-standard wording. Each check shows a colour-coded dot and label \u2014 green <strong>Operational<\/strong> (with live latency for the Dropleather API), amber <strong>Degraded<\/strong>, red <strong>Down<\/strong> \/ <strong>Not registered<\/strong>, grey <strong>Not connected<\/strong> \u2014 and PHP extensions read <strong>OK<\/strong> \/ <strong>Missing<\/strong>.<\/li>\n<li>Added: sync preferences now push to Dropleather on save. When you change the Sync Settings, the choices are saved locally first and then synced to your Dropleather account; if the API is briefly unreachable the settings are still saved and reconcile on the next connection.<\/li>\n<li>Added: the dashboard order table gains <strong>From<\/strong>, <strong>Total<\/strong> and a Dropleather order <strong>Status<\/strong> column. \"From\" shows the customer's name, \"Total\" shows the order value in your store's currency, and \"Status\" shows where the order is in Dropleather's lifecycle \u2014 Unpaid, Processing, Shipped, Delivered, Expired, Overdue or Returned \u2014 as a colour-coded badge. All read from local order data with no API calls; orders not yet stamped show \"\u2014\" until the hourly reconcile fills them in.<\/li>\n<li>Improved: the <strong>Tracking<\/strong> column now shows the tracking number in a neat boxed chip with a one-click copy button (copies just the number to your clipboard, with a brief \"Copied!\" confirmation). The number still links straight to the carrier's tracking page.<\/li>\n<li>Added: an <strong>Open in Dropleather<\/strong> action on each order row opens that order directly in the Dropleather app in a new tab. Orders that still need attention keep their <strong>Retry<\/strong> button alongside it.<\/li>\n<li>Added: the dashboard order table now shows a <strong>Tracking<\/strong> column. Once Dropleather ships an order, the carrier and tracking number appear here as a link straight to the carrier's tracking page (e.g. DHL) \u2014 read entirely from local order data, no API calls. Orders that failed to sync keep showing their failure reason in this column instead.<\/li>\n<li>Improved: orders with no Dropleather products are no longer listed on the dashboard. The order table and its filter tabs (All \/ Synced \/ Failed) now show only orders that Dropleather actually handles, so the \"All\" count reflects real Dropleather orders rather than every order in the store.<\/li>\n<li>Improved: the dashboard now renders entirely from your own WooCommerce database \u2014 zero Dropleather API reads on page load. Stats tiles (Orders Today \/ This Week \/ Last 30 Days), Net Profit, and the order list with its sync-status badges all come from local order data, so the page loads instantly and works even if the Dropleather API is briefly unreachable. The order table is paginated (20 per page) and gains status filter tabs \u2014 All \/ Synced \/ Failed \u2014 each with a live count, so the orders that need attention are one click away. Net Profit is now shown in your store's own currency. The Dropleather API is used only for actions (Retry, Sync Now) and a background reconcile.<\/li>\n<li>Added: hourly background reconcile. A low-frequency Action Scheduler job re-checks order sync status with Dropleather and heals any status that drifted (e.g. a write-back that failed because the store was momentarily offline), keeping the local-first dashboard accurate. It uses a cursor so the common \"nothing changed\" case is near-free, and it is unscheduled automatically on deactivation.<\/li>\n<li>Added: per-order sync status on the dashboard. The \"Dropleather Product Orders\" table now shows each WooCommerce order's real sync state with a colour-coded badge \u2014 green \"Synced\", amber \"Pending\", red \"Failed\" \u2014 plus the failure reason inline (truncated, full text on hover) and a one-click <strong>Retry<\/strong> button for orders that haven't synced. The order number links straight to the WooCommerce order edit screen (HPOS-aware). Retry optimistically flips the row to \"Pending\u2026\" and the dashboard confirms the real outcome on the next refresh.<\/li>\n<li>Fixed: webhook auto-repair. WooCommerce automatically disables a webhook after more than 5 consecutive delivery failures, so a prolonged API outage could silently leave the Dropleather order webhooks stuck in a \"disabled\" state \u2014 no further orders were delivered even after the connection recovered. The dashboard now re-activates any disabled\/paused Dropleather webhook on load (cheap and idempotent) and logs each re-activation.<\/li>\n<li>Fixed: products pushed via the WooCommerce REST API with Cloudflare Images delivery URLs (e.g. <code>https:\/\/imagedelivery.net\/&lt;hash&gt;\/&lt;id&gt;\/zoom<\/code>) no longer fail with <code>woocommerce_product_image_upload_error<\/code>. These URLs carry no file extension, so WooCommerce derived the filename \"zoom\" and the sideload filetype check rejected it. The plugin now repairs extension-less image sideloads by sniffing the downloaded file's real MIME type (<code>finfo<\/code>\/<code>mime_content_type<\/code>) and appending the correct extension before WordPress validates it. Legacy <code>.jpg<\/code>\/<code>.png<\/code> URLs and any non-image sideloads are left untouched.<\/li>\n<li>Fixed: false-positive auto-disconnect when the Dropleather API returns 5xx\/timeout\/network errors. The plugin now only wipes local credentials on a definitive 401 \"token revoked\" signal \u2014 transient API outages render a yellow \"couldn't reach Dropleather, will retry\" notice instead. Resolves the \"dashboard shows Connected, plugin shows Not connected\" stuck state.<\/li>\n<li>Fixed: heartbeats (and other authenticated calls) could deadlock once the 24h access token expired. The API's origin middleware answered token-expired POSTs with <code>403 MISSING_ORIGIN<\/code> instead of <code>401<\/code>, but the plugin only refreshed the access token on a <code>401<\/code> \u2014 so the connection silently died until an unrelated settings-page request happened to refresh it. The plugin now refreshes-and-retries on <code>403<\/code> as well as <code>401<\/code>, and sends its own <code>Origin<\/code> header (the store URL) on every request so server-to-server calls are no longer rejected for a missing origin.<\/li>\n<li>Improved: persistent heartbeat failures are now surfaced. After 5 consecutive failed ticks the plugin logs a single error-level entry on the Support page (one per outage streak, reset on recovery) instead of staying at debug forever. A heartbeat is also skipped \u2014 with a one-time error \u2014 when no access or refresh token is stored, since there is nothing to authenticate with.<\/li>\n<\/ul>\n\n<h4>1.1.5<\/h4>\n\n<ul>\n<li>Improved: heartbeat now runs via Action Scheduler instead of <code>wp_schedule_event<\/code> so the connection-status badge stays accurate on quiet\/dev\/staging stores where WP-cron silently skips fires (Action Scheduler runs via its own background processor, independent of visitor traffic). Same library used by Stripe, Klaviyo, MailPoet etc.<\/li>\n<li>Added: lifecycle webhook on plugin deactivation\/uninstall \u2014 Dropleather now learns within seconds when a seller deactivates or deletes the plugin, instead of waiting on the 2-hour heartbeat-stale threshold. Fixes the \"I uninstalled and the dashboard still says Connected\" UX gap<\/li>\n<\/ul>\n\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Added: 5-minute liveness heartbeat (<code>wp_schedule_event<\/code>) so the Dropleather dashboard's <code>\/integration<\/code> page can show a real 3-state health badge (active \/ idle \/ stale) instead of a stale \"Connected\" pill that lies after the plugin is deactivated or the WP server goes offline. One ping fires synchronously on activation and after a successful pair so the seller is shown active immediately<\/li>\n<li>Added: dashboard orders table now refreshes via WordPress Heartbeat API delta tick \u2014 new WooCommerce orders appear within ~15 s without reloading the WP-admin tab. Steady-state cost on the api side is one indexed <code>since<\/code> lookup per tick when nothing changed<\/li>\n<li>Fixed: stable-tag mismatch in the WP.org submission (<code>Stable tag<\/code> now matches the plugin header <code>Version<\/code>)<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Internal: bumped to ship the orders auto-refresh code path<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Added: WP 6.5+ <code>Requires Plugins: woocommerce<\/code> header for native WooCommerce dependency check<\/li>\n<li>Fixed: setup wizard redirect now fires only once on activation (one-shot transient) instead of on every admin page load \u2014 addresses WordPress.org Guideline 11<\/li>\n<li>Fixed: <code>Plugin URI<\/code> now points to a live page (<code>\/integrations\/woocommerce<\/code>)<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix: webhook registration now purges <em>every<\/em> webhook pointing at the Dropleather delivery URL before creating new ones \u2014 prevents accumulation across reconnects, plugin delete\/reinstall, or manual DB edits<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>WordPress.org submission prep: removed the bundled GitHub update checker (plugins on WP.org are updated through WP.org's own update channel)<\/li>\n<li>Migrated every log-table query to the native <code>%i<\/code> identifier placeholder introduced in WordPress 6.2<\/li>\n<li>Bumped minimum WordPress requirement to 6.2 and tested-up-to to 6.9<\/li>\n<li>Removed redundant <code>load_plugin_textdomain()<\/code> \u2014 translations are auto-loaded for WP.org-hosted plugins since WP 4.6<\/li>\n<li>Slug renamed to <code>dropleather-for-woocommerce<\/code> (WordPress trademark policy requires the \"for woocommerce\" pattern)<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Verification release for the GitHub-based auto-update channel<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Hardened PHPCS compliance \u2014 escaped version-requirement notices, prefixed global variables in uninstaller + dashboard template, renamed <code>$order<\/code> loop variable to avoid colliding with WooCommerce's global<\/li>\n<li>Resolved PHPCS errors reported by the WordPress-Extra + WordPress.Security rulesets so CI runs clean<\/li>\n<li>Whitelisted WooCommerce's <code>manage_woocommerce<\/code> capability in phpcs.xml.dist<\/li>\n<li>No runtime-visible changes \u2014 purely code-quality + CI hygiene<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Hardened logger DB queries (centralised table-name validation, back-ticked identifiers, DELETE in place of TRUNCATE for broader hosting compatibility)<\/li>\n<li>Added pre-connect privacy disclosure aligned with the full Dropleather Privacy Policy \u2014 lists every data field exchanged, two-way (store \u2192 Dropleather and Dropleather \u2192 store), retention periods (48h \/ 7y \/ 30d), sub-processors, and GDPR Article 17 handling<\/li>\n<li>Registered a suggested privacy-policy snippet via WP's Privacy Policy Guide (Settings \u2192 Privacy \u2192 Policy Guide)<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Health check auto-disconnect when token is revoked on the Dropleather dashboard<\/li>\n<li>Added GitHub-based auto-update mechanism (plugin-update-checker)<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Store connection via API key pair<\/li>\n<li>Order sync via WooCommerce webhooks<\/li>\n<li>Product push from Dropleather catalog<\/li>\n<li>Fulfillment status sync with tracking numbers<\/li>\n<li>Dashboard with stats and orders table<\/li>\n<li>Status page with health checks<\/li>\n<li>Support page with error logs<\/li>\n<\/ul>","raw_excerpt":"Connect your WooCommerce store to Dropleather for automated leather product fulfillment.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/302618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=302618"}],"author":[{"embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dropleather"}],"wp:attachment":[{"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=302618"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=302618"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=302618"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=302618"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=302618"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/jv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=302618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}