{"id":281465,"date":"2026-02-14T17:49:58","date_gmt":"2026-02-14T17:49:58","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/kitgenix-stock-sync-for-woocommerce\/"},"modified":"2026-03-19T10:29:49","modified_gmt":"2026-03-19T10:29:49","slug":"kitgenix-stock-sync-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/lug.wordpress.org\/plugins\/kitgenix-stock-sync-for-woocommerce\/","author":23310025,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"7.0","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"Kitgenix Stock Sync for WooCommerce","header_author":"Kitgenix","header_description":"Securely sync WooCommerce stock between multiple stores using a master + child topology and signed REST requests.","assets_banners_color":"a496ca","last_updated":"2026-03-19 10:29:49","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/donate.stripe.com\/9B65kDgG3fTQ2Kzcmwf7i00","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/kitgenix-stock-sync-for-woocommerce\/","header_author_uri":"https:\/\/kitgenix.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":262,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"kitgenix","date":"2026-02-14 17:51:31"},"1.0.1":{"tag":"1.0.1","author":"kitgenix","date":"2026-02-19 22:14:22"},"1.0.2":{"tag":"1.0.2","author":"kitgenix","date":"2026-03-19 10:29:49"}},"upgrade_notice":{"1.0.2":"<p>Maintenance and compatibility update. Recommended for all sites.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3465413,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3465413,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3465413,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3465413,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3486342,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3486342,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3486342,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3486342,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3486342,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3486342,"resolution":"6","location":"assets","locale":""}},"screenshots":{"1":"Status tab showing role, this store ID, and inbound\/outbound health timestamps.","2":"Configuration tab for store name, Master\/Child role selection, Strict checkout validation, and Exclusions.","3":"Stores tab: Child \u2192 Master connection fields, or Master \u2192 manage configured Child stores and shared secrets.","4":"Tools tab: Test Connection, plus Master tools (Reconcile, Manual SKU Sync, Audit Children) and audit results.","5":"Logs tab: Event Log and Backlog (failures), with actions to clear each.","6":"Support tab showing plugin impact summary and support links."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[6601,133042,12448,1558,286],"plugin_category":[45],"plugin_contributors":[246171],"plugin_business_model":[],"class_list":["post-281465","plugin","type-plugin","status-publish","hentry","plugin_tags-inventory","plugin_tags-multi-store","plugin_tags-stock","plugin_tags-sync","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-kitgenix","plugin_committers-kitgenix"],"banners":{"banner":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/banner-772x250.png?rev=3465413","banner_2x":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/banner-1544x500.png?rev=3465413","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/icon-128x128.png?rev=3465413","icon_2x":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/icon-256x256.png?rev=3465413","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-1.png?rev=3486342","caption":"Status tab showing role, this store ID, and inbound\/outbound health timestamps."},{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-2.png?rev=3486342","caption":"Configuration tab for store name, Master\/Child role selection, Strict checkout validation, and Exclusions."},{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-3.png?rev=3486342","caption":"Stores tab: Child \u2192 Master connection fields, or Master \u2192 manage configured Child stores and shared secrets."},{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-4.png?rev=3486342","caption":"Tools tab: Test Connection, plus Master tools (Reconcile, Manual SKU Sync, Audit Children) and audit results."},{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-5.png?rev=3486342","caption":"Logs tab: Event Log and Backlog (failures), with actions to clear each."},{"src":"https:\/\/ps.w.org\/kitgenix-stock-sync-for-woocommerce\/assets\/screenshot-6.png?rev=3486342","caption":"Support tab showing plugin impact summary and support links."}],"raw_content":"<!--section=description-->\n<p>Running multiple WooCommerce stores often creates the same operational problem: <strong>stock drift<\/strong>.<\/p>\n\n<p>You update stock on one site, but another site still shows the old quantity. That can lead to oversells, customer frustration, and messy fulfilment.<\/p>\n\n<p><strong>Kitgenix Stock Sync for WooCommerce<\/strong> solves this with a secure, practical model:<\/p>\n\n<ul>\n<li>One <strong>Master<\/strong> store holds the authoritative stock state.<\/li>\n<li>One or more <strong>Child<\/strong> stores receive updates from the Master.<\/li>\n<li>Stores communicate over <strong>signed REST requests<\/strong> (HMAC SHA-256) with timestamp + nonce replay protection.<\/li>\n<\/ul>\n\n<p>This plugin is designed to be lightweight:\n- No third-party SaaS.\n- No custom database tables.\n- Uses WooCommerce + WordPress primitives (REST API, options, product meta, transients, WooCommerce logging, Action Scheduler).<\/p>\n\n<h4>What this plugin syncs<\/h4>\n\n<p>Stock state is synced per SKU, including:\n- stock quantity\n- stock status\n- backorders\n- low stock amount<\/p>\n\n<p>Note: this plugin is focused on inventory syncing. It does not sync pricing, product content, images, or orders.<\/p>\n\n<h4>How it works (high level)<\/h4>\n\n<p>1) Stock changes are captured on each store using WooCommerce stock hooks.<\/p>\n\n<p>2) Children send events to the Master; the Master applies incoming events locally and then pushes <strong>authoritative stock state<\/strong> out to all enabled children.<\/p>\n\n<p>3) The Master can also run a <strong>Reconcile<\/strong> operation to push stock state for all products in batches.<\/p>\n\n<h4>SKU rename sync (important)<\/h4>\n\n<p>This plugin supports SKU renames by maintaining an internal, stable identifier (a \u201cGID\u201d) stored as product meta:\n- <code>_kitgenix_stock_sync_for_woocommerce_gid<\/code><\/p>\n\n<p>When SKUs change on the Master, the plugin emits a <code>sku_rename<\/code> event using the GID so child stores can map the update safely.<\/p>\n\n<p>Tip: Run <strong>Reconcile<\/strong> on the Master after initial setup. Reconcile establishes stable GIDs for products that don\u2019t already have one, which makes SKU rename sync reliable.<\/p>\n\n<h4>Strict checkout validation (Child)<\/h4>\n\n<p>Child stores can optionally enable <strong>Strict checkout validation<\/strong>:\n- During checkout, the child queries the Master\u2019s stock for SKUs in the cart.\n- If the Master reports the SKU is out of stock or insufficient (with backorders disabled), checkout is blocked.\n- If the Master can\u2019t be reached, validation is <strong>fail-open<\/strong> to avoid breaking checkout.<\/p>\n\n<h4>Exclusions<\/h4>\n\n<p>You can exclude SKUs (comma or new line separated). Excluded SKUs are ignored for:\n- outbound stock events\n- reconcile batches\n- strict checkout validation\n- audit checks<\/p>\n\n<h4>Tools &amp; diagnostics included<\/h4>\n\n<p>From the plugin admin screen:\n- <strong>Test Connection<\/strong> (ping the configured store)\n- <strong>Reconcile (Master)<\/strong>: push authoritative stock state to all children in batches\n- <strong>Manual SKU Sync (Master)<\/strong>: push a specific set of SKUs to all children\n- <strong>Audit Children (Master)<\/strong>: query each child\u2019s local stock fields and compare against the Master\n- <strong>Event Log + Backlog<\/strong>: see recent events and failed pushes, and clear logs when needed\n- <strong>Status<\/strong>: last inbound\/outbound health timestamps and last error message<\/p>\n\n<h3>Quick Start<\/h3>\n\n<ol>\n<li>Install and activate the plugin on the Master and all Child stores.<\/li>\n<li>Choose your role on each store:\n\n<ul>\n<li>Master: one store<\/li>\n<li>Child: all other stores<\/li>\n<\/ul><\/li>\n<li>On the Child store: set the Master connection (Master URL, Master Store ID, Shared Secret).<\/li>\n<li>On the Master store: add each child (Child URL, Child Store ID, Shared Secret).<\/li>\n<li>Use Tools \u2192 <strong>Test Connection<\/strong>.<\/li>\n<li>On the Master store: run Tools \u2192 <strong>Reconcile<\/strong> to establish stable GIDs and push initial state.<\/li>\n<li>Optionally enable Strict checkout validation on children.<\/li>\n<\/ol>\n\n<h3>Developers<\/h3>\n\n<p>Text domain:\nkitgenix-stock-sync-for-woocommerce<\/p>\n\n<p>Option key:\n- <code>kitgenix_stock_sync_for_woocommerce_settings<\/code><\/p>\n\n<p>Option schema (high-level):\n- <code>this_store_id<\/code>, <code>this_store_name<\/code>, <code>role<\/code>, <code>strict_checkout_validation<\/code>\n- <code>master<\/code> (child config): <code>url<\/code>, <code>store_id<\/code>, <code>secret<\/code>\n- <code>children<\/code> (master config): entries with <code>id<\/code>, <code>name<\/code>, <code>url<\/code>, <code>secret<\/code>, <code>enabled<\/code>\n- <code>exclusions.skus<\/code>\n- Diagnostics\/admin UI state: <code>notices<\/code>, <code>event_log<\/code>, <code>backlog<\/code>, <code>reconcile<\/code>, <code>health<\/code><\/p>\n\n<p>Product meta key:\n- <code>_kitgenix_stock_sync_for_woocommerce_gid<\/code><\/p>\n\n<p>REST API routes (POST):\n- <code>\/wp-json\/kitgenix-stock-sync\/v1\/ping<\/code>\n- <code>\/wp-json\/kitgenix-stock-sync\/v1\/event<\/code>\n- <code>\/wp-json\/kitgenix-stock-sync\/v1\/stock<\/code> (master only; used by strict checkout validation)\n- <code>\/wp-json\/kitgenix-stock-sync\/v1\/stock-state<\/code> (used by audit)<\/p>\n\n<p>Authentication headers:\n- <code>X-Kitgenix-Store-Id<\/code>\n- <code>X-Kitgenix-Timestamp<\/code>\n- <code>X-Kitgenix-Nonce<\/code>\n- <code>X-Kitgenix-Signature<\/code><\/p>\n\n<p>Signatures:\n- HMAC SHA-256 over: <code>timestamp + \"\\n\" + nonce + \"\\n\" + request_body<\/code>\n- Timestamp skew allowed: 5 minutes\n- Nonce replay protection stored via transients<\/p>\n\n<p>Action Scheduler hooks:\n- (Action group: <code>kitgenix-stock-sync<\/code>)\n- <code>kitgenix_stock_sync_for_woocommerce_process_event<\/code>\n- <code>kitgenix_stock_sync_for_woocommerce_push_to_store<\/code> (async enqueue)\n- <code>kitgenix_stock_sync_for_woocommerce_retry_send_to_master<\/code>\n- <code>kitgenix_stock_sync_for_woocommerce_retry_push_to_store<\/code>\n- <code>kitgenix_stock_sync_for_woocommerce_reconcile_batch<\/code><\/p>\n\n<p>Admin capability:\n- <code>manage_woocommerce<\/code><\/p>\n\n<p>Admin nonces:\n- <code>kss_save_config<\/code>\n- <code>kss_save_connection<\/code>\n- <code>kss_save_children<\/code>\n- <code>kss_test_connection<\/code>\n- <code>kss_tools<\/code>\n- <code>kss_logs<\/code><\/p>\n\n<p>Filters:\n- <code>kitgenix_stock_sync_for_woocommerce_parent_menu_slug<\/code> (change the parent menu slug; default: <code>kitgenix<\/code>)<\/p>\n\n<p>Transients (dynamic keys):\n- <code>kitgenix_stock_sync_for_woocommerce_do_activation_redirect<\/code> (30 seconds)\n- <code>kitgenix_stock_sync_for_woocommerce_kss_nonce_{md5(store_id|nonce)}<\/code> (nonce replay protection, 10 minutes)\n- <code>kitgenix_stock_sync_for_woocommerce_kss_seen_{md5(event_id)}<\/code> (duplicate event detection, ~2 hours)\n- <code>kitgenix_stock_sync_for_woocommerce_kss_debounce_{md5(key)}<\/code> (debounce, ~2 seconds)\n- <code>kitgenix_stock_sync_for_woocommerce_kss_old_sku_{post_id}<\/code> (SKU rename helper, 60 seconds)\n- <code>kitgenix_stock_sync_for_woocommerce_kss_audit_result_{user_id}<\/code> (stores last audit result in wp-admin, 10 minutes)<\/p>\n\n<p>Object cache (if persistent object cache is enabled):\n- Cache group: <code>kitgenix_stock_sync<\/code>\n- Key: <code>kitgenix_stock_sync_for_woocommerce_kss_gid_{md5(gid)}<\/code> (GID \u2192 product ID lookup, ~1 hour)<\/p>\n\n<p>Internal action hooks (called directly, but can be hooked):\n- <code>kitgenix_stock_sync_for_woocommerce_process_order_processing<\/code><\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin includes a shared \u201cKitgenix hub\u201d component in wp-admin which may fetch publicly available plugin metadata from WordPress.org using WordPress core\u2019s <code>plugins_api()<\/code> function.<\/p>\n\n<p>Caching:\n- Transient: <code>kitgenix_hub_wporg_active_installs_v1<\/code>\n- Transient: <code>kitgenix_hub_wporg_ratings_v1<\/code><\/p>\n\n<p>This plugin does not otherwise connect to third-party services as part of its stock sync. It does make REST requests between your own WordPress sites (Master and Child stores). These requests may include:\n- product SKUs\n- stock state (quantity\/status\/backorders\/low stock)<\/p>\n\n<p>Strict checkout validation on children sends SKUs in the cart to the Master for stock verification.<\/p>\n\n<h3>Security &amp; Privacy<\/h3>\n\n<ul>\n<li>No tracking cookies are added by this plugin.<\/li>\n<li>Admin actions are protected with nonces and capability checks.<\/li>\n<li>REST requests are authenticated using HMAC signatures with timestamp + nonce replay protection.<\/li>\n<li>Shared secrets are stored in the plugin settings option (<code>kitgenix_stock_sync_for_woocommerce_settings<\/code>). Treat secrets like passwords.<\/li>\n<\/ul>\n\n<h3>Uninstall<\/h3>\n\n<p>This plugin removes its settings and plugin-only transients on uninstall. It does not remove WooCommerce product meta or Action Scheduler records.<\/p>\n\n<p>Removed on uninstall:\n- Option: <code>kitgenix_stock_sync_for_woocommerce_settings<\/code>\n- Site option: <code>kitgenix_stock_sync_for_woocommerce_settings<\/code>\n- Transients by prefix: <code>kitgenix_stock_sync_for_woocommerce_<\/code> and <code>kss_<\/code> (covers dynamic keys such as nonce\/seen\/debounce helpers)<\/p>\n\n<p>Multisite:\n- Removes per-site options and transients for each site.<\/p>\n\n<p>If you want to remove all plugin data, you can also delete:\n- the product meta <code>_kitgenix_stock_sync_for_woocommerce_gid<\/code> (if you no longer need SKU rename mapping)<\/p>\n\n<h3>Support Development<\/h3>\n\n<p>If this plugin saves you admin time or helps prevent oversells across multiple stores, you can support ongoing development here:\nhttps:\/\/donate.stripe.com\/9B65kDgG3fTQ2Kzcmwf7i00<\/p>\n\n<h3>Credits<\/h3>\n\n<p>Built with \u2764\ufe0e by @kitgenix - https:\/\/kitgenix.com<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install via Plugins \u2192 Add New and search for \u201cKitgenix Stock Sync for WooCommerce\u201d, or upload the ZIP to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin (WooCommerce required).<\/li>\n<li>Open the settings under the Kitgenix hub (Kitgenix \u2192 Stock Sync).<\/li>\n<li>Configure Master\/Child roles and connection secrets.<\/li>\n<li>Run a Reconcile on the Master.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%3F\"><h3>Does this require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. This plugin hooks WooCommerce product stock APIs and requires WooCommerce to be active.<\/p><\/dd>\n<dt id=\"can%20i%20have%20more%20than%20one%20master%3F\"><h3>Can I have more than one Master?<\/h3><\/dt>\n<dd><p>No. This plugin is designed for a single authoritative Master store and one or more children.<\/p><\/dd>\n<dt id=\"does%20it%20sync%20product%20data%20%28title%2C%20price%2C%20images%29%20or%20orders%3F\"><h3>Does it sync product data (title, price, images) or orders?<\/h3><\/dt>\n<dd><p>No. It syncs stock state only.<\/p><\/dd>\n<dt id=\"what%20stock%20fields%20are%20synced%3F\"><h3>What stock fields are synced?<\/h3><\/dt>\n<dd><p>Per SKU: stock quantity, stock status, backorders, and low stock amount.<\/p><\/dd>\n<dt id=\"does%20it%20support%20variable%20products%3F\"><h3>Does it support variable products?<\/h3><\/dt>\n<dd><p>Yes. Variations are synced by their own variation SKU.<\/p><\/dd>\n<dt id=\"are%20any%20product%20types%20excluded%3F\"><h3>Are any product types excluded?<\/h3><\/dt>\n<dd><p>External\/Affiliate and Grouped products are skipped for stock syncing (these types are not stock-managed in WooCommerce).<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20child%20store%20is%20offline%3F\"><h3>What happens if a child store is offline?<\/h3><\/dt>\n<dd><p>Failed pushes are recorded in the Backlog and retried automatically using WooCommerce\u2019s Action Scheduler when available.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20the%20master%20is%20unreachable%20during%20checkout%20validation%3F\"><h3>What happens if the Master is unreachable during checkout validation?<\/h3><\/dt>\n<dd><p>Strict checkout validation is fail-open: it logs a warning and does not block checkout if the Master cannot be reached.<\/p><\/dd>\n<dt id=\"where%20can%20i%20see%20logs%3F\"><h3>Where can I see logs?<\/h3><\/dt>\n<dd><ul>\n<li>WooCommerce \u2192 Status \u2192 Logs (source: <code>kitgenix-stock-sync-for-woocommerce<\/code>)<\/li>\n<li>Kitgenix \u2192 Stock Sync \u2192 Logs tab (Event Log + Backlog)<\/li>\n<\/ul><\/dd>\n<dt id=\"how%20do%20i%20exclude%20skus%3F\"><h3>How do I exclude SKUs?<\/h3><\/dt>\n<dd><p>Add SKUs in Configuration \u2192 Exclusions. Excluded SKUs are ignored across all sync and tooling paths.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2 (19 March 2026)<\/h4>\n\n<p>Update: Improved the Kitgenix admin header layout for better alignment and less clutter.\nUpdate: Social links in admin headers now render as compact icon buttons (with accessible labels).\nUpdate: Added responsive header helpers so titles\/description and actions\/links lay out consistently.\nFix: Added defensive notice normalization to keep WordPress admin notices above the Kitgenix header.\nUpdate: Admin tables inside Kitgenix pages now use Kitgenix styling for a more consistent branded look.\nFix: Added spacing between adjacent action links\/buttons (e.g., Edit\/Delete).\nFix: Escaped shared Kitgenix hub card media output for WordPress coding standards compliance.\nMaintenance: Updated the plugin Author URI to the public Kitgenix WordPress.org profile and replaced the old custom admin-menu icon CSS with the native Dashicons icon.<\/p>\n\n<h4>1.0.1 (18 February 2026)<\/h4>\n\n<ul>\n<li>Tweak: Clarified uninstall behaviour (plugin settings + transients are removed; WooCommerce product meta and Action Scheduler data are retained).<\/li>\n<li>Dev: Updated translation template metadata.<\/li>\n<\/ul>\n\n<h4>1.0.0 (14 February 2026)<\/h4>\n\n<ul>\n<li>New: Initial release.<\/li>\n<li>New: Master + child stock sync via signed REST events.<\/li>\n<li>New: Strict checkout validation on children (optional).<\/li>\n<li>New: Master tools: reconcile, manual SKU sync, and audit.<\/li>\n<li>New: Event log and backlog with retries via Action Scheduler when available.<\/li>\n<\/ul>","raw_excerpt":"Sync WooCommerce stock between stores with secure master-child inventory updates and signed REST requests.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/281465","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=281465"}],"author":[{"embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/kitgenix"}],"wp:attachment":[{"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=281465"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=281465"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=281465"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=281465"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=281465"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lug.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=281465"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}