{"id":330627,"date":"2026-07-07T11:14:11","date_gmt":"2026-07-07T11:14:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/erred-eu-order-withdrawal-for-woocommerce\/"},"modified":"2026-07-07T11:13:59","modified_gmt":"2026-07-07T11:13:59","slug":"erred-eu-order-withdrawal-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/erred-eu-order-withdrawal-for-woocommerce\/","author":17873296,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.4","stable_tag":"0.5.4","tested":"7.0","requires":"6.7","requires_php":"8.2","requires_plugins":null,"header_name":"ErreD EU Order Withdrawal for WooCommerce","header_author":"ErreD","header_description":"Digital withdrawal function for WooCommerce: the EU \"easy withdrawal\" duty (Directive 2023\/2673, in force 19 June 2026) and its Italian transposition (art. 54-bis Codice del Consumo). HPOS-native, security-first.","assets_banners_color":"335cad","last_updated":"2026-07-07 11:13:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.4":{"tag":"0.5.4","author":"draison","date":"2026-07-07 11:13:59"}},"upgrade_notice":{"0.5.4":"<p>Admin menu entries now default to English for non-Italian sites; Italian labels are unchanged via\nthe bundled translation. No data migration required.<\/p>","0.5.3":"<p>Safer uninstall: only the page the plugin itself auto-created can be removed when deleting data on\nuninstall; a page you selected yourself in settings is never touched. No data migration required.<\/p>","0.5.2":"<p>A single, correctly-working withdrawal button for guests and members, a tidier styled confirmation\nstep, and admin improvements: abandoned (unconfirmed) requests are hidden and restartable, and the\nmenu badge counts all open requests with the standard styling. No data migration required.<\/p>","0.5.1":"<p>Bundles the full JS\/CSS source alongside the compiled assets and links the public development\nrepository, updates the bundled Dompdf to 3.1.5, and hardens the admin receipt download and the\nproduct withdrawal-status save. No data migration required.<\/p>","0.5.0":"<p>Adds a withdrawal-status column to the orders screen and replaces the request detail panel&#039;s action\nbuttons with a single &quot;Set status&quot; dropdown plus a &quot;Save status&quot; button. No data migration required.<\/p>","0.4.0":"<p>Richer per-product\/category withdrawal status (art. 59 exceptions), a post-activation welcome notice, a\nreorganised settings screen, and a redesigned Annex I.B model form. No data migration required.<\/p>","0.3.1":"<p>Fixes the in-place schema upgrade (empty requests list \/ blank withdrawal submission after updating to\n0.3.0) and prevents the withdrawal form from white-screening on a transient error.<\/p>","0.3.0":"<p>Adds art. 59 product\/category configuration, checkout consents, the Annex I.B model form, status\nemails, admin actions\/stats\/CSV export, GDPR tools and more. Adds two optional database columns\n(applied automatically). Review the new settings under Recesso digitale \u2192 Settings.<\/p>","0.2.0":"<p>Clearer withdrawal page (checkbox product picker with thumbnails and per-product quantities) and a\nfuller durable-medium acknowledgement that lists the selected products. No data migration required.<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3598932,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3598932,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3598932,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"recesso-digitale\/withdrawal-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"recesso-digitale\/withdrawal-button","version":"0.1.0","title":"ErreD EU Order Withdrawal for WooCommerce","category":"widgets","icon":"undo","description":"Renders the withdrawal (recesso) flow and the \u00abrecedere dal contratto qui\u00bb entry control.","keywords":["recesso","withdrawal","woocommerce","consumer"],"textdomain":"erred-eu-order-withdrawal-for-woocommerce","supports":{"html":false,"multiple":false},"editorScript":"file:.\/index.js","viewScript":"file:.\/view.js","viewStyle":"file:.\/style-view.css"}},"tagged_versions":["0.5.4"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3598932,"resolution":"1","location":"assets","locale":"","width":2763,"height":1443},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3598932,"resolution":"2","location":"assets","locale":"","width":2731,"height":702},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3598932,"resolution":"3","location":"assets","locale":"","width":2788,"height":426},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3598932,"resolution":"4","location":"assets","locale":"","width":4785,"height":1688},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3598932,"resolution":"5","location":"assets","locale":"","width":4767,"height":2364}},"screenshots":{"1":"Step one: the withdrawal declaration (\"recedere dal contratto qui\"), pre-filled from the order.","2":"Step two: the explicit \"conferma recesso\" confirmation.","3":"The acknowledgement screen shown after confirmation.","4":"The admin requests screen: status filter, free-text search and per-request actions.","5":"The request detail: audit timeline, durable-medium receipt (PDF) and status processing."}},"plugin_section":[],"plugin_tags":[258660,32899,269342,245590,286],"plugin_category":[45],"plugin_contributors":[270459],"plugin_business_model":[],"class_list":["post-330627","plugin","type-plugin","status-publish","hentry","plugin_tags-cancellation","plugin_tags-consumer","plugin_tags-recesso","plugin_tags-withdrawal","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-draison","plugin_committers-draison"],"banners":{"banner":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/banner-772x250.png?rev=3598932","banner_2x":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/banner-1544x500.png?rev=3598932","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/icon.svg?rev=3598932","icon":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/icon.svg?rev=3598932","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/screenshot-1.jpg?rev=3598932","caption":"Step one: the withdrawal declaration (\"recedere dal contratto qui\"), pre-filled from the order."},{"src":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/screenshot-2.jpg?rev=3598932","caption":"Step two: the explicit \"conferma recesso\" confirmation."},{"src":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/screenshot-3.jpg?rev=3598932","caption":"The acknowledgement screen shown after confirmation."},{"src":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/screenshot-4.jpg?rev=3598932","caption":"The admin requests screen: status filter, free-text search and per-request actions."},{"src":"https:\/\/ps.w.org\/erred-eu-order-withdrawal-for-woocommerce\/assets\/screenshot-5.jpg?rev=3598932","caption":"The request detail: audit timeline, durable-medium receipt (PDF) and status processing."}],"raw_content":"<!--section=description-->\n<p>From 19 June 2026, EU Directive 2023\/2673 requires online stores across the European Union to\nprovide a <strong>digital withdrawal function<\/strong>: a way to cancel a distance contract online that is at\nleast as easy to use as the purchase flow itself. A single \"cancel\" button is not enough. The law\nrequires a clearly labelled, continuously available function, a two-step confirmation, and an\nacknowledgement on a durable medium whose timestamp fixes the legal moment of communication.<\/p>\n\n<p>ErreD EU Order Withdrawal for WooCommerce implements that function end to end \u2014 not just the\nbutton, but the declaration flow, the two-step confirmation, the durable-medium receipt, the\neligibility rules and the merchant review tools needed to actually comply.<\/p>\n\n<p>It ships the Italian transposition out of the box (art. 54-bis of the Codice del Consumo,\nintroduced by D.Lgs. 209\/2025) with the legally-fixed label \u00abrecedere dal contratto qui\u00bb, and it\nis fully translatable for other EU markets.<\/p>\n\n<p>The plugin does not create a right of withdrawal: it provides the online channel to exercise an\nexisting one, honouring the legal exceptions (e.g. art. 59 in Italy). It is built security-first,\nis WooCommerce High-Performance Order Storage (HPOS) native, and works fully offline (no external\nservice calls).<\/p>\n\n<p><strong>For consumers<\/strong><\/p>\n\n<ul>\n<li>A clearly labelled, continuously available withdrawal function on the My Account orders screen.<\/li>\n<li>A two-step declaration and confirmation flow (\"conferma recesso\"), server-rendered so it works\neven with JavaScript disabled.<\/li>\n<li>An acknowledgement on a durable medium (email plus a stored PDF receipt) whose timestamp fixes\nthe moment of communication \u2014 the legal start date (dies a quo) for refund deadlines.<\/li>\n<li>Reachable by guest-checkout customers through a per-order signed link in their order emails and on\nthe order-received page, with no order enumeration.<\/li>\n<\/ul>\n\n<p><strong>For merchants<\/strong><\/p>\n\n<ul>\n<li>A React admin screen to review requests, filter by status, search by order, name or email, view\nthe audit timeline, view\/regenerate the durable receipt and mark requests refunded or rejected.<\/li>\n<li>A menu badge counting the requests awaiting action.<\/li>\n<li>A conservative, configurable eligibility engine (withdrawal window, start trigger, per-product\nand per-category exclusions) that fails closed when configuration is missing.<\/li>\n<li>Optional WooCommerce Subscriptions support: a confirmed withdrawal cancels the subscription\n(status transition only \u2014 subscription data is never deleted).<\/li>\n<li>An append-only audit trail and tamper-evident receipts (SHA-256 of the receipt payload).<\/li>\n<\/ul>\n\n<p><strong>Built to standard<\/strong><\/p>\n\n<ul>\n<li>Security-first: capability + nonce\/REST permission checks and input sanitisation \/ output\nescaping on every privileged path; signed, rate-limited guest access.<\/li>\n<li>Accessibility: WCAG 2.2 AA, verified with automated axe checks.<\/li>\n<li>Fully translatable; ships a complete Italian (it_IT) translation.<\/li>\n<\/ul>\n\n<p>This plugin encodes legal and security intent; it is not legal advice. The mapping of the art. 59\nexceptions to your catalogue and the durable-medium content must be validated by a qualified legal\nprofessional before relying on them.<\/p>\n\n<h3>Source code and build process<\/h3>\n\n<p>This plugin ships its complete, human-readable source. The compiled assets in <code>build\/<\/code> are\ngenerated from the React\/JS\/CSS source in <code>assets\/<\/code> with @wordpress\/scripts.<\/p>\n\n<ul>\n<li>JS\/CSS source: <code>assets\/admin\/<\/code> and <code>assets\/frontend\/<\/code><\/li>\n<li>Generated bundles: <code>build\/admin\/<\/code> and <code>build\/frontend\/<\/code><\/li>\n<li>Rebuild the bundles: <code>composer install &amp;&amp; npm ci &amp;&amp; npm run build<\/code><\/li>\n<li>Runtime PHP dependencies (Dompdf) are managed with Composer.<\/li>\n<\/ul>\n\n<p>Development repository: https:\/\/github.com\/erred74\/ErreD-EU-Order-Withdrawal-for-WooCommerce<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to the <code>\/wp-content\/plugins\/<\/code> directory, or install it through the WordPress\nplugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>WooCommerce 8.2 or newer (with High-Performance Order Storage) is required.<\/li>\n<li>Visit WooCommerce \u2192 Recesso digitale: settings to configure the withdrawal window, the window\nstart trigger and your product\/category exclusions.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20decide%20whether%20an%20order%20can%20be%20withdrawn%3F\"><h3>Does this plugin decide whether an order can be withdrawn?<\/h3><\/dt>\n<dd><p>No. The plugin provides the channel and records the request; the merchant accepts or rejects each\none. The ordinary 14-day period is shown as advisory information (it does not hide the function),\nand the merchant can pre-exclude specific products or categories (art. 59). Rejecting a request\nrequires a reason, which is recorded and emailed to the consumer. The mapping of the art. 59\nexceptions to your catalogue must still be validated by a legal professional.<\/p><\/dd>\n<dt id=\"does%20it%20work%20for%20guest-checkout%20orders%3F\"><h3>Does it work for guest-checkout orders?<\/h3><\/dt>\n<dd><p>Yes. Guests receive a per-order, single-purpose signed link (HMAC, verified in constant time and\nrate-limited). A bare order id or order key is never sufficient to submit a withdrawal, and\nresponses are uniform to prevent order enumeration.<\/p><\/dd>\n<dt id=\"does%20the%20withdrawal%20flow%20require%20javascript%3F\"><h3>Does the withdrawal flow require JavaScript?<\/h3><\/dt>\n<dd><p>No. The two-step flow is server-rendered and works with JavaScript disabled; JavaScript only\nenhances the admin experience.<\/p><\/dd>\n<dt id=\"what%20is%20the%20%22durable%20medium%22%3F\"><h3>What is the \"durable medium\"?<\/h3><\/dt>\n<dd><p>A withdrawal acknowledgement sent by email together with a stored PDF receipt, kept in a protected\nlocation and downloadable only through a capability- or token-checked endpoint. The receipt records\nthe content of the request and the exact date and time of transmission.<\/p><\/dd>\n<dt id=\"does%20it%20support%20woocommerce%20subscriptions%3F\"><h3>Does it support WooCommerce Subscriptions?<\/h3><\/dt>\n<dd><p>Optionally. If WooCommerce Subscriptions is active, a confirmed withdrawal cancels the related\nsubscription by transitioning its status \u2014 it never deletes subscription data. With Subscriptions\nabsent, the plugin is unaffected.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20make%20external%20network%20calls%3F\"><h3>Does the plugin make external network calls?<\/h3><\/dt>\n<dd><p>No. It functions fully offline and loads no third-party scripts, fonts or assets.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20on%20uninstall%3F\"><h3>What happens to my data on uninstall?<\/h3><\/dt>\n<dd><p>Nothing is removed unless you opt in via the \"Delete all data on uninstall\" setting. When enabled,\nthe plugin removes its tables, options and the flow page on uninstall.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.4<\/h4>\n\n<ul>\n<li>Admin: the WooCommerce menu entries and the requests-page heading now default to English\n(\"Order Withdrawal\", \"Order Withdrawal: settings\"); Italian sites keep the previous\n\u00abRecesso digitale\u00bb labels via the bundled it_IT translation.<\/li>\n<\/ul>\n\n<h4>0.5.3<\/h4>\n\n<ul>\n<li>Uninstall: only the withdrawal page auto-created by the plugin is removed. The page is now\nidentified by a created-by-plugin marker (and must still host the withdrawal shortcode), so a\npre-existing page the merchant selected in settings is never deleted.<\/li>\n<\/ul>\n\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>The withdrawal function is now a single \u00abrecedere dal contratto qui\u00bb button shown below the order\ndetails, available to both guest-checkout customers (order-received page) and logged-in members\n(My Account order view); the previous duplicate button is gone and the link no longer reports\n\"this withdrawal link is not valid or has expired\".<\/li>\n<li>Confirmation step: removed the (unnecessary) product thumbnail and gave the \u00abconferma recesso\u00bb\nbutton a proper, accessible button style that no longer depends on the theme.<\/li>\n<li>Admin: unconfirmed (abandoned) declarations no longer appear in the requests list or its counts,\nand a consumer who closed the page before confirming can start a fresh request.<\/li>\n<li>Admin: the menu badge counts all open requests awaiting action (confirmed and acknowledged) and\nuses the standard WooCommerce\/WordPress menu-counter styling.<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Packaging: the distribution now bundles the full, human-readable JS\/CSS source (<code>assets\/<\/code>) and\nthe build manifests (<code>package.json<\/code>, <code>package-lock.json<\/code>) alongside the compiled <code>build\/<\/code>\nassets, and the readme documents how to rebuild them and links the public development repository.<\/li>\n<li>Dependency: the bundled Dompdf library is updated from 3.0.0 to 3.1.5.<\/li>\n<li>Hardening: the admin receipt download link now carries a nonce that the download endpoint\nverifies for the admin path (the consumer link continues to use its signed, rate-limited token).<\/li>\n<li>Hardening: saving a product's withdrawal status now verifies the WooCommerce editor nonce and\nthe <code>edit_product<\/code> capability explicitly.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>New \"Withdrawal\" column on the WooCommerce orders screen (HPOS and the legacy list) showing each\norder's current withdrawal decision as a colour-coded badge.<\/li>\n<li>The request detail panel now sets the decision through a single \"Set status\" dropdown (Pending,\nAccepted, Rejected, Completed) with a \"Save status\" button next to \"Regenerate receipt\". The reason\nfield appears only when rejecting (and stays required); the orders column updates to match.<\/li>\n<li>Hardening: the contract reference stored for a withdrawal is now always derived server-side from\nthe order number, ignoring any client-supplied value on the REST create endpoint.<\/li>\n<li>Hardening: the receipt download endpoint now validates the stored path against an exact directory\nboundary, preventing a similarly named sibling directory from being treated as the protected store.<\/li>\n<li>Packaging: reproducible production builds (installed from composer.lock) and a direct-access guard\nadded to the generated PHP asset files in the distribution.<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Product\/category \"Withdrawal status\" now offers the specific art. 59 \/ Directive classifications\n(standard, digital content art. 16(m), service started early art. 14(4)(a), dated accommodation \/\ntransport art. 16(l), other art. 16 exception) instead of a plain allow\/exclude, and each maps to\nthe right eligibility outcome. Statuses saved by earlier versions keep working.<\/li>\n<li>A one-time welcome notice after activation links straight to the settings and the auto-created\nwithdrawal page.<\/li>\n<li>Reorganised the settings screen into clear sections (General, Withdrawal deadline, Article 16\nexclusions, Checkout consents, Model withdrawal form, Excluded products notice, Withdrawal link\nvisibility, Data), added a notification email and a withdrawal-page selector, a \"show model form\"\ntoggle and an optional trader phone number.<\/li>\n<li>The Annex I.B model withdrawal form was redesigned to match the statutory layout (header block with\nthe trader's details, fillable lines, source attribution and an optional printable view).<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Fix: an in-place update now reliably adds the v4 optional columns \u2014 the installed schema version is\nonly advanced once the columns actually exist, so the requests admin list and the withdrawal form no\nlonger break until a manual re-activation.<\/li>\n<li>Hardening: the withdrawal declaration never white-screens \u2014 a transient persistence failure degrades\nto a friendly message instead of a fatal error (the legally-required function stays usable).<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Art. 59 configuration: per-product and per-category \"Right of withdrawal\" status (allow \/ exclude \/\ninherit) in the product and category editors, plus an opt-in \"excluded from withdrawal\" notice on\nthe product page.<\/li>\n<li>Checkout consents: optional, configurable digital-content (art. 16(m)) and service-start\n(art. 14(4)(a)) consents, recorded on the order with timestamps and an order note.<\/li>\n<li>Annex I.B model withdrawal form (printable), populated with configurable trader contact details,\nshown below the public form and via the [recesso_digitale_modulo] shortcode.<\/li>\n<li>Order notes mirror the withdrawal lifecycle; new customer emails on accept\/refund\/complete and an\nadmin notification (multiple recipients) when a withdrawal is confirmed.<\/li>\n<li>Admin: Accept \/ Mark completed \/ Mark refunded actions, an at-a-glance stats summary and a CSV\nexport of requests.<\/li>\n<li>GDPR: personal-data exporter and eraser (anonymises personal data while retaining the legal\nacknowledgement) and a suggested privacy-policy snippet.<\/li>\n<li>Optional refund IBAN and reason fields on the declaration (carried into the durable receipt),\nhoneypot anti-spam, an optional persistent footer link, an optional strict deadline-enforcement\nmode with grace days, and a wpml-config.xml for WPML\/Polylang.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Redesigned the consumer withdrawal page: products are chosen with checkboxes, each shown with its\nthumbnail, and a per-product quantity selector appears only when more than one unit was purchased.<\/li>\n<li>The durable-medium acknowledgement email now lists every selected product with its quantity, along\nwith the confirmation email and the declaration timestamp, matching the PDF receipt.<\/li>\n<li>The two-step confirmation (\u00abconferma recesso\u00bb) and the completion screen now itemise exactly which\nproducts and quantities are being withdrawn.<\/li>\n<li>Internal: item resolution unified in one shared component used by the receipt, email and on-screen\nsummaries; the tamper-evident receipt hash is unchanged.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial development release.<\/li>\n<li>Security-first, HPOS-native withdrawal channel: continuously available function, two-step\nserver-rendered declaration\/confirmation flow, signed rate-limited guest access.<\/li>\n<li>Durable medium: acknowledgement email plus a protected, tamper-evident PDF receipt with a\nwrite-once legal timestamp (dies a quo), generated asynchronously via Action Scheduler.<\/li>\n<li>Conservative, configurable, fail-closed eligibility engine (window, start trigger, art. 59\nexclusions) with filters for integrators.<\/li>\n<li>React admin: list, status filter, free-text search, audit timeline, receipt view\/regenerate,\nprocess actions, and a menu badge for requests awaiting action.<\/li>\n<li>Optional WooCommerce Subscriptions adapter (withdrawal cancels the subscription).<\/li>\n<li>Merchant-decides model: the 14-day period is advisory (shown to the merchant), the withdrawal\nfunction stays available, and the merchant accepts or rejects each request. Rejection requires a\nreason, recorded in the audit trail and emailed to the consumer.<\/li>\n<li>Accessibility to WCAG 2.2 AA (axe-verified) and a complete it_IT translation.<\/li>\n<\/ul>","raw_excerpt":"Digital withdrawal function for WooCommerce \u2014 the EU &quot;easy withdrawal&quot; duty (Directive 2023\/2673), in force from 19 June 2026.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/330627","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=330627"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/draison"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=330627"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=330627"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=330627"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=330627"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=330627"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=330627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}