{"id":330031,"date":"2026-07-07T16:54:42","date_gmt":"2026-07-07T16:54:42","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/xmr-pay-for-woocommerce\/"},"modified":"2026-07-07T16:54:11","modified_gmt":"2026-07-07T16:54:11","slug":"nodewatch-monero","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/nodewatch-monero\/","author":23517609,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.2","stable_tag":"1.1.2","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Nodewatch Monero Payments for WooCommerce","header_author":"SlowBearDigger","header_description":"Accept Monero (XMR) in WooCommerce \u2014 non-custodial, funds go straight to your address. Verifies payments in pure PHP against a Monero node (no backend), or via your own agent daemon. No third party in the payment path.","assets_banners_color":"0b0b0d","last_updated":"2026-07-07 16:54:11","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/xmrpay.shop","header_plugin_uri":"https:\/\/github.com\/SlowBearDigger\/xmr-pay","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.2":{"tag":"1.1.2","author":"slowbeardigger","date":"2026-07-07 16:54:11"}},"upgrade_notice":{"1.0.1":"<p>Security hardening: burning-bug defence (dedup by output key), requires the BCMath extension alongside GMP, and fully order-independent settlement. Recommended for all no-server installs.<\/p>","1.0.0":"<p>First stable release. No-server mode now sums installment and top-up payments and never strands partial funds. No store reconfiguration needed.<\/p>","0.1.5":"<p>Pairs with the xmr-pay 0.4.0-beta agent. Partially-paid orders are never auto-cancelled (funds stay safe), overpayment is recorded, and a 5-minute reconcile cron backs up the webhook. Upgrade both plugin and agent.<\/p>","0.1.4":"<p>Adds a guided setup wizard that walks you through connecting your agent, the webhook, and pricing. No change to existing configured stores.<\/p>","0.1.3":"<p>Adds downloadable, verifiable cryptographic receipts and an optional post-payment redirect.<\/p>","0.1.2":"<p>Adds a light and dark theme option for the payment box.<\/p>","0.1.1":"<p>Fixes the payment-page link in order emails.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3599377,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3599377,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3599377,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3599377,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3599377,"resolution":"1","location":"assets","locale":"","width":1568,"height":701},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3599377,"resolution":"2","location":"assets","locale":"","width":1568,"height":701},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3599377,"resolution":"3","location":"assets","locale":"","width":1568,"height":762},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3599377,"resolution":"4","location":"assets","locale":"","width":942,"height":701},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3599377,"resolution":"5","location":"assets","locale":"","width":452,"height":701},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3599377,"resolution":"6","location":"assets","locale":"","width":1568,"height":701}},"screenshots":{"1":"Monero enabled under WooCommerce, Settings, Payments.","2":"The setup wizard, choosing the recommended Auto detect mode.","3":"Your Monero address, view key and node, with Check setup confirming everything.","4":"The Monero option at checkout, with your order summary.","5":"The order received page: live on-chain status and the payment QR.","6":"The Monero payments report, with amounts owed, received and confirmations."}},"plugin_section":[],"plugin_tags":[12611,145009,6593,286,152594],"plugin_category":[45],"plugin_contributors":[270507],"plugin_business_model":[],"class_list":["post-330031","plugin","type-plugin","status-publish","hentry","plugin_tags-cryptocurrency","plugin_tags-monero","plugin_tags-payment-gateway","plugin_tags-woocommerce","plugin_tags-xmr","plugin_category-ecommerce","plugin_contributors-slowbeardigger","plugin_committers-slowbeardigger"],"banners":{"banner":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/banner-772x250.png?rev=3599377","banner_2x":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/banner-1544x500.png?rev=3599377","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/icon-128x128.png?rev=3599377","icon_2x":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/icon-256x256.png?rev=3599377","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-1.png?rev=3599377","caption":"Monero enabled under WooCommerce, Settings, Payments."},{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-2.png?rev=3599377","caption":"The setup wizard, choosing the recommended Auto detect mode."},{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-3.png?rev=3599377","caption":"Your Monero address, view key and node, with Check setup confirming everything."},{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-4.png?rev=3599377","caption":"The Monero option at checkout, with your order summary."},{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-5.png?rev=3599377","caption":"The order received page: live on-chain status and the payment QR."},{"src":"https:\/\/ps.w.org\/nodewatch-monero\/assets\/screenshot-6.png?rev=3599377","caption":"The Monero payments report, with amounts owed, received and confirmations."}],"raw_content":"<!--section=description-->\n<p>Add Monero to your WooCommerce checkout and let WordPress do the rest. There is no backend to run, no account to open, and no company sitting between you and your buyer. Each order is paid straight to your own wallet, and WordPress checks the blockchain itself, in PHP, to confirm the payment.<\/p>\n\n<p>Most stores are live in a few minutes. You enter your Monero address, your view key, and a node URL, pick the recommended mode, and you are done.<\/p>\n\n<h4>Why merchants pick it<\/h4>\n\n<p>You keep your money. Every order pays your wallet directly. The plugin never holds funds and never sees a spend key, so no one but you can move the coins.<\/p>\n\n<p>Nothing to run. The two default modes verify payments inside WordPress, in pure PHP, against a public Monero node. No separate service, no wallet RPC daemon, nothing awake at 3am waiting to break.<\/p>\n\n<p>No accounts, no API keys, no fee to a processor. The only outside thing you need is a Monero node, and a public one is fine.<\/p>\n\n<p>It fits your checkout. Works with the modern WooCommerce Blocks checkout and the classic one, and it is HPOS ready.<\/p>\n\n<p>The numbers are exact. Amounts are figured in piconero with integer math, so there is no rounding drift. Discounts, shipping and tax are already in the order total, so they just work.<\/p>\n\n<p>Live progress and receipts. The order received page shows the on chain status as it settles. Overpayment is recorded for a manual refund, and paid orders can carry a signed receipt anyone can verify offline.<\/p>\n\n<h4>Pick the mode that suits you<\/h4>\n\n<p>Auto detect (recommended). The buyer does nothing special. They pay a per order address, and WordPress scans the chain with your view key and completes the order on its own.<\/p>\n\n<p>Buyer taps \"I've paid\". The lightest option. The buyer pays your address and pastes the transaction ID, and WordPress verifies it on chain.<\/p>\n\n<p>Agent (advanced). You run the separate xmr-pay daemon, which holds the view key and notifies your store with a signed webhook.<\/p>\n\n<p>The two default modes need no server, just your WordPress and a Monero node. Your host needs the PHP GMP and BCMath extensions, which most hosts already have.<\/p>\n\n<h4>Pricing<\/h4>\n\n<p>Price in XMR directly (set your store currency to XMR, no price feed needed), or price in your local currency and convert with CoinGecko, your own price URL, or a fixed rate.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not track you or your customers, sends no analytics, and does not phone home to the plugin author. It connects only to the service(s) you configure, to do its job.<\/p>\n\n<ol>\n<li><p>A Monero node (the node URL you enter in the settings, a public one or your own). In the no-server modes, the plugin sends transaction IDs and chain-height queries over HTTP to read the blockchain (daemon RPC: get_transactions, get_block, get_height, get_info). No personal data is sent. The node sees the transaction ID it is asked about and your server's IP. The node is yours to choose, so you choose who you trust; run your own for maximum privacy. (Default suggestion: a community stagenet node for testing.)<\/p><\/li>\n<li><p>CoinGecko, only if you price your store in a fiat currency and choose the \"CoinGecko\" price source. The plugin requests the current Monero price for your currency from https:\/\/api.coingecko.com. No store or customer data is sent (only the currency code). You can avoid it entirely by pricing your store in XMR, using a fixed rate, or using your own price URL. CoinGecko terms: https:\/\/www.coingecko.com\/en\/terms and privacy: https:\/\/www.coingecko.com\/en\/privacy<\/p><\/li>\n<li><p>Your own xmr-pay agent, only in the optional \"Agent\" mode. The plugin talks over HTTP to the agent daemon you run (on your own machine). It is your software; nothing leaves your control.<\/p><\/li>\n<\/ol>\n\n<p>Your Monero private view key (used by the no-server modes) stays on your own server. It is never sent to any external service, including the node.<\/p>\n\n<!--section=installation-->\n<p>Accepting Monero takes about five minutes. There is a screenshot for each step below.<\/p>\n\n<ol>\n<li><p>Install and activate. In your dashboard go to Plugins, Add New, Upload Plugin, and choose the zip. Activate it. WooCommerce needs to be active too.<\/p><\/li>\n<li><p>Open the settings. Go to WooCommerce, Settings, Payments, and click Monero (Nodewatch). The setup wizard opens on first activation.<\/p><\/li>\n<li><p>Choose a mode. Pick Auto detect in WordPress. It is the recommended one and needs no action from your buyer.<\/p><\/li>\n<li><p>Enter your details. Paste your Monero address, your private view key, and a node URL. Leave confirmations at 1 to start. Click Check setup: the plugin confirms the node is reachable, the network matches your address, and the view key really belongs to it.<\/p><\/li>\n<li><p>Go live. Once Check setup is green, save. Monero now shows up at checkout.<\/p><\/li>\n<\/ol>\n\n<p>Test on stagenet first. Point the address, view key and node at a stagenet wallet, run a full order, then swap in your mainnet details when you are happy. There is a public stagenet demo at https:\/\/demo.xmrpay.shop<\/p>\n\n<p>More private. Instead of pasting the view key in the settings, put define( 'XMRPAY_VIEW_KEY', '...' ); in wp-config.php.<\/p>\n\n<p>Agent mode (advanced). Run the separate xmr-pay daemon (npm i xmr-pay monero-ts, then scanner-agent.js with your address, view key, node and a webhook secret, bound to localhost, see docs\/AGENT.md). Choose Agent mode and enter the Agent URL, token and webhook secret it prints.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20it%20custodial%3F%20does%20the%20plugin%20hold%20my%20funds%20or%20keys%3F\"><h3>Is it custodial? Does the plugin hold my funds or keys?<\/h3><\/dt>\n<dd><p>No. Payments go to your own wallet. No spend key ever lives in WordPress, so no one but you can move the funds. The no-server modes keep your view key (view-only, it can detect payments, it cannot spend) on your own server. Agent mode keeps it on your agent.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20run%20a%20backend%20or%20agent%3F\"><h3>Do I have to run a backend or agent?<\/h3><\/dt>\n<dd><p>No. The default modes verify payments inside WordPress itself, in pure PHP, against a public Monero node. Nothing runs 24\/7. Agent mode (running the separate xmr-pay daemon) is optional, for merchants who prefer it.<\/p><\/dd>\n<dt id=\"what%20do%20i%20need%3F\"><h3>What do I need?<\/h3><\/dt>\n<dd><p>A Monero address, a Monero node URL (a public one is fine), and, for the auto-detect and \"I've paid\" modes, your wallet's private view key and the PHP GMP and BCMath extensions. That is it.<\/p><\/dd>\n<dt id=\"how%20are%20refunds%20handled%3F\"><h3>How are refunds handled?<\/h3><\/dt>\n<dd><p>Monero is non-custodial and a transaction does not reveal the sender, so refunds are manual. The plugin records the refund in WooCommerce and adds a note reminding you to send the XMR back to a receive address the customer gives you.<\/p><\/dd>\n<dt id=\"what%20if%20a%20buyer%20underpays%20or%20overpays%3F\"><h3>What if a buyer underpays or overpays?<\/h3><\/dt>\n<dd><p>Underpaid: the order stays on hold (you can allow a small tolerance for dust). Overpaid: the order completes and the exact excess is recorded so you can refund the difference by hand.<\/p><\/dd>\n<dt id=\"mainnet%20or%20stagenet%3F\"><h3>Mainnet or stagenet?<\/h3><\/dt>\n<dd><p>Both. Use a matching address, node and view key for the network you want. There is a live stagenet demo store at https:\/\/demo.xmrpay.shop<\/p><\/dd>\n<dt id=\"where%20can%20i%20test%20it%3F\"><h3>Where can I test it?<\/h3><\/dt>\n<dd><p>https:\/\/demo.xmrpay.shop, a public stagenet demo. Grab test XMR from a stagenet faucet and try the full flow.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Hardening (Agent mode): Agent URLs are now enforced as localhost-only in the setup wizard, gateway settings, Blocks availability, and runtime client, closing an avoidable server-side request surface before WordPress.org review.<\/li>\n<li>Fix (remote node setup): WordPress's wp_safe_remote_* only allows a short list of ports and silently blocks Monero RPC ports like 18081 (mainnet) and 38089 (stagenet), so pointing the plugin at a remote node failed until you hand-added an http_allowed_safe_ports filter. The plugin now whitelists the ports of your configured node(s) automatically (and only those; the safe-HTTP SSRF guard still protects every other host and port). Thanks to the tester who reported this. No settings change.<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Fix (payment detection): the per-output scan loop wrapped ownership and amount\/commitment decoding in one catch, so an error while decoding an output that IS yours (e.g. a pruned node, a malformed blob) was indistinguishable from \"not yours\" and could report a real payment as unpaid. Ownership and decoding are now separated: an undecodable but owned output fails closed and is surfaced (found-but-unverified), never silently missed. Hardening only; no settings or data change.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Non-custodial refunds (claim-link). Refund an order and the buyer gets a link to enter a Monero receive address (a tx never reveals the sender); you pay it by hand and mark it sent. Configurable link expiry with one-click reissue, address and network validation, and a reopen on a later refund so additional money is never stranded.<\/li>\n<li>Monero payments report and CSV export under WooCommerce (owed, received, overpaid, confirmations, state, refund status), spreadsheet-formula-injection safe.<\/li>\n<li>Resilient multi-node. Comma-separated nodes now genuinely fail over, and the block height is cross-checked across them (the lowest is used), so a lagging node can only delay a payment, never confirm it early.<\/li>\n<li>Critical fix: the order-completion and proof paths used a non-existent WordPress function for their lock; replaced with a real atomic mutex. Also: a watch order is no longer created in an unscannable state when the node is briefly unreachable (the checkout fails cleanly so the buyer retries), a wrong-network refund address is rejected, and a mempool double-spend is never credited.<\/li>\n<li>Tested PHP 7.4, 8.1 and 8.3 in CI.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: burning-bug defence. The no-server scanner now deduplicates payments by the one-time output key, not by the transaction id. Two outputs that share a one-time key (a 2018-style burn, even across different transactions) are at most one spendable output, so they can never credit an order twice.<\/li>\n<li>Requires both GMP and BCMath. The pure-PHP verifier needs the BCMath extension (for base58) in addition to GMP (for the money math). The gateway now hides itself, and the settings warn, on a host missing either one, instead of failing after a buyer paid.<\/li>\n<li>Hardened the settlement math to be fully order-independent (a duplicate that disagrees on lock status can never change the verdict by row order).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First stable release. The no-server (pure-PHP) and agent modes are both production-tested with an adversarial test suite (order-independence, dedup, byzantine duplicates, false-paid hunting).<\/li>\n<li>No-server mode now sums multiple payments. A buyer who pays in installments, or sends a small test transaction then the rest, now completes automatically once the total reaches the price, matching the agent mode. Previously the WP-native scanner tracked only the first transaction.<\/li>\n<li>Funds are never stranded. A watch-mode order that received a partial payment is flagged and kept open (never auto-cancelled at expiry) and completes on a top-up.<\/li>\n<li>Hardened the settlement math to be independent of the order the node returns transactions in, so a duplicate or out-of-order response can never over- or under-credit an order.<\/li>\n<\/ul>\n\n<h4>0.1.8 (beta)<\/h4>\n\n<ul>\n<li>Clearer network indicator. The settings now show which network you are on (mainnet, stagenet or testnet) as a badge, and the wizard and address field explain that the network follows your address; there is no separate toggle. To go live, swap the address, view key and node to your mainnet ones.<\/li>\n<\/ul>\n\n<h4>0.1.7 (beta)<\/h4>\n\n<ul>\n<li>Privacy: Monero orders no longer store the buyer's IP address or user-agent. WooCommerce records both on every order; since Monero is irreversible (no chargebacks), there is no dispute reason to keep them, so the plugin strips them from its orders.<\/li>\n<li>The order's confirmation count now updates while the payment is maturing. The admin shows progress (\"received, N confirmations\") before the order settles, not just the final value. (The buyer's checkout page already updated live.)<\/li>\n<\/ul>\n\n<h4>0.1.6 (beta)<\/h4>\n\n<ul>\n<li>No-server modes: accept Monero with no external agent. The plugin can now verify payments in pure PHP (vendored Monero crypto: ed25519, Keccak, base58), in two new modes: Auto-detect (a view-only watch over your address and node) and \"I've paid\" (the buyer pastes a transaction ID, verified on-chain). The advanced Agent mode is still there. The no-server modes need the GMP and BCMath PHP extensions (most hosts have both, or can enable them).<\/li>\n<li>Mode-aware setup wizard with a live \"Check setup\" that confirms the node is reachable, the network matches your address, and your view key actually belongs to the address before you go live.<\/li>\n<li>Pricing your way. Fixed-rate fallback when a feed is down, and you can point at your own price-source URL (JSON) instead of CoinGecko. The custom URL is fetched with SSRF protection.<\/li>\n<li>Fix: the setup wizard (and the post-activation redirect) could return \"Sorry, you are not allowed to access this page.\" The hidden admin page is now registered so direct access works.<\/li>\n<li>Fix: the \"Check setup\" and \"Test connection\" buttons returned HTTP 400. Their admin-ajax handlers are now registered correctly.<\/li>\n<li>WordPress.org readiness: all inline scripts moved into enqueued asset files, ABSPATH guards on bundled files, translation template (.pot), and an \"External services\" privacy disclosure in the readme.<\/li>\n<li>Refreshed the bundled checkout widget to the latest build.<\/li>\n<\/ul>\n\n<h4>0.1.5 (beta)<\/h4>\n\n<ul>\n<li>Pairs with the xmr-pay 0.4.0-beta agent (payment-correctness and reliability release). No store reconfiguration needed.<\/li>\n<li>Funds are never orphaned on expiry. A partially-paid order is no longer auto-cancelled when its window lapses. The plugin asks the agent, keeps it on hold, and shows a \"your funds are safe, contact us\" message with the QR hidden.<\/li>\n<li>Overpayment is surfaced. When a buyer overpays, the exact excess is recorded on the order (meta and note) and shown in the admin payment meta box.<\/li>\n<li>Reconcile safety net. A 5-minute cron re-polls the agent for on-hold orders and completes (or flags) any the webhook missed, covering webhook outages and node catch-up.<\/li>\n<li>Sync-status on the checkout. When the agent's node is catching up, the payment page shows \"node catching up...\" instead of a silent \"unpaid\".<\/li>\n<li>Settings now note that underpayment tolerance, confirmations and expiry are configured agent-side (XMR_TOLERANCE_XMR, XMR_MIN_CONFIRMATIONS, XMR_EXPIRY_HOURS).<\/li>\n<\/ul>\n\n<h4>0.1.4 (beta)<\/h4>\n\n<ul>\n<li>Guided setup wizard: a step-by-step onboarding (welcome, connect agent, webhook, pricing, go live) that mirrors the npx xmr-pay agent flow, so the three values the agent prints (Agent URL, token, webhook secret) land in the right places without hunting through the full settings form. Live \"Test connection\" gates the step; the webhook URL is shown with a copy button. Opens automatically on activation; reachable any time from the plugins list (\"Setup wizard\") or the admin notice. The full settings page is unchanged for fine-tuning.<\/li>\n<\/ul>\n\n<h4>0.1.3 (beta)<\/h4>\n\n<ul>\n<li>Cryptographic receipts: once an order is paid, the order-received page shows a \"Download receipt\" (a merchant-signed receipt) plus a one-click link to a bundled, offline, dependency-free verifier. Anyone can verify it forever, no third party. The signed receipt is also stored on the order.<\/li>\n<li>New \"Redirect after payment (URL)\" setting: send the buyer to a custom page (a thank-you, a digital download, etc.) the moment the payment confirms. Supports {order_id} and {order_key} placeholders.<\/li>\n<li>test_amount override is now honoured only when the agent is on a confirmed test network (stagenet or testnet); it can never silently fix the price on a live store.<\/li>\n<\/ul>\n\n<h4>0.1.2 (beta)<\/h4>\n\n<ul>\n<li>Add a \"Payment box theme\" setting (light or dark) so the QR and payment box match your store theme instead of always rendering light.<\/li>\n<\/ul>\n\n<h4>0.1.1 (beta)<\/h4>\n\n<ul>\n<li>Fix: the \"open the payment page\" link in the order email pointed at the order-pay page, which redirects for on-hold orders. It now links to the order-received page that renders the QR and live status.<\/li>\n<\/ul>\n\n<h4>0.1.0 (beta)<\/h4>\n\n<ul>\n<li>First public beta. Gateway (classic and Blocks), HPOS support, XMR-native and CoinGecko\/fixed pricing, live on-chain progress and top-up, signed HMAC webhooks, exact piconero math, \"Test connection\", order payment meta box, debug logging.<\/li>\n<\/ul>","raw_excerpt":"Accept Monero (XMR) in WooCommerce in minutes. No backend, no accounts, no middleman. Payments land in your own wallet.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/330031","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=330031"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/slowbeardigger"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=330031"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=330031"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=330031"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=330031"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=330031"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=330031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}