{"id":395897,"date":"2026-11-09T14:40:32","date_gmt":"2026-11-09T14:40:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/polyreply-for-woocommerce\/"},"modified":"2026-11-09T14:40:24","modified_gmt":"2026-11-09T14:40:24","slug":"polyreply-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/nl.wordpress.org\/plugins\/polyreply-for-woocommerce\/","author":23596134,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.0","stable_tag":"1.2.0","tested":"7.1.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Polyreply for WooCommerce","header_author":"Polyreply","header_description":"Live chat and an AI helpdesk for your store. Your team sees each customer's order status and tracking next to the conversation.","assets_banners_color":"30408a","last_updated":"2026-11-09 14:40:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.0":{"tag":"1.2.0","author":"polyreply","date":"2026-11-09 14:40:24","revision":3792674}},"upgrade_notice":{"1.2.0":"<p>The &quot;Powered by&quot; line in the chat is now off unless you turn it on, and your policy pages can be imported as draft help articles.<\/p>","1.1.0":"<p>Connect your store in one click, and test the connection from WordPress. Existing connections keep working.<\/p>","1.0.0":"<p>First release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3792673,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3792673,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3792673,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3792673,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3792673,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3792673,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3792673,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3792673,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3792673,"resolution":"5","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Connect your store in one click from WooCommerce \u2192 Polyreply, or with a code from the dashboard.","2":"A German \"where is my order?\" with the WooCommerce order, its tracking number and an AI draft in German, ready to edit and send.","3":"The chat on a WooCommerce store, in the visitor's language.","4":"The shared inbox: chat and email conversations in several languages, with status, assignee and tags.","5":"The knowledge base the AI drafts from: your shipping, returns and FAQ pages."}},"plugin_section":[],"plugin_tags":[2353,2369,2379,99,291652],"plugin_category":[48],"plugin_contributors":[291653],"plugin_business_model":[],"class_list":["post-395897","plugin","type-plugin","status-publish","hentry","plugin_tags-ai","plugin_tags-customer-support","plugin_tags-live-chat","plugin_tags-multilingual","plugin_tags-woocommerce-helpdesk","plugin_category-language-tools","plugin_contributors-polyreply","plugin_committers-polyreply"],"banners":{"banner":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/banner-772x250.png?rev=3792673","banner_2x":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/banner-1544x500.png?rev=3792673","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/icon-128x128.png?rev=3792673","icon_2x":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/icon-256x256.png?rev=3792673","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/screenshot-1.png?rev=3792673","caption":"Connect your store in one click from WooCommerce \u2192 Polyreply, or with a code from the dashboard."},{"src":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/screenshot-2.png?rev=3792673","caption":"A German \"where is my order?\" with the WooCommerce order, its tracking number and an AI draft in German, ready to edit and send."},{"src":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/screenshot-3.png?rev=3792673","caption":"The chat on a WooCommerce store, in the visitor's language."},{"src":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/screenshot-4.png?rev=3792673","caption":"The shared inbox: chat and email conversations in several languages, with status, assignee and tags."},{"src":"https:\/\/ps.w.org\/polyreply-for-woocommerce\/assets\/screenshot-5.png?rev=3792673","caption":"The knowledge base the AI drafts from: your shipping, returns and FAQ pages."}],"raw_content":"<!--section=description-->\n<p><strong>\"Where is my order?\" for the tenth time today, in German.<\/strong> Small stores lose hours every week to the same questions: order status, returns, address changes, shipping times. Each one means opening the email, finding the order in WooCommerce, copying the tracking number into the carrier's site, looking up the return policy and, more and more often, running the answer through a translator.<\/p>\n\n<p>Polyreply puts all of that on one screen. A customer writes in the chat on your store or by email; your team sees the conversation, the matching WooCommerce order with its status and tracking, and a reply drafted in the customer's own language from your own policies. You read it, change what you like and send it.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>Live chat on your store.<\/strong> The chat appears on every page as soon as you connect, in the visitor's language. No theme edits.<\/li>\n<li><strong>One inbox for chat and email.<\/strong> Statuses, assignment, internal notes and tags, for a team of one or twenty.<\/li>\n<li><strong>Orders next to every conversation.<\/strong> Status, products, total, shipping method and tracking number, read live from your store when an agent opens the conversation.<\/li>\n<li><strong>AI reply drafts in the customer's language.<\/strong> Drafts are based on your help articles and the real order status. Customers can write in 28 languages; the plugin and the dashboard are in English, Spanish, German, French, Portuguese and Italian.<\/li>\n<li><strong>Tracking from the plugins you already use.<\/strong> WooCommerce Shipment Tracking, Advanced Shipment Tracking, YITH WooCommerce Order &amp; Shipment Tracking, Orders Tracking for WooCommerce and AfterShip are read automatically.<\/li>\n<li><strong>Connect in one click.<\/strong> Create a free account (or sign in) from WordPress and come back with the store connected. No API keys to copy.<\/li>\n<\/ul>\n\n<h4>The AI never sends anything by itself<\/h4>\n\n<p>Every draft waits in the reply box. A person on your team reads it, edits it if needed and clicks Send. You can also ignore drafts completely and use Polyreply as a plain shared inbox and live chat.<\/p>\n\n<h4>Free and paid plans<\/h4>\n\n<p>The plugin is free and open source (GPLv2). The Polyreply service it connects to has a <strong>Free plan<\/strong> for small stores: 2 team seats, 100 new conversations per month, 30 AI drafts per month (50 if you choose to show a small \"Powered by Polyreply\" line in the chat) and 25 help articles. Paid plans (Pro and Business) raise these limits for growing teams; current prices are on the <a href=\"https:\/\/polyreply.app\/#pricing\">pricing page<\/a>. Nothing is ever charged unless a store owner chooses a paid plan and enters a card. Pro and Business can be tried once for 7 days: the card is asked for up front, the date of the first charge is shown before you enter it, and cancelling before that date in Manage billing costs nothing. Conversations and data are never deleted when a plan changes.<\/p>\n\n<h4>Privacy by design<\/h4>\n\n<ul>\n<li>An order is only shown when its number and the customer's email address both match.<\/li>\n<li>Orders are read live and never copied. Only the order number is saved with the conversation.<\/li>\n<li>Addresses, phone numbers, payment details and order notes never leave your store.<\/li>\n<li>Every request between your store and the service is signed and expires after five minutes.<\/li>\n<li>The \"Powered by Polyreply\" line in the chat is off unless you turn it on.<\/li>\n<\/ul>\n\n<h4>Developers<\/h4>\n\n<ul>\n<li><code>polyreply_wc_order_tracking<\/code> filters the tracking numbers of an order.<\/li>\n<li><code>polyreply_wc_order_data<\/code> filters the order data that is shared.<\/li>\n<li><code>polyreply_wc_show_widget<\/code> hides the chat widget on chosen pages.<\/li>\n<li>Order numbers from sequential order number plugins are supported through WooCommerce's <code>woocommerce_shortcode_order_tracking_order_id<\/code> filter.<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects your store to Polyreply, a customer support service. It is needed to show the chat widget and to answer your customers from the Polyreply dashboard. Nothing is sent before you connect the store on the plugin's settings page.<\/p>\n\n<ul>\n<li><strong>When you click \"Create a free account and connect\" or \"I already have an account\"<\/strong>, your browser goes to the Polyreply website with your site's address, the address to come back to in your WordPress admin, a random one-time value (state), a PKCE code challenge (a hash of a secret that stays in your WordPress), your site name and your admin language. You create an account or sign in there and confirm. Polyreply then sends your browser back with a single-use code that expires after 10 minutes.<\/li>\n<li><strong>When your browser comes back, or when you click Connect with a code<\/strong>, the plugin sends the connection code you pasted, your site's address, the address of its REST API, your site name, the plugin and WooCommerce versions and the address of your privacy policy page (see below) to the Polyreply server. After a one-click connection it also sends the PKCE secret and the address it came back to, which prove the code was issued for this site.<\/li>\n<li><strong>Twice a day, when you open the settings page and when you click Test connection<\/strong>, the plugin asks the Polyreply server for the chat widget's current settings. The request contains the connection's ID and the address of your privacy policy page (Settings \u2192 Privacy, only when it is published, not password protected and on your own site), so the chat's \"Privacy\" link opens your policy; this request is also sent when you choose another privacy page. When you save the \"Powered by\" setting, the request also contains your choice (on or off). The answer also contains the service's current address, so the plugin keeps working if Polyreply moves to a new domain (https only).<\/li>\n<li><strong>When a visitor opens the chat<\/strong>, the visitor's browser loads the chat window from the Polyreply server. The visitor's messages, the name and email address they type, the page they are on and their language are sent to Polyreply.<\/li>\n<li><strong>When an agent opens a conversation in Polyreply<\/strong>, the Polyreply server asks your store for one order, sending the order number and the customer's email address. If both match, your store answers with the order's number, status, date, products and quantities, total, currency, shipping method and tracking numbers.<\/li>\n<li><strong>Right after connecting, and when you click \"Import store policies\" in the Polyreply dashboard<\/strong>, the Polyreply server asks your store for its policy pages. The plugin answers with the title and text of published, public pages only: the WooCommerce terms, refund\/returns and privacy pages, and pages whose address or title mentions shipping, delivery, returns, refunds or FAQs (at most 10). Polyreply saves them as draft help articles that you review before publishing.<\/li>\n<li><strong>When you click Disconnect<\/strong>, the plugin tells the Polyreply server to forget the connection.<\/li>\n<\/ul>\n\n<p>The service is provided by Polyreply: <a href=\"https:\/\/polyreply.app\/terms\">terms of service<\/a>, <a href=\"https:\/\/polyreply.app\/privacy\">privacy policy<\/a>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install this plugin from Plugins \u2192 Add New, or upload the zip file, and activate it.<\/li>\n<li>In WordPress, go to <strong>WooCommerce \u2192 Polyreply<\/strong> and click <strong>Create a free account and connect<\/strong>, or <strong>I already have an account<\/strong>.<\/li>\n<li>Create your account or sign in, choose the workspace and click <strong>Connect<\/strong>. You are sent back to WordPress with the store connected.<\/li>\n<li>Optional: click <strong>Test connection<\/strong>, then open your store and send a test message from the chat.<\/li>\n<\/ol>\n\n<p>Prefer a code? In your Polyreply dashboard, open <strong>WooCommerce<\/strong> and click <strong>Create connection code<\/strong>, then paste it under <strong>Connect with a code<\/strong> in WordPress.<\/p>\n\n<p>The chat widget now appears on your store, and orders show up next to conversations in the dashboard.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20cost%20anything%3F\"><h3>Does it cost anything?<\/h3><\/dt>\n<dd><p>The plugin is free. The Polyreply service has a Free plan (2 team seats, 100 new conversations and 30 AI drafts per month) and paid plans with higher limits; prices are at https:\/\/polyreply.app\/#pricing. Nothing is charged unless a store owner chooses a paid plan.<\/p><\/dd>\n<dt id=\"will%20the%20ai%20answer%20my%20customers%20on%20its%20own%3F\"><h3>Will the AI answer my customers on its own?<\/h3><\/dt>\n<dd><p>No. The AI only writes drafts. Every reply is read and sent by a person on your team, and you can stop using drafts at any time.<\/p><\/dd>\n<dt id=\"is%20it%20gdpr%20compliant%3F%20what%20data%20leaves%20my%20store%3F\"><h3>Is it GDPR compliant? What data leaves my store?<\/h3><\/dt>\n<dd><p>Nothing is sent before you connect. After that, visitors who use the chat send their messages, name and email; the service reads one order at a time, only when the number and the customer's email match, and never copies it. Addresses, phone numbers and payment details stay in your store. Polyreply offers data processing terms (Article 28 GDPR) in its terms of service, and the plugin adds suggested text to your privacy policy under Settings \u2192 Privacy. The full list of data is under \"External services\" below.<\/p><\/dd>\n<dt id=\"will%20it%20slow%20down%20my%20store%3F\"><h3>Will it slow down my store?<\/h3><\/dt>\n<dd><p>No. The chat loader is a small script that loads asynchronously in the footer after your page, and the chat itself opens in a separate frame only when a visitor clicks it. Nothing runs on checkout or in your database while visitors browse.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20create%20woocommerce%20api%20keys%3F\"><h3>Do I need to create WooCommerce API keys?<\/h3><\/dt>\n<dd><p>No. Connecting sets up a secret that only your store and Polyreply know. It signs every request, and the plugin only answers the requests it was built for.<\/p><\/dd>\n<dt id=\"is%20the%20one-click%20connection%20safe%3F\"><h3>Is the one-click connection safe?<\/h3><\/dt>\n<dd><p>It follows the OAuth authorization code flow with PKCE. The code that comes back through your browser is single use, expires after 10 minutes, and only works together with a secret that never leaves your WordPress, for the address the flow started from. The connection is only made after you confirm it while signed in to Polyreply.<\/p><\/dd>\n<dt id=\"the%20connection%20says%20the%20attempt%20has%20expired.%20what%20now%3F\"><h3>The connection says the attempt has expired. What now?<\/h3><\/dt>\n<dd><p>Click the button again. An attempt is valid for 30 minutes and only for the WordPress user who started it. If your WordPress admin and your store use different domains, connect with a code instead.<\/p><\/dd>\n<dt id=\"which%20languages%20are%20supported%3F\"><h3>Which languages are supported?<\/h3><\/dt>\n<dd><p>Customers can write in any language: replies are drafted in the language they used. The plugin's own screens are available in English, Spanish, German, French, Portuguese and Italian, and more languages can be added on translate.wordpress.org.<\/p><\/dd>\n<dt id=\"can%20my%20agents%20see%20all%20my%20orders%3F\"><h3>Can my agents see all my orders?<\/h3><\/dt>\n<dd><p>No. An order is only shown when the customer's email address matches the order's billing email, and only one order is read at a time.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20disconnect%20or%20delete%20the%20plugin%3F\"><h3>What happens if I disconnect or delete the plugin?<\/h3><\/dt>\n<dd><p>Disconnecting removes the chat widget from your store and stops order lookups. Deleting the plugin also removes all its settings from your database. Your conversations stay in your Polyreply account, and you can export or delete them there.<\/p><\/dd>\n<dt id=\"how%20do%20i%20hide%20the%20chat%20on%20some%20pages%3F\"><h3>How do I hide the chat on some pages?<\/h3><\/dt>\n<dd><p>Use the <code>polyreply_wc_show_widget<\/code> filter, for example <code>add_filter( 'polyreply_wc_show_widget', function () { return ! is_checkout(); } );<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New setting: show \"Powered by Polyreply\" in the chat. Off unless you turn it on.<\/li>\n<li>Your refund, shipping, terms and FAQ pages can be imported into Polyreply as draft help articles, so AI drafts know your policies from day one.<\/li>\n<li>Chat script updated: it can show an optional greeting bubble (not used by the plugin unless you add one).<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>One-click connection: create a free account or sign in and come back connected, with no code to copy (OAuth-style, with PKCE).<\/li>\n<li>New \"Test connection\" button and a link to send a test message from your store.<\/li>\n<li>A short welcome notice after activation.<\/li>\n<li>The plugin follows the service if it moves to a new address.<\/li>\n<li>Links to <code>#open-chat<\/code> on your store open the chat.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release: connection by code, chat widget, signed order lookups with tracking, translations in six languages.<\/li>\n<\/ul>","raw_excerpt":"Live chat and a shared inbox for WooCommerce. AI drafts replies in your customer's language, with the order status and tracking at hand.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/395897","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=395897"}],"author":[{"embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/polyreply"}],"wp:attachment":[{"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=395897"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=395897"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=395897"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=395897"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=395897"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/nl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=395897"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}