{"id":353943,"date":"2026-08-16T11:16:47","date_gmt":"2026-08-16T11:16:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/proxyai\/"},"modified":"2026-08-18T21:25:13","modified_gmt":"2026-08-18T21:25:13","slug":"proxyai","status":"publish","type":"plugin","link":"https:\/\/ur.wordpress.org\/plugins\/proxyai\/","author":23546725,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.7","stable_tag":"1.0.7","tested":"7.0.4","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"ProxyAI Chat Assistant","header_author":"ProxyAI","header_description":"AI chat assistant for your site and WooCommerce store. Answers questions from your own content, hands off to a human, and adds to the cart in the shopper's browser.","assets_banners_color":"78ca96","last_updated":"2026-08-18 21:25:13","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.proxyai.app\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/proxyai\/","header_author_uri":"https:\/\/www.proxyai.app","rating":0,"author_block_rating":0,"active_installs":0,"downloads":73,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"proxyai","date":"2026-08-16 11:16:23"},"1.0.7":{"tag":"1.0.7","author":"proxyai","date":"2026-08-18 21:25:13"}},"upgrade_notice":{"1.0.1":"<p>The support-ticket form moves into a dialog behind an &quot;Open a support ticket&quot; button. The form itself is served by ProxyAI, so this reaches your site whether or not you update; updating brings the matching editor and documentation text.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3649632,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3649632,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3649632,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3649632,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"proxyai\/tickets":{"name":"proxyai\/tickets","title":"ProxyAI Support Tickets"}},"tagged_versions":["1.0.3","1.0.7"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3649632,"resolution":"1","location":"assets","locale":"","width":1902,"height":963},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3649632,"resolution":"2","location":"assets","locale":"","width":377,"height":695},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3649632,"resolution":"3","location":"assets","locale":"","width":1903,"height":963},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3649632,"resolution":"4","location":"assets","locale":"","width":1903,"height":963},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3649632,"resolution":"5","location":"assets","locale":"","width":1903,"height":963},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3649632,"resolution":"6","location":"assets","locale":"","width":1902,"height":963},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3649632,"resolution":"7","location":"assets","locale":"","width":1903,"height":963}},"screenshots":{"1":"The assistant answering on a storefront, with suggested questions.","2":"The assistant adds an item to the shopper's cart from the conversation.","3":"The cart page after the assistant added the item \u2014 same browser session, ready for checkout.","4":"Human hand-off: the agent inbox in wp-admin, with an AI briefing of the conversation so far.","5":"Support tickets on a kanban board \u2014 open, pending and resolved, straight from wp-admin.","6":"Chatbot setup \u2014 name, model, intro message and spend at a glance.","7":"Channels: web, WhatsApp, Telegram, LINE, Messenger, Instagram and Discord from one bot."}},"plugin_section":[],"plugin_tags":[2353,2364,2369,2379,286],"plugin_category":[45],"plugin_contributors":[275959],"plugin_business_model":[],"class_list":["post-353943","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-chatbot","plugin_tags-customer-support","plugin_tags-live-chat","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-proxyai","plugin_committers-proxyai"],"banners":{"banner":"https:\/\/ps.w.org\/proxyai\/assets\/banner-772x250.png?rev=3649632","banner_2x":"https:\/\/ps.w.org\/proxyai\/assets\/banner-1544x500.png?rev=3649632","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/proxyai\/assets\/icon-128x128.png?rev=3649632","icon_2x":"https:\/\/ps.w.org\/proxyai\/assets\/icon-256x256.png?rev=3649632","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-1.png?rev=3649632","caption":"The assistant answering on a storefront, with suggested questions."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-2.png?rev=3649632","caption":"The assistant adds an item to the shopper's cart from the conversation."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-3.png?rev=3649632","caption":"The cart page after the assistant added the item \u2014 same browser session, ready for checkout."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-4.png?rev=3649632","caption":"Human hand-off: the agent inbox in wp-admin, with an AI briefing of the conversation so far."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-5.png?rev=3649632","caption":"Support tickets on a kanban board \u2014 open, pending and resolved, straight from wp-admin."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-6.png?rev=3649632","caption":"Chatbot setup \u2014 name, model, intro message and spend at a glance."},{"src":"https:\/\/ps.w.org\/proxyai\/assets\/screenshot-7.png?rev=3649632","caption":"Channels: web, WhatsApp, Telegram, LINE, Messenger, Instagram and Discord from one bot."}],"raw_content":"<!--section=description-->\n<p>ProxyAI adds a chat assistant to your site. It answers from your own pages and\nproducts, hands a conversation to a human when it cannot help, and \u2014 on a\nWooCommerce store \u2014 adds items to the shopper's cart in their own browser\nsession.<\/p>\n\n<p>Connecting is one click from the ProxyAI screen in wp-admin. No account or\ncredit card is needed beforehand: connecting creates an account tied to this\ndomain, verified by a callback to this site.<\/p>\n\n<h4>What it does<\/h4>\n\n<ul>\n<li>Answers visitor questions from your published posts, pages and products<\/li>\n<li>Hands off to a human, with the conversation in a shared inbox<\/li>\n<li>Adds to cart, and links to checkout, on WooCommerce stores<\/li>\n<li>Looks up a guest's order by order number and billing email<\/li>\n<li>Gives signed-in customers a support-ticket button, as a block or a shortcode<\/li>\n<li>Keeps its knowledge in step as you publish, edit and delete content<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<p>This site must be reachable over HTTPS from the public internet. Connecting is\na two-way handshake \u2014 ProxyAI calls back to\n    https:\/\/example.com\/wp-json\/proxyai\/v1\/confirm to verify you control this\ndomain \u2014 so a local, staging or password-protected site cannot connect.<\/p>\n\n<p>WooCommerce is optional. Without it the assistant works as a content chatbot\nand the cart and order-lookup features stay switched off.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin is a client for ProxyAI, a hosted service. It cannot function\nwithout it, and it contacts ProxyAI in the ways described below. The service is\noperated by ProxyAI at https:\/\/www.proxyai.app.<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/www.proxyai.app\/terms<\/li>\n<li>Privacy Policy: https:\/\/www.proxyai.app\/privacy<\/li>\n<li>Service Agreement: https:\/\/www.proxyai.app\/service-agreement<\/li>\n<\/ul>\n\n<p><strong>When you press \"Connect to ProxyAI\"<\/strong>, the plugin sends this site's address,\nits name, the administration email address, its WordPress version, its\nWooCommerce version if installed, whether pretty permalinks are enabled, and\nthe plugin version. This creates an account for this domain. Nothing is sent\nbefore you press that button.<\/p>\n\n<p><strong>Every six hours while connected<\/strong>, the plugin reports the same site name,\nWordPress version, WooCommerce version, permalink setting and plugin version.\nThis is how the service knows the install is alive and which features it can\noffer.<\/p>\n\n<p><strong>While you use the ProxyAI screen in wp-admin<\/strong>, the dashboard there \u2014 setup,\nadd-ons, inbox, tickets, usage, rates, settings \u2014 reads and writes through\nthis site's own REST API. Your server forwards each request to ProxyAI signed\nwith the site's secret; your browser talks only to your own site and holds no\nProxyAI credential. Nothing from the service is embedded inside wp-admin.<\/p>\n\n<p><strong>When you pay by card<\/strong>, your browser loads Stripe's payment form from\n    https:\/\/js.stripe.com \u2014 a PCI-compliant payment provider \u2014 and your card\ndetails go to Stripe alone; they never touch this site or ProxyAI's servers.\nStripe receives the amount, the currency, and the email address of the\nWordPress user paying. Stripe is operated by Stripe, Inc.:\nTerms of Service https:\/\/stripe.com\/legal\/consumer, Privacy Policy\nhttps:\/\/stripe.com\/privacy. Nothing from Stripe loads until you press\n\"Pay by card\".<\/p>\n\n<p><strong>When you pay with PayPal<\/strong>, PayPal's own checkout page opens in a new tab\nwith the amount and currency; the plugin loads no PayPal script and sees no\nPayPal login. PayPal is operated by PayPal Holdings, Inc.:\nUser Agreement https:\/\/www.paypal.com\/legalhub\/useragreement-full,\nPrivacy Statement https:\/\/www.paypal.com\/legalhub\/privacy-full.<\/p>\n\n<p><strong>When you upload files in wp-admin<\/strong> \u2014 knowledge documents for the Knowledge\nadd-on, a chat-widget icon, or a support-ticket attachment \u2014 the file goes from\nyour server to a storage address that ProxyAI issues for that upload; your\nbrowser talks only to your own site. These files are stored by ProxyAI under\nits Privacy Policy above.<\/p>\n\n<p><strong>When you open the hosted dashboard on proxyai.app<\/strong> (an optional link \u2014 the\nwp-admin screen covers day-to-day work), the plugin asks the service for a\none-time sign-in code over the same signed server-to-server channel, and your\nbrowser redeems it in a new tab. The code works once and expires after a\nminute.<\/p>\n\n<p><strong>When the Knowledge add-on is active<\/strong>, the plugin sends the URL, title and\nplain-text content of your published posts, pages and products, so the\nassistant can answer from them. Drafts, private posts, password-protected posts\nand trashed posts are never sent. Without that add-on, no content is sent. You\ncan filter or exclude individual documents with the <code>proxyai_sync_document<\/code>\nhook, or switch automatic sync off entirely under Store actions in the\nProxyAI screen.<\/p>\n\n<p><strong>On every front-end page view<\/strong>, visitors' browsers load the chat widget from\n    https:\/\/www.proxyai.app\/embed.js, and on WooCommerce stores also\n    woo-cart.js. On a page carrying the support-ticket form, they additionally\nload <code>ticket-embed.js<\/code> from the same host. Chat messages your visitors type go\nto ProxyAI to be answered. These scripts are served by the service itself and\nare not bundled, because the widget and the service it talks to are versioned\ntogether. <code>embed.js<\/code> and <code>woo-cart.js<\/code> are minified for visitors' page speed;\ntheir readable sources are served alongside them at\n    https:\/\/www.proxyai.app\/embed.src.js and\n    https:\/\/www.proxyai.app\/woo-cart.src.js, and kept with the plugin source at\nhttps:\/\/github.com\/Proxyai-team\/wordpress\/tree\/main\/widget. <code>ticket-embed.js<\/code>\nis served unminified.<\/p>\n\n<p><strong>When a logged-in user views a page with the assistant or the ticket form<\/strong>,\nthe plugin places a signed token on the page carrying that user's WordPress\nuser ID, email address and display name, which their browser passes to ProxyAI.\nThis is what lets the service recognise a returning customer and tie a ticket to\ntheir account's own email rather than one typed into a chat box. The token is\nsigned with a secret held by this site, so a visitor cannot forge one, and it is\nissued only while the Helpdesk add-on is active. Logged-out visitors get no\ntoken and stay anonymous.<\/p>\n\n<p><strong>When a visitor asks about an order<\/strong>, ProxyAI calls this site back with an\norder number and a billing email address. The plugin answers only if the two\nmatch an order here, and returns only that order's number, status, date, total,\ncurrency, line items and tracking details. Requests must be signed with this\nsite's secret, and repeated failures from one address are rate limited.<\/p>\n\n<h3>Source code<\/h3>\n\n<p>Everything in this plugin ships as its source. There is no build step, no\nbundler and no minification: <code>admin\/js\/dashboard.js<\/code> is hand-written and runs\nas-is on WordPress's bundled React (<code>wp.element<\/code>) and <code>wp.apiFetch<\/code>;\n    admin\/js\/tickets-block.js and <code>admin\/css\/admin.css<\/code> are likewise plain\nfiles. The plugin includes no third-party JavaScript or CSS libraries \u2014 the\nonly scripts loaded from elsewhere are Stripe's, and ProxyAI's own front-end\nwidget, both described under External services.<\/p>\n\n<p>The long lines you will find in <code>dashboard.js<\/code> are SVG icon paths and\ntranslatable strings, not compressed code.<\/p>\n\n<p>The same files are published, unchanged, at\nhttps:\/\/github.com\/Proxyai-team\/wordpress \u2014 read, fork, or diff against the\nplugin zip there.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Open <strong>ProxyAI<\/strong> in the admin menu (under <strong>WooCommerce<\/strong> if it is installed).<\/li>\n<li>Read what connecting sends, then press <strong>Connect to ProxyAI<\/strong>.<\/li>\n<li>Add credit from the <strong>Add-ons &amp; credits<\/strong> tab, and the assistant starts\nanswering.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20an%20account%20before%20installing%3F\"><h3>Do I need an account before installing?<\/h3><\/dt>\n<dd><p>No. Connecting creates one for this domain. There is no password to set \u2014 the\nsite itself is the credential.<\/p><\/dd>\n<dt id=\"does%20it%20cost%20anything%3F\"><h3>Does it cost anything?<\/h3><\/dt>\n<dd><p>The plugin and the assistant are free. Credit is only consumed while the\nassistant is answering, and you can top it up from the dashboard at any time.\nEvery add-on, such as Knowledge and Human Handoff, can be added free of charge\nin exchange for a small \"Powered by ProxyAI\" badge on the chat widget, or as a\none-time purchase without the badge \u2014 the feature is identical either way.<\/p><\/dd>\n<dt id=\"will%20it%20work%20on%20a%20local%20or%20staging%20site%3F\"><h3>Will it work on a local or staging site?<\/h3><\/dt>\n<dd><p>No. Connecting requires ProxyAI to reach this site over HTTPS from the public\ninternet, which a local or password-protected site cannot satisfy.<\/p><\/dd>\n<dt id=\"does%20it%20add%20a%20%22powered%20by%22%20link%20to%20my%20site%3F\"><h3>Does it add a \"Powered by\" link to my site?<\/h3><\/dt>\n<dd><p>Only if you choose it. The badge is off by default, and the only way to turn it\non is to take an add-on for free in exchange for showing it. If you would\nrather not show it, buy that add-on at its normal price instead \u2014 the feature\nis identical either way; starting credit, where an add-on bundles some, comes\nwith the paid option (the WooCommerce Store add-on includes its credit on both\npaths). Once taken, the badge stays for as long as you keep the add-on; write\nto support if you need that changed.<\/p><\/dd>\n<dt id=\"can%20i%20turn%20the%20assistant%20off%20without%20uninstalling%3F\"><h3>Can I turn the assistant off without uninstalling?<\/h3><\/dt>\n<dd><p>Yes. The <strong>Chat widget<\/strong> switch on the ProxyAI screen in wp-admin hides it.\nHidden, the widget is not loaded for visitors at all \u2014 no script, no request.\nYour bot, add-ons, credits and conversations are kept, and switching it back\non needs nothing else.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20deactivate%20the%20plugin%3F\"><h3>What happens if I deactivate the plugin?<\/h3><\/dt>\n<dd><p>Deactivating notifies ProxyAI and clears this site's stored credentials.\nUninstalling additionally removes every option the plugin created.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20support-ticket%20form%3F\"><h3>How do I add the support-ticket form?<\/h3><\/dt>\n<dd><p>Insert the <strong>ProxyAI Support Tickets<\/strong> block in the editor, or put the\n    [proxyai_tickets] shortcode on any page. Either way the page shows a single\n<strong>Open a support ticket<\/strong> button; the form and the customer's own ticket\nhistory open in a dialog on top of the page, so dropping the block into a post\ndoes not push your content around. It is rendered fresh on every request, so\nnothing personal is stored in the post itself. Only signed-in customers can\nopen a ticket \u2014 logged-out visitors are asked to log in first \u2014 and the form\nneeds the Helpdesk add-on to be active.<\/p><\/dd>\n<dt id=\"can%20i%20stop%20specific%20content%20being%20sent%3F\"><h3>Can I stop specific content being sent?<\/h3><\/dt>\n<dd><p>Yes. Filter <code>proxyai_sync_document<\/code> and return <code>null<\/code> to drop a document, or an\nedited array to redact it. To stop automatic sync altogether, turn off <strong>Sync\ncontent automatically<\/strong> under Store actions in the ProxyAI screen \u2014 nothing\nmore is sent until you turn it back on. <code>proxyai_enable_woo_cart<\/code> disables the cart bridge\nwhile leaving the assistant running.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>A one-time note in wp-admin invites a review on WordPress.org once your assistant has genuinely earned it \u2014 after it has handled ten conversations or resolved its first support ticket. Dismissing it is permanent, on every device.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>WhatsApp modes are now exclusive: the WhatsApp (Meta) modal says plainly that saving switches the bot to the official Cloud API and unpairs any phone connected through WhatsApp (Bridge). The server enforces it \u2014 no bot answers on both transports at once.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Smart Helpdesk Agent: with the Helpdesk add-on, the bot can draft the reply to every new ticket and customer follow-up for you. Drafts wait in a new Staged column on the ticket board \u2014 nothing reaches a customer until you send it.<\/li>\n<li>An \"Agent mode\" button on the ticket board opens the agent's own settings, and shows at a glance whether it is drafting on this desk.<\/li>\n<li>Per-desk settings: switch the agent on, pick the model (or leave it Automatic), and write house instructions in your own voice \u2014 refund limits, what never to promise, how to sign off.<\/li>\n<li>Every staged draft opens in the ticket for review, with the model that wrote it named. Edit the words before sending, or dismiss the draft and reply yourself.<\/li>\n<li>YOLO mode lets the agent send confident replies directly, and stays locked until this desk has ten drafts a human approved \u2014 you see what it would have sent before it may send anything.<\/li>\n<li>Spend guards you control: a cap on drafts per ticket and per day, so a looping conversation or a busy inbox cannot run up the bill.<\/li>\n<li>While the agent is on, the plain \"we received your ticket\" acknowledgment is not sent \u2014 the reply you approve is the first email the customer gets.<\/li>\n<li>The plugin is now listed as \"ProxyAI Chat Assistant\" \u2014 the same plugin, under the name it goes by; your settings and connection are untouched.<\/li>\n<li>Sending a reply now moves the ticket to Pending on its own, and a customer writing back moves it to Open again, where the agent drafts the next reply.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Reviewing a knowledge document now opens a full-width editor with a live preview beside it, so you can see how the extracted text will read before implanting it.<\/li>\n<li>\"Clean convert markdown (AI powered)\" tidies a document's structure \u2014 headings, lists and tables the extractor flattened \u2014 the same clean-up the hosted dashboard offers.<\/li>\n<li>A \"Sync my site content\" button under Bot Knowledge reads the whole site on demand, the same control the hosted Wix dashboard carries.<\/li>\n<li>Re-syncing is cheap: a post whose text has not changed since it was last sent is skipped rather than re-indexed, so pressing Sync twice costs nothing.<\/li>\n<li>The pane says when the site was last synced, and tells a first sync apart from a repeat.<\/li>\n<li>The automatic content sync switch moved from Store actions to Settings, beside the widget switch.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>A switch under Store actions turns automatic content sync off and on.<\/li>\n<li>Readme documents every external service the plugin uses \u2014 Stripe and PayPal terms and privacy links, what is sent and when, uploads \u2014 and states that the plugin ships no compiled or minified code, with the source published at https:\/\/github.com\/Proxyai-team\/wordpress.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>WhatsApp (unofficial bridge) now pairs in place: the QR code renders inside the channel dialog and refreshes itself until scanned \u2014 no trip to the hosted dashboard.<\/li>\n<li>The Web channel dialog can upload a chat widget icon again, next to the allowed-domain field.<\/li>\n<li>Channel cards match the hosted dashboard: a link-status icon shows live connection state, and a card menu offers Reset and Recheck.<\/li>\n<li>Cart actions no longer disappear from the Store actions tab for sites that own the WooCommerce Store add-on.<\/li>\n<li>Dialogs centre over the admin content area instead of the full screen, numbered setup steps keep their numbers beside the text, and the ticket dialog's Category dropdown lines up with the fields beside it.<\/li>\n<li>Support-ticket uploads travel through the site's own REST proxy like every other dashboard call.<\/li>\n<li>Code housekeeping for the WordPress.org review: the whole plugin passes PHP_CodeSniffer's WordPress standard and Plugin Check clean.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The dashboard is now fully native to wp-admin \u2014 setup, add-ons, agent inbox, ticket board, usage log, rates and settings all render locally on WordPress's own component library, with no embedded frame. Data flows through this site's REST API and is forwarded server-to-server; the browser holds no ProxyAI credential.<\/li>\n<li>The Helpdesk tab is native too: the customer-identity secret, the built-in desk with its five-step setup wizard (own-mailbox SMTP connect, reply forwarding, auto-archive, AI-written email template, ticket-form guide), and connect cards for Gorgias, Zendesk, Freshdesk and Help Scout.<\/li>\n<li>The agent inbox matches the hosted dashboard: needs-reply queue sorted by how long the customer has waited, take-over and return-to-bot, the AI briefing, AI-drafted replies, file attachments, and archive\/delete with an inline confirmation.<\/li>\n<li>The ticket board is the hosted kanban: Open\/Pending\/Resolved columns with drag-and-drop, day grouping, search, archived view with restore, and a ticket dialog with the full thread and reply composer.<\/li>\n<li>Card payments use Stripe's embedded, PCI-compliant payment form; PayPal opens its own page in a new tab.<\/li>\n<li>Admin styles and scripts are enqueued; the admin screens carry no inline scripts or styles.<\/li>\n<li>Support tickets now open in a dialog from a single <strong>Open a support ticket<\/strong> button. Previously the form and ticket history sat inline in the page, pushing the surrounding content around.<\/li>\n<li>The ticket dialog closes with Escape, the close button or a click outside, keeps keyboard focus inside itself while open, and returns focus to the button afterwards.<\/li>\n<li>Ticket form fields are properly labelled, and the ticket list can be opened with the keyboard as well as the mouse.<\/li>\n<li>Order tracking rate-limit fix.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"AI chat assistant that answers from your own content, hands off to a human, and adds to the cart in the shopper&#039;s browser.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/353943","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=353943"}],"author":[{"embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/proxyai"}],"wp:attachment":[{"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=353943"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=353943"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=353943"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=353943"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=353943"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ur.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=353943"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}