{"id":374574,"date":"2026-10-10T07:42:17","date_gmt":"2026-10-10T07:42:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/supremesearch\/"},"modified":"2026-10-10T13:27:55","modified_gmt":"2026-10-10T13:27:55","slug":"addsynapse-search-filter","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/addsynapse-search-filter\/","author":20176638,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.8.3","stable_tag":"0.8.3","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"AddSynapse \u2013 Live Product Search & Filters for WooCommerce","header_author":"AddSynapse","header_description":"Product search and AJAX attribute filters for WooCommerce \u2014 understands greeklish, word forms and typos. Hosted service with a permanently free plan, no card required.","assets_banners_color":"f8f9fe","last_updated":"2026-10-10 13:27:55","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/addsynapse.com\/product-search","header_author_uri":"https:\/\/addsynapse.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":48,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.8.2":{"tag":"0.8.2","author":"sakkoulas","date":"2026-10-10 08:02:54","revision":3737727},"0.8.3":{"tag":"0.8.3","author":"sakkoulas","date":"2026-10-10 13:27:55","revision":3738091}},"upgrade_notice":{"0.8.3":"<p>New plugin name; fixes filter counts for simple products and click-through rates in Stats. Settings are kept.<\/p>","0.8.2":"<p>Fixes the plugin staying inactive when it loads before WooCommerce.<\/p>","0.8.1":"<p>More robust activation: WooCommerce is checked when the plugin loads, not only at activation.<\/p>","0.8.0":"<p>Products beyond your plan&#039;s limit are now still found through the standard WordPress search. Semantic search moves to the Pro and Business plans.<\/p>","0.7.1":"<p>Semantic search (beta): better related results for Greek searches on non-Greek catalogs.<\/p>","0.7.0":"<p>New optional Semantic search (beta): related results when a search finds nothing. Off by default.<\/p>","0.6.4":"<p>Friendlier messages for development-site limits when connecting to AddSynapse.<\/p>","0.6.3":"<p>Security and code-quality hardening; local\/development installs can be connected as free development sites.<\/p>","0.6.2":"<p>Adds a discreet &quot;Clear filters&quot; link, a per-filter &quot;Clear&quot;, and optional active-filter tags.<\/p>","0.6.1":"<p>Filters now work with the product grid of Woodmart, Flatsome and other themes that don&#039;t use a standard product list.<\/p>","0.6.0":"<p>New Search mode setting: keep your theme&#039;s search look with our results, and no more double search panels on themes like Woodmart.<\/p>","0.5.4":"<p>Fixes the search field in themes like Woodmart (full-screen search).<\/p>","0.5.3":"<p>Clearer &quot;plan limit reached&quot; message, fully in your admin language.<\/p>","0.5.2":"<p>Editing a variable product (title, categories, images and more) now updates all its variations in search.<\/p>","0.5.1":"<p>&quot;Connect to AddSynapse&quot; opens in a new tab and completes by itself once you approve; clearer messages when a site cannot be connected.<\/p>","0.5.0":"<p>New &quot;Connect to AddSynapse&quot;: manage your plan and billing in your AddSynapse account. Existing license keys keep working; connecting is recommended and keeps your index.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3737727,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3737727,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3737727,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3737727,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.8.2","0.8.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3738091,"resolution":"1","location":"assets","locale":"","width":1400,"height":623},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3738091,"resolution":"10","location":"assets","locale":"","width":1400,"height":1336},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3738091,"resolution":"11","location":"assets","locale":"","width":780,"height":1060},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3738091,"resolution":"2","location":"assets","locale":"","width":1400,"height":623},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3738091,"resolution":"3","location":"assets","locale":"","width":1400,"height":1260},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3738091,"resolution":"4","location":"assets","locale":"","width":1400,"height":1260},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3738091,"resolution":"5","location":"assets","locale":"","width":1400,"height":415},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3738091,"resolution":"6","location":"assets","locale":"","width":1400,"height":623},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3738091,"resolution":"7","location":"assets","locale":"","width":1400,"height":596},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3738091,"resolution":"8","location":"assets","locale":"","width":1400,"height":1603},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3738091,"resolution":"9","location":"assets","locale":"","width":1400,"height":679}},"screenshots":{"1":"Advanced search panel: product cards with images, prices and sale badges, plus the matching categories and brands with counts, updating as you type.","2":"Typo tolerance: \"hoddie\" still finds every hoodie.","3":"AJAX product filters on the shop page: category, color, size, brand and price, each with live counts.","4":"Filters applied: the product grid updates instantly without a page reload, with removable filter chips and a new product count.","5":"Before typing: the visitor's recent searches, your popular searches, and the optional voice search microphone.","6":"Synonyms in action: \"sweater\" finds the hoodies after one synonym group.","7":"Synonyms tab: add, edit or delete synonym groups with one click.","8":"Statistics: searches that found nothing, searches whose results nobody clicked (with CTR), and what shoppers clicked for each term, with one-click synonym creation.","9":"Settings: choose how search works on your theme (our search panel, your theme's search look, or manual placement).","10":"Settings: AJAX or page-reload filters, Simple or Advanced search layout, filters sidebar side and what to show in results.","11":"On mobile: a full-screen search with product thumbnails, prices, categories and brands."}},"plugin_section":[],"plugin_tags":[2109,5185,6033,5183,286],"plugin_category":[45],"plugin_contributors":[285486],"plugin_business_model":[],"class_list":["post-374574","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-search","plugin_tags-live-search","plugin_tags-product-filter","plugin_tags-product-search","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-sakkoulas","plugin_committers-sakkoulas"],"banners":{"banner":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/banner-772x250.png?rev=3737727","banner_2x":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/banner-1544x500.png?rev=3737727","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/icon-128x128.png?rev=3737727","icon_2x":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/icon-256x256.png?rev=3737727","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-1.png?rev=3738091","caption":"Advanced search panel: product cards with images, prices and sale badges, plus the matching categories and brands with counts, updating as you type."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-2.png?rev=3738091","caption":"Typo tolerance: \"hoddie\" still finds every hoodie."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-3.png?rev=3738091","caption":"AJAX product filters on the shop page: category, color, size, brand and price, each with live counts."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-4.png?rev=3738091","caption":"Filters applied: the product grid updates instantly without a page reload, with removable filter chips and a new product count."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-5.png?rev=3738091","caption":"Before typing: the visitor's recent searches, your popular searches, and the optional voice search microphone."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-6.png?rev=3738091","caption":"Synonyms in action: \"sweater\" finds the hoodies after one synonym group."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-7.png?rev=3738091","caption":"Synonyms tab: add, edit or delete synonym groups with one click."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-8.png?rev=3738091","caption":"Statistics: searches that found nothing, searches whose results nobody clicked (with CTR), and what shoppers clicked for each term, with one-click synonym creation."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-9.png?rev=3738091","caption":"Settings: choose how search works on your theme (our search panel, your theme's search look, or manual placement)."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-10.png?rev=3738091","caption":"Settings: AJAX or page-reload filters, Simple or Advanced search layout, filters sidebar side and what to show in results."},{"src":"https:\/\/ps.w.org\/addsynapse-search-filter\/assets\/screenshot-11.png?rev=3738091","caption":"On mobile: a full-screen search with product thumbnails, prices, categories and brands."}],"raw_content":"<!--section=description-->\n<p><strong>AddSynapse<\/strong> replaces the default WooCommerce product search with a fast,\n<strong>hosted<\/strong> live search and AJAX product filters. Indexing and search run on our servers, so\nyour shop's database and hosting carry no extra load.<\/p>\n\n<h4>Search<\/h4>\n\n<ul>\n<li><strong>Live search as you type<\/strong> \u2014 image, price and in-stock options, in a compact list or a\nlarge panel with product cards and category\/brand links.<\/li>\n<li><strong>Typo tolerant<\/strong> \u2014 \"headphnes\" still finds \"headphones\"; partial words match too.<\/li>\n<li><strong>Synonyms<\/strong> per store, and search by <strong>attributes<\/strong> (color, size\u2026), SKU and barcode.<\/li>\n<li><strong>No-results report<\/strong> \u2014 see what shoppers didn't find; add a synonym in one click.<\/li>\n<li><strong>No product disappears<\/strong> \u2014 if your catalog exceeds your plan, the most important products\nare indexed and the rest are still found by the standard WordPress search.<\/li>\n<li><strong>Works with your theme<\/strong> \u2014 attaches to its search field and icon automatically, page\nbuilders included, with CSS selectors as a fallback; or keep your theme's search look.<\/li>\n<li><strong>Voice search<\/strong> (optional) and <strong>Semantic search (beta)<\/strong> (optional, Pro and Business\nplans: \"Related results\" only when a search finds nothing).<\/li>\n<li><strong>Privacy<\/strong> \u2014 search history stays in the visitor's browser; search stats are opt-in.<\/li>\n<\/ul>\n\n<h4>How the filters work<\/h4>\n\n<ol>\n<li><strong>Place the filters<\/strong> \u2014 add one <em>AddSynapse Search \u2014 Product filter<\/em> block or widget per\nfilter to your shop sidebar, or use a shortcode (see the FAQ). Filters: any product attribute (color,\nsize\u2026), category (list or tree), brand, and price (min\u2013max).<\/li>\n<li><strong>Shoppers pick values<\/strong> \u2014 checkboxes, radio buttons, dropdown or buttons, with counts that\nfollow the other choices. Different filters narrow together; on a category page they stay\nwithin that category.<\/li>\n<li><strong>The product grid updates<\/strong> \u2014 the plugin finds your theme's product grid (div-based grids\nlike Woodmart or Flatsome too) and shows the filtered products in its place, with no page\nreload; \"Clear\" brings your theme's grid back. Prefer a page reload? Switch it in\n<strong>Settings \u2192 Product filters<\/strong>. The address bar always holds the filters (share, back button).<\/li>\n<\/ol>\n\n<p>Limits: filtered results use the plugin's own product cards (image, title, price, in-stock\noptions), not your theme's. If your plan covers only part of your catalog, filters pause and\nyour theme shows all products.<\/p>\n\n<h4>Language support<\/h4>\n\n<p>Typo tolerance, partial words, synonyms and attributes work in any language. Filler words and\nphrases (\"I'm looking for\u2026\") are handled in English, Greek and 15 other European languages.<\/p>\n\n<p><strong>Built-in Greek support:<\/strong> greeklish \u2194 Greek (\"kreatini\" finds \"\u03ba\u03c1\u03b5\u03b1\u03c4\u03af\u03bd\u03b7\") and word forms\n(\"\u03c0\u03c1\u03c9\u03c4\u03b5\u0390\u03bd\u03b7\" also finds \"\u03c0\u03c1\u03c9\u03c4\u03b5\u0390\u03bd\u03b7\u03c2\", \"\u03c0\u03c1\u03c9\u03c4\u03b5\u0390\u03bd\u03b5\u03c2\"). Word forms and transliteration are\ncurrently Greek only.<\/p>\n\n<h4>How it works<\/h4>\n\n<p>After you connect, the plugin sends catalog data (title, categories, price, SKU, images \u2014\n<strong>never customer or order data<\/strong>) to our service through a background queue (Action\nScheduler). Visitor searches go directly to our service with a short-lived token scoped to\nyour catalog. Details in <strong>\"External services\"<\/strong> below.<\/p>\n\n<h4>Requires a free AddSynapse account<\/h4>\n\n<p>This plugin is a <strong>client for a hosted search service<\/strong>; there is no local search engine and\nnothing is held back. Click <strong>Connect to AddSynapse<\/strong> on the settings page, sign in (or create a\nfree account) and approve your site \u2014 no card, no key to copy. <strong>Until you connect, the plugin\nsends nothing out, schedules nothing and shows nothing in your store.<\/strong><\/p>\n\n<p>The Free plan has <strong>no time limit<\/strong> and search is never switched off. It covers a limited number\nof products (variations don't count). Fair-use limits on monthly searches are informational\nonly \u2014 search is never interrupted. Payment problems on a paid plan fall back to the Free plan\nlimits. The Pro plan can be tried free for 5 days (card required); afterwards the plugin keeps\nworking on the Free plan. Plans and prices: https:\/\/addsynapse.com\/product-search.<\/p>\n\n<p>Requires WooCommerce 8.0 or newer and the PHP mbstring extension.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin is a client for the hosted AddSynapse search service. AddSynapse is operated by\nWebOrange (weborange.gr). The service runs on addsynapse.com hosts; stores\nactivated before the move may still use the previous weborange.gr hosts (same service, same\noperator) until their next token renewal switches them over automatically. Indexing and search run on our servers, so the plugin cannot work without connecting\nto the services below. <strong>Until you connect to AddSynapse (or enter a license key from an earlier\nversion), the plugin sends nothing anywhere.<\/strong> Your store's customer and order data is never\nsent. After an administrator clicks \"Connect to AddSynapse\", the following is sent (details in\nsections 0-2 below):<\/p>\n\n<ul>\n<li>to AddSynapse, once, in the address of the page that opens: your site's address and name and\nthe email address of the administrator who clicked (only to pre-fill sign-in or sign-up \u2014 your\naccount is created by you, on the AddSynapse website);<\/li>\n<li>to AddSynapse, about every hour: your site's address, version numbers and product count;<\/li>\n<li>to the search service: your published product catalog (no customer or order data) and your\nsynonyms;<\/li>\n<li><p>from your visitors' browsers to the search service: the search terms and filters they use, and \u2014\nonly if you turn on search statistics \u2014 anonymous search and click counts (no cookies, no\nvisitor identifiers).<\/p><\/li>\n<li><p>AddSynapse account (section 0): terms https:\/\/addsynapse.com\/terms, privacy https:\/\/addsynapse.com\/privacy<\/p><\/li>\n<li>Search service (sections 1 and 2): terms https:\/\/search-api.addsynapse.com\/terms, privacy\nhttps:\/\/search-api.addsynapse.com\/privacy<\/li>\n<\/ul>\n\n<h4>0. AddSynapse account \u2014 app.addsynapse.com and api.addsynapse.com<\/h4>\n\n<p>Your AddSynapse account holds your plan, limits and billing.<\/p>\n\n<ul>\n<li><strong>Connect<\/strong> (only when an administrator clicks \"Connect to AddSynapse\"): app.addsynapse.com\nopens in a new tab with your site's address and name, the platform (WooCommerce), the plugin\nversion and the email address of the administrator who clicked (only to pre-fill sign-in or\nsign-up). Your site first asks api.addsynapse.com for the address of that page. While the tab\nis open, the settings page asks api.addsynapse.com every few seconds whether you approved\n(server to server, with the one-time random request code; only while the request is pending, at most 24 hours). After you\nsign in and approve, your site exchanges a one-time code with api.addsynapse.com (server to\nserver) for its site key and a signing secret, which is stored encrypted in your WordPress\ndatabase.<\/li>\n<li><strong>Plan status<\/strong> (about every hour in the background, when you open the plugin's settings page,\nand when you click \"Refresh status\"): a signed request with your site's address, the plugin,\nWordPress and WooCommerce versions and the number of published products. The response\n(signed, verified by the plugin) contains your plan, its limits, the billing state, links to\nyour account, and the addresses of the search service assigned to your site (sections 1-2).<\/li>\n<li><strong>Disconnect<\/strong> (only when you click it): a signed request so that AddSynapse revokes the keys.<\/li>\n<\/ul>\n\n<h4>1. AddSynapse Search API \u2014 search-api.addsynapse.com<\/h4>\n\n<p>Used by your WordPress site (server to server), authenticated with your license key. Stores\nactivated before the move may still use the previous address, search-api.weborange.gr (legacy,\nsame service and operator), until the next token renewal returns the new one.<\/p>\n\n<ul>\n<li><strong>Connecting the search service<\/strong> (once, right after you connect to AddSynapse, and again\nonly if it has to be repaired): your store's domain, its AddSynapse site key and a signed\nproof, which the Search API forwards to AddSynapse (api.addsynapse.com) to confirm your site.\nThe response contains the license key for the search service. Every later request to this\nAPI also carries the site key (<code>X-AddSynapse-Site<\/code> header).<\/li>\n<li><strong>License activation and token renewal<\/strong> (on activation, then about once every 24 hours):\nyour license key and your store's domain. Every request to this API also carries the\nplugin's version number (<code>X-AddSynapse-Plugin<\/code> header). The response contains a short-lived, read-only\nsearch token and the addresses of the search hosts assigned to your store.<\/li>\n<li><strong>Catalog indexing<\/strong> (when a product is created, updated, trashed or deleted, during a full\nrebuild you start, and in a nightly background sync): a list of your published, visible\nproducts \u2014 title, categories, brand, description excerpt, price, SKU\/barcodes, attributes\n(e.g. color\/size), stock status, number of sales and creation date (used only to keep your\nmost important products when the catalog is larger than your plan), image URLs and product URL. Deleted or hidden products are\nsent as a list of product IDs to remove.<\/li>\n<li><strong>Settings and synonyms<\/strong> (when you save settings or edit synonyms): your synonym groups\nand your site's language code (e.g. \"el\"), also sent on license activation.<\/li>\n<li><strong>Statistics<\/strong> (when you open the Stats or Status tab): a request for your store's search\nstatistics and plan usage.<\/li>\n<li><strong>Suggestions<\/strong> (when you ask for synonym suggestions on the Stats tab): the search term\nyou picked.<\/li>\n<li><strong>Billing portal link<\/strong> (sites with a license key from earlier versions, only when you click\n\"Manage subscription &amp; invoices\"): a request for a one-time link to your Stripe customer\nportal (see Stripe below).<\/li>\n<li><p><strong>Search statistics beacon<\/strong> \u2014 <strong>optional, off by default<\/strong>; only if you tick it under <strong>Settings \u2192 Behavior \u2192 Search statistics<\/strong>. From the\nvisitor's browser, after each search and result click, sent to the <code>\/v1\/track<\/code> endpoint:\nyour store ID, the search term, the number of results, and the ID of the product that was\nclicked. When the plugin removed a filler phrase from the search (see \"Filler phrases\"\nbelow), the phrase as the visitor typed or spoke it is sent too (at most 200 characters),\nso that searches like \"do you have \u2026\" that still find nothing can improve the lists. In the\n\"Theme's search look\" mode your site's server sends it, once per search results page. The plugin adds no cookie or visitor identifier to it. As with any web request,\nthe visitor's browser connects from an IP address; the statistics service does not store IP\naddresses or user agents with these events. Switching it off stops collection for pages\nloaded after you save: tabs that were already open, or pages served from a page cache, may\nkeep sending until they are reloaded or the cache expires. Your choice is also sent to the\nservice when you save the settings (and on activation), and from then on the service\nignores and does not store events from stores that have it switched off. Statistics\ncollected earlier stay in the Stats tab until they expire under the retention period in\nthe privacy policy.<\/p><\/li>\n<li><p><strong>Semantic search (beta)<\/strong> \u2014 <strong>optional, off by default, Pro and Business plans<\/strong>; only if you\ntick it under <strong>Settings \u2192 Behavior \u2192 Semantic search (beta)<\/strong>. No new third party is involved: the setting\n(on\/off) is sent with your settings, and while it is on the search service passes the product\ntexts it already receives for indexing (title, categories, brand, start of the description) to\nAddSynapse's own embedding service, run by the same operator on our servers in the EU, to\ncompute a \"meaning\" vector per product. When a visitor's search finds no\nproducts, the same search term is also turned into such a vector by that service to look for\nrelated products (see section 2). Nothing is sent to other companies. Switching it off removes\nthese vectors from your search index. Same terms and privacy policy as the search service.<\/p><\/li>\n<\/ul>\n\n<p>The activation response may assign your store to a different node; any API, search or\nstatistics address the server returns there is a host on addsynapse.com (or, legacy, weborange.gr),\noperated by us under the same terms and privacy policy.<\/p>\n\n<h4>2. AddSynapse search engine \u2014 q.addsynapse.com<\/h4>\n\n<p>Used directly by your visitors' browsers while they search. The address is the one the Search\nAPI assigns to your store on activation and token renewal: <strong>q.addsynapse.com<\/strong>, or, for stores\nactivated before the move, the previous address <strong>q.weborange.gr<\/strong> (same service, same\noperator) until the next token renewal switches them over automatically. When a visitor types in the\nsearch field or uses a product filter, the search term and the selected filters are sent to\nthis host together with the short-lived, read-only token, which only allows searching your\nown catalog. Nothing else is sent; search history stays in the visitor's browser\n(localStorage) and is never uploaded.<\/p>\n\n<p>In the <strong>\"Theme's search look\"<\/strong> mode your site's server sends this request (same term and\ntoken) instead of the visitor's browser, and caches results for about a minute.<\/p>\n\n<p>If <strong>Semantic search (beta)<\/strong> is on and a search finds no products, one more request with the\nsame search term and token is sent to this host to look for related products; the search\nengine has the term turned into a meaning vector by AddSynapse's own embedding service (see\nsection 1). Nothing else is sent.<\/p>\n\n<p>If a page comes from a page cache with an expired token, the visitor's browser asks <strong>your own\nsite<\/strong> for a fresh one (<code>admin-ajax.php<\/code>, action <code>addsynapse_search_token<\/code>). That request stays on your\nWordPress; your site then renews the token with the Search API as described in section 1.<\/p>\n\n<p>When your plan covers only part of your catalog, the visitor's browser also asks <strong>your own\nsite<\/strong> (<code>admin-ajax.php<\/code>, action <code>addsynapse_search_native<\/code>) for products of the standard\nWordPress search that are not in the smart results. That request stays on your WordPress;\nnothing is sent to AddSynapse.<\/p>\n\n<h4>3. Browser speech recognition \u2014 voice search (optional, off by default)<\/h4>\n\n<p>Only if you enable <strong>Settings \u2192 Behavior \u2192 Voice search<\/strong>. The plugin itself sends nothing for\nthis feature, and nothing reaches our servers: it only asks the visitor's browser to recognize\nspeech (the browser's built-in Web Speech API). Audio is captured only after a visitor presses\nthe microphone button and allows microphone access; the recognized text is then placed in the\nsearch field and searched like typed text (see section 2).<\/p>\n\n<p>Depending on the browser, the recording may be sent to the browser vendor's speech service\nfor recognition: Chrome sends it to Google, Edge to Microsoft, and Safari may use Apple's\nservers or recognize speech on the device. That processing is done by the browser vendor\nunder its own terms, not by this plugin:<\/p>\n\n<ul>\n<li>Google privacy policy: https:\/\/policies.google.com\/privacy<\/li>\n<li>Microsoft privacy statement: https:\/\/privacy.microsoft.com\/privacystatement<\/li>\n<li>Apple privacy policy: https:\/\/www.apple.com\/legal\/privacy\/<\/li>\n<\/ul>\n\n<h4>4. Stripe \u2014 billing (only for paid plans)<\/h4>\n\n<p>Payments are handled by Stripe, Inc. The plugin itself never sends any data to Stripe:<\/p>\n\n<ul>\n<li>Sites connected to AddSynapse: \"Manage \/ Upgrade on AddSynapse\" opens your AddSynapse\naccount (app.addsynapse.com), where paid plans are bought and managed through Stripe.<\/li>\n<li>Sites with a license key from earlier versions: the \"Upgrade\" \/ pricing links open our pricing page (https:\/\/search-api.addsynapse.com\/pricing)\nwith your store's domain; choosing a paid plan there sends you to Stripe Checkout, where\nyou enter your email and payment details directly with Stripe.<\/li>\n<li>\"Manage subscription &amp; invoices\" redirects you to the Stripe customer portal\n(billing.stripe.com) for your store, to change or cancel your plan and download invoices.<\/li>\n<\/ul>\n\n<p>Stripe terms: https:\/\/stripe.com\/legal\/consumer\nStripe privacy policy: https:\/\/stripe.com\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>addsynapse-search-filter<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install it directly from\n\"Plugins \u2192 Add New\" inside WordPress.<\/li>\n<li>Activate the plugin from the \"Plugins\" menu. It requires an active WooCommerce (8.0 or newer)\nand the PHP \"mbstring\" extension \u2014 if either is missing, the plugin shows a notice explaining\nwhat to do and stays inactive until it is fixed. Nothing is sent anywhere until you connect.<\/li>\n<li>Go to <strong>AddSynapse \u2192 Search &amp; Filter \u2192 Settings<\/strong> and click <strong>\"Connect to AddSynapse\"<\/strong>.\nSign in to AddSynapse (or create a free account) and approve your site \u2014 you come back to\nthe settings page with the Free plan active, nothing to copy. It's free forever for small\ncatalogs, no card required. Sites with a license key from an earlier version can keep it\n(\"I already have a license key\") or connect \u2014 connecting keeps the existing index.<\/li>\n<li>Click \"Rebuild index\" to build the search index from your existing catalog. It runs in\nsmall batches from your browser, while your live site keeps working normally.<\/li>\n<li>Your store's search field is taken over automatically. In <strong>Settings \u2192 Search mode<\/strong> you can\ninstead keep your theme's own search look (results from our engine) or place the search box\nmanually; for a custom theme you can set CSS selectors for the search field and search icon.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20filter%20products%20by%20attribute%2C%20not%20just%20search%3F\"><h3>Can I filter products by attribute, not just search?<\/h3><\/dt>\n<dd><p>Yes. Add one <em>AddSynapse Search \u2014 Product filter<\/em> widget or block per filter: any product\nattribute (colour, size, material\u2026), category, brand, or price as a min\u2013max range. Each one has\nits own title, display style (checkboxes, radio buttons, dropdown or buttons), number of values\nshown (default in <strong>Settings \u2192 Product filters \u2192 Values per filter<\/strong>, most common first), optional\ncounts and an optional search box for long lists. When several values of one filter are\nticked, products can match any of them (red or blue) or all of them (waterproof and windproof);\ndifferent filters always narrow together. Widgets and blocks hide themselves on product, cart, checkout\nand account pages, where there is no list to filter.<\/p>\n\n<p>On shop and category pages the filtered results replace the product list your theme renders,\nso there is nothing to edit in your template. On a category page the filters automatically\nstay within that category (and its subcategories).<\/p><\/dd>\n<dt id=\"which%20shortcodes%20and%20options%20are%20there%3F\"><h3>Which shortcodes and options are there?<\/h3><\/dt>\n<dd><ul>\n<li><code>[addsynapse_search_filter attribute=\"Colour\"]<\/code> \u2014 one filter. Options: <code>title<\/code>,\n  style=\"checkbox|radio|select|buttons\", <code>limit<\/code>, <code>counts=\"yes|no\"<\/code>, <code>search=\"yes|no\"<\/code>,\n  match=\"any|all\", <code>category<\/code>, <code>ajax=\"yes|no\"<\/code>, <code>active_filters=\"yes|no\"<\/code> (removable tags of\nthe active filters), and for categories <code>category_display=\"list|tree\"<\/code>,\n  category_depth=\"all|top|children_of_current\". Use <code>attribute=\"categories\"<\/code>, <code>\"brand\"<\/code> or\n  \"price\" for those filters.<\/li>\n<li><code>[addsynapse_search_products]<\/code> \u2014 a product grid of its own, for a page without a theme\nproduct list. Options: <code>per_page<\/code>, <code>layout=\"grid|list\"<\/code>, <code>sort=\"price_asc|price_desc\"<\/code>,\n  category, <code>ajax<\/code>.<\/li>\n<li><code>[addsynapse_search_filters]<\/code> \u2014 category, brand, price and all indexed attributes plus the\ngrid, in one line. Options: <code>attributes=\"Colour,Size\"<\/code> (order = display order), <code>style<\/code>,\n  show=\"filters|products|both\", and the grid options above.<\/li>\n<\/ul><\/dd>\n<dt id=\"my%20theme%27s%20product%20list%20doesn%27t%20change%20when%20i%20filter.%20what%20do%20i%20do%3F\"><h3>My theme's product list doesn't change when I filter. What do I do?<\/h3><\/dt>\n<dd><p>The plugin looks for your theme's product list automatically: first the selector in\n<strong>Settings \u2192 Product filters \u2192 Product list selector<\/strong> (default\n    ul.wc-block-product-template, ul.products), then the main product loop of themes that use\n    div grids (such as Woodmart or Flatsome). If your theme uses something unusual, enter the CSS\nselector of its product list there. Related products, upsells and carousels are never touched.<\/p><\/dd>\n<dt id=\"how%20do%20the%20filters%20look%20on%20mobile%3F\"><h3>How do the filters look on mobile?<\/h3><\/dt>\n<dd><p>The filter widgets appear wherever your theme puts its sidebar on small screens (usually\nbelow or above the products). The plugin's own grid shows two products per row on phones, and\nthe <code>[addsynapse_search_filters]<\/code> layout stacks filters above products. There is no separate\noff-canvas filter drawer.<\/p><\/dd>\n<dt id=\"can%20the%20category%20filter%20show%20subcategories%20under%20their%20parent%3F\"><h3>Can the category filter show subcategories under their parent?<\/h3><\/dt>\n<dd><p>Yes. In the Category filter pick <strong>Categories shown as \u2192 Tree<\/strong>: subcategories sit under their\nparent, which opens and closes with a small arrow, and a parent's count includes its\nsubcategories. Ticking a parent shows the products of all its subcategories; ticking a\nsubcategory under a ticked parent narrows to that subcategory. <strong>Category levels<\/strong> can limit the\nlist to the top level, or to the subcategories of the category being viewed. Shortcode:\n    [addsynapse_search_filter attribute=\"categories\" category_display=\"tree\" category_depth=\"top\"].<\/p><\/dd>\n<dt id=\"do%20the%20filters%20reload%20the%20page%3F\"><h3>Do the filters reload the page?<\/h3><\/dt>\n<dd><p>No, by default they update in place (AJAX), and the address bar is kept in sync so the back\nbutton, bookmarks and shared links work. If your theme or another plugin needs a full page\nload, choose <strong>Normal (page reload with URL parameters)<\/strong> under <strong>Settings \u2192 Product filters \u2192\nHow filters apply<\/strong>; a shortcode's <code>ajax=\"yes\"<\/code> or <code>ajax=\"no\"<\/code> overrides this on one page.\nWhile filters are active, the theme's result count, sorting dropdown and pagination are hidden,\nsince they would describe the unfiltered list; \"Load more\" pages through the filtered results.<\/p><\/dd>\n<dt id=\"do%20i%20need%20to%20change%20anything%20in%20my%20theme%3F\"><h3>Do I need to change anything in my theme?<\/h3><\/dt>\n<dd><p>No, in most cases. The search field is detected and taken over automatically in JavaScript,\nregardless of your theme or page builder, and the search icons of popular themes open our panel\ninstead of the theme's. If needed, you can manually set CSS selectors in the settings.<\/p><\/dd>\n<dt id=\"what%20are%20the%20three%20search%20modes%3F\"><h3>What are the three search modes?<\/h3><\/dt>\n<dd><p>Choose in <strong>Settings \u2192 Search mode<\/strong>:<\/p>\n\n<ul>\n<li><strong>Our search panel<\/strong> (default): our panel opens from your theme's search field <strong>and<\/strong> its\nsearch icon \u2014 the theme's own search panel never opens, so visitors never see two. The search\nicons of popular themes are recognised automatically (Woodmart, Astra and others); for any\nother theme you can enter the icon's CSS selector. Keeps the Simple\/Advanced layout, voice\nsearch, recent and popular searches and the category\/brand links.<\/li>\n<li><strong>Theme's search look<\/strong>: your theme's search box, live search and results page stay exactly\nas they are, but the results come from our engine (typo tolerance, synonyms, relevance\norder, and Greek word forms and greeklish). Works on the product search results page and in supported theme live searches\n(e.g. Woodmart). Our panel, the Advanced layout and voice search are not used in this mode.<\/li>\n<li><strong>Manual<\/strong>: nothing is added automatically \u2014 place the search box yourself with the block or\nthe <code>[addsynapse_search]<\/code> shortcode.<\/li>\n<\/ul><\/dd>\n<dt id=\"my%20theme%20has%20its%20own%20search%20design.%20can%20i%20keep%20it%3F\"><h3>My theme has its own search design. Can I keep it?<\/h3><\/dt>\n<dd><p>Yes \u2014 choose <strong>Theme's search look<\/strong> (see above). Only the results come from our engine.<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20an%20addsynapse%20account%3F\"><h3>Does it work without an AddSynapse account?<\/h3><\/dt>\n<dd><p>No \u2014 the plugin is a client for a hosted service, so your site has to be connected (or use a\nlicense key from an earlier version). Connecting takes one click on the settings page and the\nFree plan is free forever for small catalogs, no card required, and nothing ever switches\nitself off. If your catalog grows past the free plan's product limit, smart search covers your\nmost important products and the rest are found by the standard WordPress search; a paid plan\nindexes the whole catalog. Current limits: https:\/\/addsynapse.com\/product-search.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20trial%20of%20the%20paid%20plan%3F\"><h3>Is there a free trial of the paid plan?<\/h3><\/dt>\n<dd><p>Yes, optionally: a 5-day free trial of the Pro plan, started from your AddSynapse account (a card\nis required; you can cancel anytime there, and we email you 2 days before the trial ends). During\nthe trial your whole catalog is indexed and Semantic search is available. If you cancel or don't\ncontinue, nothing is charged and the plugin keeps working on the Free plan \u2014 it is never\nswitched off. The Free plan itself is not a trial and never expires.<\/p><\/dd>\n<dt id=\"can%20i%20test%20on%20a%20local%20or%20development%20site%3F\"><h3>Can I test on a local or development site?<\/h3><\/dt>\n<dd><p>Yes. You can test on a local install (localhost, *.local, *.test, *.ddev.site, a private IP\naddress \u2014 any port, http or https): \"Connect to AddSynapse\" creates a free development site,\nfor testing. For your live shop, connect from its public https address (public addresses must\nuse https without a port number).<\/p><\/dd>\n<dt id=\"where%20do%20i%20upgrade%20or%20see%20my%20invoices%3F\"><h3>Where do I upgrade or see my invoices?<\/h3><\/dt>\n<dd><p>In your AddSynapse account: click \"Manage \/ Upgrade on AddSynapse\" on the settings page. The\nplugin picks up a plan change automatically (within about an hour, or immediately with\n\"Refresh status\"). If a payment fails, search keeps working with the Free plan limits.<\/p><\/dd>\n<dt id=\"what%20do%20the%20product%20and%20record%20limits%20mean%3F\"><h3>What do the product and record limits mean?<\/h3><\/dt>\n<dd><p>Each plan has two limits, both shown on the \"Status\" tab: a <strong>product<\/strong> limit (how many of\nyour products get indexed) and a <strong>record<\/strong> limit (how many entries the search index holds).\nNeither limit ever expires and neither limit is a search quota. Variations never count toward\nthe product limit. Search volume is covered by fair-use limits (see the pricing page): they\nnever interrupt or slow down search \u2014 if a store goes well beyond them, we get in touch.<\/p>\n\n<p>We count products because that's what a shop owner understands. We also count records\nbecause \"exact variation search\" \u2014 an optional setting that indexes every color\/size\ncombination as its own entry, so an out-of-stock combination never shows up as available \u2014\nwould otherwise let a catalogue with unusually many variations use the resources of many\nregular stores for the same price. The record limit is generous (several times your product limit), and\nwith exact variation search off, records are always equal to your product count.<\/p>\n\n<p>If either limit is reached, <strong>search keeps working normally<\/strong>: the index keeps your most\nimportant products (best sellers first, in-stock before out-of-stock, then the newest), and\nyour other products are still found by the standard WordPress search, listed after the smart\nresults. Product filters pause meanwhile, so category pages keep showing every product with\nyour theme's own product grid. You'll see a clear notice\nabout this on the \"Status\" tab, with <strong>two ways forward<\/strong>: upgrade your plan, or turn off\nexact variation search to keep everything indexed within your current plan.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20send%20outside%20my%20store%3F\"><h3>What data does the plugin send outside my store?<\/h3><\/dt>\n<dd><p>Catalog data (title, category, price, SKU, images, etc.), your visitors' search terms (to\nreturn results), your site's address, versions and product count for the plan check with\nAddSynapse, and \u2014 only if you turn them on \u2014 anonymous search stats and Semantic search (beta), which is\nprocessed by AddSynapse's own embedding service (no third party). If you enable voice search, the visitor's own\nbrowser may send the spoken audio to its vendor's speech service (Google, Microsoft or Apple);\nthe plugin itself does not. Never customer or order data. See the \"External\nservices\" section above for details.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20visitors%27%20search%20history%3F\"><h3>What happens to my visitors' search history?<\/h3><\/dt>\n<dd><p>It stays exclusively in each visitor's browser (localStorage). It's never uploaded to our\nservers and never linked to any person.<\/p><\/dd>\n<dt id=\"are%20out-of-stock%20and%20hidden%20products%20shown%3F\"><h3>Are out-of-stock and hidden products shown?<\/h3><\/dt>\n<dd><p>Search and autocomplete follow the plugin's \"Out of stock\" setting: \"Hide\" removes them,\n\"Show last\" keeps them at the end. Filtered product grids (and their counts) hide them if\neither the plugin is set to \"Hide\" or WooCommerce's own \"Hide out of stock items from the\ncatalog\" is enabled. WooCommerce catalog visibility is respected: \"Shop only\" products\nappear in filtered grids but not in search, \"Search results only\" products the other way\nround, and hidden products nowhere.<\/p><\/dd>\n<dt id=\"which%20price%20is%20shown%20in%20search%20results%20and%20filters%3F\"><h3>Which price is shown in search results and filters?<\/h3><\/dt>\n<dd><p>The index holds one public price per product: the price an anonymous visitor sees in your\nshop, using your \"Display prices in the shop\" tax setting and your store's base location.\nProducts without a price show no price (a price of 0 is shown as free). Variable products\nshow their lowest price. Prices that depend on the customer's own country, on a\nmulti-currency plugin, on the user's role or on dynamic-pricing rules are not reflected in\nsearch results \u2014 the product page always shows the exact price.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20my%20paid%20subscription%20ends%20or%20a%20payment%20fails%3F\"><h3>What happens if my paid subscription ends or a payment fails?<\/h3><\/dt>\n<dd><p>Search keeps working: your site moves to the Free plan limits. After a grace period the index\nkeeps your most important products up to the free limit (best sellers first), and your other\nproducts are still found by the standard WordPress search. Renewing the subscription restores\nthe paid limits, and the plugin re-sends the rest of your catalog automatically. Search is switched off only if you disconnect the site, or if the site is\nsuspended in your AddSynapse account.<\/p><\/dd>\n<dt id=\"does%20it%20support%20languages%20other%20than%20greek%3F\"><h3>Does it support languages other than Greek?<\/h3><\/dt>\n<dd><p>Yes. Typo tolerance, partial-word matching, synonyms and attribute search work with any\nlanguage in your catalog, and filler words and request phrases are handled in English, Greek\nand 15 other European languages. Word-form matching (stemming) and greeklish \u2194 Greek\ntransliteration are currently available for Greek only; other languages are matched by whole\nand partial words, without word-form rules.<\/p><\/dd>\n<dt id=\"filler%20phrases%3A%20what%20happens%20to%20%22i%27m%20looking%20for%20%E2%80%A6%22%3F\"><h3>Filler phrases: what happens to \"I'm looking for \u2026\"?<\/h3><\/dt>\n<dd><p>Shoppers often type (or say) a whole sentence: \"I'm looking for red shoes please\",\n\"\u03bc\u03ae\u03c0\u03c9\u03c2 \u03ad\u03c7\u03b5\u03c4\u03b5 \u03c0\u03b1\u03b6\u03bb;\". The plugin removes such request and politeness phrases from the\n<strong>start<\/strong> and the <strong>end<\/strong> of the search before sending it \u2014 \"red shoes\", \"\u03c0\u03b1\u03b6\u03bb\" \u2014 and never\ntouches words in the middle (\"case for iphone\" stays as it is). The search field keeps what\nthe shopper wrote; only the search uses the shorter text. If nothing would be left (\"I need\"),\nthe original text is searched.<\/p>\n\n<p>The phrase lists are small JSON files in <code>assets\/data\/fillers\/<\/code> (Greek with accent-less and\ngreeklish variants, English, and 15 other EU languages). Only the list for the page's\nlanguage (WPML, Polylang or the site language) is loaded; for voice search, the list for the\nspeech-recognition language. They are our own lists, released under the plugin's GPL\nlicence. Developers can change them with the <code>addsynapse_search_query_fillers<\/code> filter.<\/p>\n\n<p>The search service also ignores a short, curated list of words such as \"the\", \"for\", \"\u03ba\u03b1\u03b9\",\n\"\u03b3\u03b9\u03b1\" in the store's language (never negations like \"without\" \/ \"\u03c7\u03c9\u03c1\u03af\u03c2\"). For that it\nreceives your site's language code on activation and when you save settings.<\/p><\/dd>\n<dt id=\"can%20developers%20add%20their%20own%20data%20to%20the%20index%3F\"><h3>Can developers add their own data to the index?<\/h3><\/dt>\n<dd><p>Yes: the <code>addsynapse_search_product_document<\/code> filter lets you add keys under <code>$doc['custom']<\/code>,\nwhich your result templates can show. Anything under <code>custom<\/code> is <strong>public<\/strong> \u2014 visitors'\nbrowsers read it straight from the search service \u2014 so never put data there that is not meant\nfor the shop front (cost prices, supplier codes, customer data). Only display fields and\n    custom are returned to browsers; everything else in the index is used for searching and\nfiltering only.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.8.3<\/h4>\n\n<ul>\n<li>Change: new plugin name, \"AddSynapse \u2013 Live Product Search &amp; Filters for WooCommerce\". Same\nplugin, slug, settings and menu (\"AddSynapse \u2192 Search &amp; Filter\").<\/li>\n<li>Fix: Disconnect now also cancels the plugin's scheduled background tasks.<\/li>\n<li>Fix: the Plugins screen never contacts the service (the \"Settings\" link uses local state only).<\/li>\n<li>Fix: uninstalling while WooCommerce is inactive now also removes the plugin's scheduled tasks.<\/li>\n<li>Fix: with exact variation search, simple products were missing from the filter options and counts.<\/li>\n<li>Fix: click-through rates on the Stats tab were shown 100 times too small (e.g. \"0.5%\" instead of \"53%\").<\/li>\n<\/ul>\n\n<h4>0.8.2<\/h4>\n\n<ul>\n<li>Fix: when the plugin loaded before WooCommerce (the default alphabetical order), the WooCommerce\ncheck could run too early and leave the plugin inactive. The check now runs only after all\nplugins have loaded and is never cached.<\/li>\n<\/ul>\n\n<h4>0.8.1<\/h4>\n\n<ul>\n<li>Fix: activation no longer depends on the order in which plugins are activated. WooCommerce\n(and the PHP mbstring extension) are checked every time the plugin loads; if something is\nmissing, a notice explains it and the plugin stays inactive instead of blocking activation.<\/li>\n<li>Change: nothing is scheduled in the background until you connect your store.<\/li>\n<li>Change: a new installation shows a clear \"Connect to AddSynapse to start\" message on every tab\ninstead of a technical error; removed unused sign-up code from earlier versions.<\/li>\n<\/ul>\n\n<h4>0.8.0<\/h4>\n\n<ul>\n<li>New: no product disappears from search when your catalog is bigger than your plan. Smart search\nkeeps your most important products (best sellers first, then in stock, then newest) and the rest\nare found by the standard WordPress search, listed after the smart results \u2014 in the search panel\nand on your theme's search results page. Product filters pause in that case, so category pages\nkeep showing every product.<\/li>\n<li>New: the Status and Settings tabs show how many of your products smart search covers, with a\nlink to the Pro plan (and to its optional 5-day free trial when your AddSynapse account offers it).<\/li>\n<li>Change: Semantic search (beta) is now part of the Pro and Business plans (and the Pro trial).\nOn the Free plan the setting is shown switched off.<\/li>\n<\/ul>\n\n<h4>0.7.1<\/h4>\n\n<ul>\n<li>Improved: Semantic search (beta) now finds related products when shoppers type in Greek on a\nstore whose catalog is in another language (for example English). Fewer, more relevant related\nresults are shown in that case.<\/li>\n<\/ul>\n\n<h4>0.7.0<\/h4>\n\n<ul>\n<li>New: Semantic search (beta), optional and off by default, free on all plans. When a search finds\nnothing, the plugin looks once for products with a similar meaning and shows them under\n\"Related results\" \u2014 in the Simple and Advanced layouts, on phones, and on your theme's search\nresults page in the \"Theme's search look\" mode. Normal searches are unchanged and make no extra\nrequest. The Status tab shows when your catalog is ready for it.<\/li>\n<\/ul>\n\n<h4>0.6.7<\/h4>\n\n<ul>\n<li>Readme: contributors list corrected.<\/li>\n<\/ul>\n\n<h4>0.6.6<\/h4>\n\n<ul>\n<li>The Status and Settings tabs show the new Business plan by name. Plan limits keep coming from\nthe search service, so they always match your current plan.<\/li>\n<\/ul>\n\n<h4>0.6.5<\/h4>\n\n<ul>\n<li>New: the Category filter can show categories as a tree (subcategories under their parent,\nwith an open\/close arrow and counts that include subcategories), only the top level, or only\nthe subcategories of the category being viewed. Available in the widget, the block and the\nshortcode (<code>category_display<\/code>, <code>category_depth<\/code>). Existing filters look exactly as before.<\/li>\n<\/ul>\n\n<h4>0.6.4<\/h4>\n\n<ul>\n<li>Friendlier messages for development-site limits: a clear message (with a link to the Sites page\nof the AddSynapse portal) when your account already has 5 development sites, and an explanation\nbefore you connect when the site address contains a username\/password or the WordPress Address\nand Site Address use a different host or port.<\/li>\n<\/ul>\n\n<h4>0.6.3<\/h4>\n\n<ul>\n<li>Code quality and security hardening for the WordPress.org review.<\/li>\n<li>New: local and development installs (localhost, *.local, *.test, *.ddev.site, private IP\naddresses) can be connected as a free development site for testing; the settings page says\nso before you connect, and shows a \"Development site\" badge once connected.<\/li>\n<li>New: if the search service had to recreate your search index (for example after a long period\nof inactivity), the plugin re-sends your settings and rebuilds the index by itself in the\nbackground; the Status tab says so while it runs.<\/li>\n<li>Removed the compatibility layer for the pre-release \"WebOrange Search\" plugin.<\/li>\n<\/ul>\n\n<h4>0.6.2<\/h4>\n\n<ul>\n<li>New: a small \"\u2715 Clear filters\" link above the filters whenever a filter is active, and a \"\u2715 Clear\"\nlink on each filter that has a selection. Both bring back the theme's product list exactly as it was.<\/li>\n<li>New (optional, off by default): show the active filters above the products as small tags, each\nwith \u2715 to remove it \u2014 \"Show the active filters\u2026\" in the filter widget\/block, or\n  active_filters=\"yes\" in the shortcodes.<\/li>\n<\/ul>\n\n<h4>0.6.1<\/h4>\n\n<ul>\n<li>Fix: filters now update the product list in themes whose shop grid is not a <code>ul.products<\/code> list\n(Woodmart, Flatsome, Porto and others) \u2014 the theme's product grid is detected automatically.\nThe \"Product list selector\" setting still overrides the detection.<\/li>\n<li>Clearing the filters brings back the theme's own product list exactly as it was (quick view,\nwishlist and lazy-loaded images keep working).<\/li>\n<li>Woodmart AJAX shop: filters keep working after the theme loads a new page, sorting or\ncategory without reloading; its pagination, products-per-page and view switcher are hidden\nwhile filtering.<\/li>\n<li>Fix: after clearing the filters, the theme's pagination and sorting no longer bring back\nthe previous filter.<\/li>\n<li>Filtered products show in two columns on phones.<\/li>\n<\/ul>\n\n<h4>0.6.0<\/h4>\n\n<ul>\n<li>New: <strong>Search mode<\/strong> setting \u2014 <em>Our search panel<\/em>, <em>Theme's search look<\/em> or <em>Manual<\/em>.<\/li>\n<li>Our search panel: clicking the theme's search icon (Woodmart full-screen search, Astra and\nother popular themes, or your own CSS selector) now opens only our panel \u2014 never the theme's\npanel underneath it.<\/li>\n<li>Theme's search look: the theme's own search box, live search (Woodmart) and product search\nresults page keep their design, with results and relevance order from our engine.<\/li>\n<li>The previous \"Display mode\" setting is carried over automatically (Automatic \u2192 Our search\npanel, Manual CSS selector \u2192 Our search panel with that selector, Off \u2192 Manual).<\/li>\n<li>Fix: tapping the search field inside the full-screen mobile panel no longer closes it.<\/li>\n<\/ul>\n\n<h4>0.5.4<\/h4>\n\n<ul>\n<li>Fix: the search field works in themes that keep focus inside their own search panel\n(e.g. Woodmart full-screen search): you can click and type again, the theme's own AJAX search\nno longer opens a second dropdown, and Enter \/ \"View all\" keep the theme's product search.<\/li>\n<\/ul>\n\n<h4>0.5.3<\/h4>\n\n<ul>\n<li>Fix: the \"plan limit reached\" message is now shown entirely in your admin language (it could mix\nEnglish and your site's language), and states clearly that only new products are held back while\nexisting products keep updating and stay searchable. It includes a link to manage or upgrade your plan.<\/li>\n<\/ul>\n\n<h4>0.5.2<\/h4>\n\n<ul>\n<li>Fix: editing a variable product now updates all its variations in search. A change saved\nwhile the product was still being sent to the index (for example right after saving its\nvariations) could be dropped, so search kept showing the old title.<\/li>\n<li>Fix: products with more than 100 variations are sent in batches and update correctly.<\/li>\n<li>Fix: title, slug, category and brand changes made by other plugins (importers, translation\nor bulk-edit tools) without going through WooCommerce are now picked up as well.<\/li>\n<li>Fix: turning a simple product into a variable one no longer leaves its old entry in search.<\/li>\n<li>Note: results that are already out of date are corrected by saving the product again, or by\na full re-index (Status tab, \"Run now\").<\/li>\n<\/ul>\n\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Change: \"Connect to AddSynapse\" opens AddSynapse in a new tab. The settings page shows a\nwaiting panel and notices the approval by itself (also if you approve on another device or\ncome back later), with \"Open again\" and \"Cancel\".<\/li>\n<li>New: clear messages before leaving WordPress when the site cannot be connected (local\naddress, IP address, port number or no https), and friendly messages for every reason\nAddSynapse can refuse a connection.<\/li>\n<li>Fix: a second click while a connection is pending reopens the same request instead of\nappearing to do nothing; the button shows \"Opening AddSynapse\u2026\" and cannot be double-clicked.<\/li>\n<li>Fix: connection requests stay valid for 24 hours (signing up and confirming your email could\ntake longer than 15 minutes), and an unreachable AddSynapse is reported after 8 seconds instead of 20.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>New: <strong>Connect to AddSynapse<\/strong> \u2014 one click on the settings page connects your site to your\nAddSynapse account (sign in or create a free account, approve the site). The Free plan starts\nright away; no email form, no key to copy.<\/li>\n<li>New: the settings page shows your plan, product limit, fair-use volume and billing state from\nyour AddSynapse account, with \"Manage \/ Upgrade on AddSynapse\", \"Refresh status\" and\n\"Disconnect\". The status is checked about every hour.<\/li>\n<li>New: the search service addresses are assigned by your AddSynapse account (no fixed hosts in\nthe plugin).<\/li>\n<li>Change: payment problems never switch search off \u2014 the Free plan limits apply until they are\nresolved.<\/li>\n<li>Transition: sites with a license key from an earlier version keep working unchanged;\nconnecting them to AddSynapse is recommended and keeps the existing search index.<\/li>\n<li>Security: every answer from AddSynapse is signature-checked; the signing secret is stored\nencrypted.<\/li>\n<\/ul>\n\n<h4>0.4.2 and earlier<\/h4>\n\n<ul>\n<li>Pre-release versions, never published on WordPress.org.<\/li>\n<\/ul>","raw_excerpt":"Instant, typo-tolerant WooCommerce product search and AJAX product filters. Hosted, nothing to configure, free plan with no time limit.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/374574","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=374574"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/sakkoulas"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=374574"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=374574"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=374574"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=374574"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=374574"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=374574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}