{"id":337180,"date":"2026-07-08T13:40:11","date_gmt":"2026-07-08T13:40:11","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/smartretur\/"},"modified":"2026-07-10T13:39:11","modified_gmt":"2026-07-10T13:39:11","slug":"returino-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/vec.wordpress.org\/plugins\/returino-for-woocommerce\/","author":23529027,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.4","stable_tag":"1.2.4","tested":"7.0.1","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Returino \u2013 Formular de retur for WooCommerce","header_author":"Returino","header_description":"Brings a WooCommerce store into compliance with OUG 18\/2026: an accessible digital withdrawal\/return process, partial returns, and instant durable-medium (email) confirmations.","assets_banners_color":"1b6e5c","last_updated":"2026-07-10 13:39:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":184,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.10":{"tag":"1.0.10","author":"nord95","date":"2026-07-08 19:13:53"},"1.0.4":{"tag":"1.0.4","author":"nord95","date":"2026-07-08 13:39:49"},"1.0.6":{"tag":"1.0.6","author":"nord95","date":"2026-07-08 15:53:07"},"1.0.7":{"tag":"1.0.7","author":"nord95","date":"2026-07-08 16:04:23"},"1.1.0":{"tag":"1.1.0","author":"nord95","date":"2026-07-09 09:40:43"},"1.1.1":{"tag":"1.1.1","author":"nord95","date":"2026-07-09 10:00:29"},"1.2.2":{"tag":"1.2.2","author":"nord95","date":"2026-07-09 22:48:45"},"1.2.3":{"tag":"1.2.3","author":"nord95","date":"2026-07-10 13:13:49"},"1.2.4":{"tag":"1.2.4","author":"nord95","date":"2026-07-10 13:39:11"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3600720,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3600720,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3602871,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3602915,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.10","1.0.4","1.0.6","1.0.7","1.1.0","1.1.1","1.2.2","1.2.3","1.2.4"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[9682,270690,55969,270691,286],"plugin_category":[45],"plugin_contributors":[270599],"plugin_business_model":[],"class_list":["post-337180","plugin","type-plugin","status-publish","hentry","plugin_tags-refund","plugin_tags-retur","plugin_tags-returns","plugin_tags-retururi","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-nord95","plugin_committers-nord95"],"banners":{"banner":"https:\/\/ps.w.org\/returino-for-woocommerce\/assets\/banner-772x250.png?rev=3602915","banner_2x":"https:\/\/ps.w.org\/returino-for-woocommerce\/assets\/banner-1544x500.png?rev=3602871","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/returino-for-woocommerce\/assets\/icon-128x128.png?rev=3600720","icon_2x":"https:\/\/ps.w.org\/returino-for-woocommerce\/assets\/icon-256x256.png?rev=3600720","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Returino adaug\u0103 magazinului t\u0103u WooCommerce un formular public de retur \/ cerere de retragere din contract, g\u00e2ndit pentru cerin\u021bele <strong>OUG 18\/2026<\/strong> privind dreptul de retragere al consumatorilor.<\/p>\n\n<p>Clientul \u00ee\u0219i identific\u0103 singur comanda (num\u0103r comand\u0103 + email de facturare), selecteaz\u0103 exact produsele pe care vrea s\u0103 le returneze \u2014 retur par\u021bial, nu doar integral \u2014 \u0219i prime\u0219te o confirmare pe email, pe suport durabil, cu detaliile exacte ale cererii.<\/p>\n\n<p><strong>Func\u021bionalit\u0103\u021bi principale:<\/strong><\/p>\n\n<ul>\n<li>Formular public \u00een 2 pa\u0219i, f\u0103r\u0103 s\u0103 p\u0103r\u0103seasc\u0103 site-ul t\u0103u \u2014 nicio platform\u0103 extern\u0103, niciun cont necesar pentru client.<\/li>\n<li>Retur par\u021bial: clientul alege exact ce produse \u0219i ce cantit\u0103\u021bi returneaz\u0103, nu tot co\u0219ul.<\/li>\n<li>Validare strict\u0103 pe server \u2014 produsele \u0219i cantit\u0103\u021bile sunt reluate direct din comand\u0103, nu din ce trimite browserul clientului.<\/li>\n<li>IBAN cerut doar c\u00e2nd chiar e nevoie de el (ramburs, transfer bancar) \u2014 la plata cu cardul, banii se \u00eentorc automat pe card, f\u0103r\u0103 s\u0103 mai ceri IBAN.<\/li>\n<li>Motivul returului e op\u021bional \u2014 clientul poate trimite cererea f\u0103r\u0103 s\u0103 completeze unul.<\/li>\n<li>Confirmare instantanee pe email, pe suport durabil, cu numele clientului, num\u0103rul comenzii, produsele exacte \u0219i data\/ora exact\u0103 a cererii \u2014 util\u0103 \u0219i pentru eventuale verific\u0103ri ANPC.<\/li>\n<li>Pagina cu formularul se creeaz\u0103 automat la activare (dac\u0103 nu exist\u0103 deja una) \u2014 nimic de configurat manual.<\/li>\n<li>Meniu dedicat \u201eReturino\u201d \u00een admin, cu toate cererile, coloane reale (Comand\u0103, Client, Status, Produse, Data cererii) \u0219i filtru de status.<\/li>\n<li>Panou clar de aprobare\/respingere pe fiecare cerere \u2014 un click, f\u0103r\u0103 termeni confuzi de tipul \u201ePublish\u201d.<\/li>\n<li>Notific\u0103ri op\u021bionale prin email: c\u0103tre admin la cerere nou\u0103, c\u0103tre client la aprobare\/respingere \u2014 pe l\u00e2ng\u0103 confirmarea legal\u0103, care r\u0103m\u00e2ne mereu activ\u0103.<\/li>\n<li>Integrare direct\u0103 \u00een ecranul comenzii din WooCommerce (compatibil HPOS) \u2014 vezi dintr-o privire dac\u0103 o comand\u0103 are cereri de retur asociate.<\/li>\n<li>Tab \u201eCererile mele de retur\u201d \u00een contul clientului (My Account), pentru clien\u021bii loga\u021bi.<\/li>\n<\/ul>\n\n<p>Pluginul te ajut\u0103 s\u0103 implementezi partea tehnic\u0103 a cerin\u021belor din OUG 18\/2026 (formular, confirmare pe suport durabil, retur par\u021bial) \u2014 nu constituie consultan\u021b\u0103 juridic\u0103 \u0219i nu garanteaz\u0103, prin el \u00eensu\u0219i, conformitatea legal\u0103 complet\u0103 a magazinului t\u0103u. Recomand\u0103m verificarea cerin\u021belor exacte aplicabile afacerii tale.<\/p>\n\n<h4>In English<\/h4>\n\n<p>Returino adds a public 2-step withdrawal\/return form to your WooCommerce store, built around Romania's OUG 18\/2026 consumer withdrawal-right requirements: partial returns, durable-medium email confirmation, strict server-side validation, and no external platform involved.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WooCommerce active (declared explicitly via <code>Requires Plugins<\/code>).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Instaleaz\u0103 \u0219i activeaz\u0103 pluginul (Plugins \u2192 Add New, sau upload manual).<\/li>\n<li>Asigur\u0103-te c\u0103 WooCommerce e instalat \u0219i activ.<\/li>\n<li>La prima intrare \u00een admin dup\u0103 activare, pluginul creeaz\u0103 automat o pagin\u0103 cu formularul de retur (dac\u0103 nu g\u0103se\u0219te deja una cu shortcode-ul <code>[returino_return_form]<\/code>) \u0219i \u00ee\u021bi arat\u0103 un notice cu link c\u0103tre ea \u2014 adaug-o \u00een meniul din footer sau alt\u0103 zon\u0103 vizibil\u0103 a site-ului.<\/li>\n<li>Dac\u0103 preferi alt\u0103 pagin\u0103, o alegi din dropdown-ul \u201ePagina de retur\u201d din Returino \u2192 Set\u0103ri. Shortcode-ul trebuie pus <strong>direct \u00een con\u021binutul paginii<\/strong> \u2014 nu printr-un widget sau page builder, altfel stilurile\/scripturile nu se \u00eencarc\u0103 automat.<\/li>\n<li>Cererile de retur apar \u00een meniul <strong>Returino<\/strong> din admin.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"unde%20trebuie%20pus%20shortcode-ul%20ca%20s%C4%83%20func%C8%9Bioneze%20corect%3F\"><h3>Unde trebuie pus shortcode-ul ca s\u0103 func\u021bioneze corect?<\/h3><\/dt>\n<dd><p>Direct \u00een con\u021binutul unei pagini (bloc Shortcode sau editor clasic). Ad\u0103ugat prin widget sau page builder, formularul poate tot ap\u0103rea, dar stilurile\/scripturile nu se \u00eencarc\u0103 automat.<\/p><\/dd>\n<dt id=\"motivul%20returului%20e%20obligatoriu%3F\"><h3>Motivul returului e obligatoriu?<\/h3><\/dt>\n<dd><p>Nu, e op\u021bional. Clientul poate trimite cererea f\u0103r\u0103 s\u0103 completeze un motiv.<\/p><\/dd>\n<dt id=\"cere%20iban%20de%20la%20to%C8%9Bi%20clien%C8%9Bii%3F\"><h3>Cere IBAN de la to\u021bi clien\u021bii?<\/h3><\/dt>\n<dd><p>Nu. IBAN e cerut doar pentru comenzi pl\u0103tite ramburs sau prin transfer bancar. La plata cu cardul, c\u00e2mpul nici nu apare \u2014 rambursarea se face automat pe card.<\/p><\/dd>\n<dt id=\"cum%20aprob%20sau%20resping%20o%20cerere%20de%20retur%3F\"><h3>Cum aprob sau resping o cerere de retur?<\/h3><\/dt>\n<dd><p>Deschizi cererea din Returino \u2192 Toate Retururile. \u00cen panoul \u201eStare cerere de retur\u201d din dreapta ai trei butoane: \u201eMarcheaz\u0103 \u00een procesare\u201d, \u201eAprob\u0103 cererea\u201d, \u201eRespinge cererea\u201d \u2014 un click, f\u0103r\u0103 re\u00eenc\u0103rcare de pagin\u0103. Aprobarea\/respingerea trimite automat emailul corespunz\u0103tor clientului (dac\u0103 e activat \u00een Set\u0103ri) \u0219i adaug\u0103 o not\u0103 pe comand\u0103.<\/p><\/dd>\n<dt id=\"ce%20se%20%C3%AEnt%C3%A2mpl%C4%83%20dac%C4%83%20un%20produs%20din%20comand%C4%83%20a%20fost%20%C8%99ters%20ulterior%3F\"><h3>Ce se \u00eent\u00e2mpl\u0103 dac\u0103 un produs din comand\u0103 a fost \u0219ters ulterior?<\/h3><\/dt>\n<dd><p>Formularul afi\u0219eaz\u0103 o imagine placeholder \u0219i numele produsului salvat pe linia comenzii \u2014 nu depinde de produsul mai exist\u00e2nd \u00een catalog.<\/p><\/dd>\n<dt id=\"e%20compatibil%20cu%20high-performance%20order%20storage%20%28hpos%29%3F\"><h3>E compatibil cu High-Performance Order Storage (HPOS)?<\/h3><\/dt>\n<dd><p>Da, compatibilitate declarat\u0103 explicit; meta box-ul de pe ecranul comenzii func\u021bioneaz\u0103 at\u00e2t cu tabelele custom de comenzi, c\u00e2t \u0219i cu stocarea clasic\u0103 bazat\u0103 pe post\u0103ri.<\/p><\/dd>\n<dt id=\"site-ul%20e%20%C3%AEn%20spatele%20unui%20proxy%2Fcdn%20%28cloudflare%29%20%C8%99i%20formularul%20se%20blocheaz%C4%83%20pentru%20to%C8%9Bi%20vizitatorii%3F\"><h3>Site-ul e \u00een spatele unui proxy\/CDN (Cloudflare) \u0219i formularul se blocheaz\u0103 pentru to\u021bi vizitatorii?<\/h3><\/dt>\n<dd><p>Limitarea de \u00eencerc\u0103ri la c\u0103utarea comenzii (10 c\u0103ut\u0103ri e\u0219uate \/ 15 minute) se bazeaz\u0103 implicit pe adresa IP a conexiunii (<code>REMOTE_ADDR<\/code>). \u00cen spatele unui proxy invers sau CDN precum Cloudflare, aceast\u0103 adres\u0103 poate fi cea a proxy-ului, nu a vizitatorului \u2014 caz \u00een care to\u021bi vizitatorii ajung s\u0103 \u00eempart\u0103 aceea\u0219i limit\u0103.<\/p>\n\n<p>Dac\u0103 site-ul t\u0103u chiar ruleaz\u0103 \u00een spatele unui astfel de proxy, po\u021bi suprascrie sursa IP-ului cu un filtru (ex. \u00eentr-un plugin de site sau <code>functions.php<\/code>):<\/p>\n\n<pre><code>add_filter( 'returino_rate_limit_ip', function ( $ip, $server ) {\n    return $server['HTTP_CF_CONNECTING_IP'] ?? $ip;\n}, 10, 2 );\n<\/code><\/pre>\n\n<p><strong>Folose\u0219te acest filtru doar dac\u0103 site-ul chiar e \u00een spatele acelui proxy<\/strong> \u2014 altfel, orice vizitator \u00eel poate ocoli trimi\u021b\u00e2nd el \u00eensu\u0219i acel antet.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>Admin menu icon is now the Returino mark instead of a generic dashicon.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>Updated the plugin directory banner artwork. No code changes.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Updated the readme's Description\/Installation\/FAQ to match the 1.2.0\/\n1.2.1 changes \u2014 Installation no longer tells you to create the return\npage by hand (it's created automatically), and there's a new FAQ entry\non how to approve\/reject a request.<\/li>\n<li>Renamed the \"Credit Returino\" setting to \"Logo Returino\" with a clearer\ndescription of what the checkbox does.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Replaced the classic editor's native \"Publish\" box for return requests\nwith a dedicated \"Stare cerere de retur\" panel \u2014 no more \"Publish\"\/\n\"Published\" terminology that meant nothing here. Shows the current\nstatus plainly and three one-click actions (Mark as processing \/\nApprove \/ Reject), applied instantly over AJAX. Approving or\nrejecting still triggers the existing order note and customer email\nautomatically, same as before.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Admin return-request list reworked: real columns (Order, Client,\nStatus, Items, Confirmation email, Request date) instead of the\ngeneric title\/date WordPress gives a CPT by default. Removed the\n\"Add New\" button (requests only ever come from the customer form),\nthe \"Mine\" view and the \"All dates\" dropdown (neither meaningful\nhere), and added a Status filter dropdown.<\/li>\n<li>New request titles no longer include the customer's name (now meta +\nits own column only) \u2014 keeps it out of revisions and global admin\nsearch. Existing request titles are left as they are.<\/li>\n<li>A return-form page is now created automatically if one doesn't\nalready exist (searches for a page already using the shortcode\nfirst, so nothing is duplicated). Configurable from Returino \u2192\nSettings; shows a one-time notice pointing at the page so it can be\nlinked from the site's navigation, as OUG 18\/2026 requires the\nprocess to be clearly visible, not just technically present.<\/li>\n<li>Added optional (on by default) email notifications: to the store\nadmin on a new request, and to the customer when a request is\napproved or rejected. These are in addition to the mandatory\ndurable-medium confirmation, which still cannot be disabled. Each\ntracks its own sent\/failed delivery status via wp_mail_failed, same\nas the confirmation email.<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Fixed a critical bug (WordPress core #24415): custom post statuses need\nboth <code>show_in_admin_all_list<\/code> and <code>protected<\/code> set to appear in the\nadmin list's \"All\" view \u2014 only the first was set, so the list table's\n\"All (N)\" count and the actual rows shown disagreed, and return\nrequests could go unnoticed. Added <code>protected =&gt; true<\/code> (kept\n  public =&gt; false \u2014 requests are still never queryable from the\nfront end).<\/li>\n<li>One-time migration moves any request still stuck on the native\n\"Published\" status (residue from the bug fixed in 1.0.9) back to\nPending, and logs a note on its linked order. Runs on admin_init and\nself-disables after running once; trashed requests are left untouched.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fixed the order-lookup rate limiter to key off a validated IP address\ninstead of trusting REMOTE_ADDR blindly \u2014 sites behind a reverse\nproxy\/CDN (e.g. Cloudflare) could otherwise have every visitor share\none throttling bucket, turning the anti-enumeration protection into an\naccidental site-wide lockout. Added a <code>returino_rate_limit_ip<\/code> filter\nfor sites that need to supply the real visitor IP (see FAQ). A\nsuccessful lookup now also clears that visitor's failed-attempt count.<\/li>\n<li>Renamed the wp_ajax_oug18_* AJAX action\/nonce names to\nwp_ajax_returino_* (code only, no stored data affected \u2014 the\n  <em>oug18<\/em>* post meta keys are unchanged).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed the plugin to \"Returino \u2013 Formular de retur for WooCommerce\"\n(previously \"Returino for WooCommerce\") for better discoverability\nwhen searching in wp-admin.<\/li>\n<li>The \"Powered by Returino\" credit on the public form is now opt-in and\ndisabled by default (Returino \u2192 Settings) \u2014 previously it showed\nautomatically. Existing installs will stop showing it until enabled.<\/li>\n<li>Added per-IP throttling on order lookup (max 10 failed attempts \/ 15\nminutes) against order-number enumeration.<\/li>\n<li>Unified the order-lookup error message so it no longer reveals whether\nthe order number or the email was the wrong part.<\/li>\n<li>Renamed the internal \"oug18-\" prefix (markup\/CSS\/JS) to \"returino-\".<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Added a server-side guard (wp_insert_post_data) so a return request can\nnever be saved with a status other than our own four, regardless of\nwhich admin UI path is used (Quick Edit, bulk edit, REST API, etc.) \u2014\nthe previous fix only covered the classic per-post editor.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fixed a bug where opening\/saving a return request in wp-admin silently\nreset its status to \"Published\" (the classic edit screen didn't\nrecognize our custom statuses), making it disappear from the order\nscreen and the customer's My Account tab. The custom statuses are now\nregistered in that screen's status dropdown.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Small performance improvements.<\/li>\n<li>Added subtle Returino branding to the email footer and the form.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>IBAN is now only required for payment methods that can't be refunded\nautomatically (cash on delivery, bank transfer). Card\/wallet payments\nskip the IBAN field entirely, both in the form and in validation.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Track each confirmation email's delivery status (sent\/failed), captured\nvia wp_mail_failed, and show it on every return request in admin.<\/li>\n<li>\"Resend confirmation\" button \u2014 resends the exact original content, not\na rebuilt one.<\/li>\n<li>\"Send test email\" tool on the settings screen.<\/li>\n<li>Confirmation content is now saved in the database independent of email\ndelivery, and shown to the logged-in customer under My Account \u2192\n\"Cererile mele de retur\" \u2014 a durable-medium safety net that doesn't\ndepend on the email actually arriving.<\/li>\n<li>Dashboard\/list notice and an admin-menu count bubble for failed\nconfirmation emails, so failures surface without relying on email.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Renamed to Returino for WooCommerce to avoid confusion with an\nunrelated, unaffiliated existing company of the previous name.<\/li>\n<li>Replaced generic \"woo\"\/\"wc\" prefixes (namespace, constants, CPT slug,\nstatuses, shortcode tag) with a distinct \"returino\" prefix.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Removed the GitHub-based update checker in favor of native\nwordpress.org updates.<\/li>\n<li>Text domain aligned with the plugin slug.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Meta box on the WooCommerce order screen showing linked return requests.<\/li>\n<li>Automatic order note whenever a request's status changes.<\/li>\n<li>Explicit HPOS compatibility declaration.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: custom post type + statuses, 2-step front-end form,\nAJAX validation, confirmation email, admin meta box, Returino menu.<\/li>\n<\/ul>","raw_excerpt":"Formular de retur digital pentru WooCommerce. Conform OUG 18\/2026: retururi par\u021biale, confirmare pe email, f\u0103r\u0103 platform\u0103 extern\u0103.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/337180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=337180"}],"author":[{"embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nord95"}],"wp:attachment":[{"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=337180"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=337180"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=337180"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=337180"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=337180"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/vec.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=337180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}