{"id":264374,"date":"2026-01-01T14:55:30","date_gmt":"2026-01-01T14:55:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/querypress\/"},"modified":"2026-08-26T18:10:44","modified_gmt":"2026-08-26T18:10:44","slug":"wpxero-search-filter","status":"publish","type":"plugin","link":"https:\/\/fa.wordpress.org\/plugins\/wpxero-search-filter\/","author":21159831,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"5.2","requires_php":"7.4","requires_plugins":null,"header_name":"FalcoSearch \u2013 Live Search & Product Filter for WooCommerce","header_author":"FalcoSearch","header_description":"A modern, AI-enhanced live search experience for WordPress with analytics, dark mode, and advanced filtering capabilities.","assets_banners_color":"cfd8f6","last_updated":"2026-08-26 18:10:44","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/falcosearch.com\/","header_author_uri":"https:\/\/falcosearch.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":560,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"wpxero","date":"2026-01-14 16:32:53"},"1.0.3":{"tag":"1.0.3","author":"wpxero","date":"2026-01-17 14:36:01"},"1.0.4":{"tag":"1.0.4","author":"wpxero","date":"2026-05-06 16:11:45"},"1.0.5":{"tag":"1.0.5","author":"wpxero","date":"2026-06-11 15:42:00"},"1.1.0":{"tag":"1.1.0","author":"wpxero","date":"2026-08-26 18:10:44"}},"upgrade_notice":{"1.1.0":"<p><strong>Major feature release<\/strong> \u2014 adds the universal filter builder (React\/AntD admin, 12 filter types, clean-URL filter pages, SEO templates, Elementor \/ WPML \/ multi-currency, block-theme support, cached counts), a live search-analytics dashboard with CSV export, and a rebuilt admin. Tested with WordPress 7.1, WooCommerce 10.8 (HPOS + Cart\/Checkout Blocks declared), and Elementor 4.1. Existing settings, shortcodes, and hooks are unchanged. After updating, re-save Permalinks once to seed the new rewrite rules.<\/p>","1.0.5":"<p>Rebrand to FalcoSearch (formerly Xero Finder) plus security and performance hardening. Safe upgrade: slug, settings, shortcodes, and hooks are unchanged.<\/p>","1.0.4":"<p><strong>Recommended update<\/strong> \u2014 Version 1.0.4 is tested with WordPress 7.0. Update when you upgrade core.<\/p>","1.0.2":"<p><strong>Recommended Update<\/strong> \u2014 Enhanced dashboard UI with improved layout, better visual hierarchy, redesigned settings page for superior user experience, and optimised admin interface performance.<\/p>","1.0.1":"<p><strong>Important Bug Fix Release<\/strong> \u2014 Resolves critical frontend search display issues and improves AJAX response handling. Update immediately to ensure optimal search functionality.<\/p>","1.0.0":"<p><strong>Initial Stable Release<\/strong> \u2014 Welcome to FalcoSearch (formerly Xero Finder). Transform your WordPress search with instant results, AI-powered suggestions, WooCommerce integration, and 20+ slash commands.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3450832,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3450832,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3450831,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3450831,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"xerosf\/filters":{"name":"xerosf\/filters","title":"Xerosf Filters"},"xerosf\/chips":{"name":"xerosf\/chips","title":"Xerosf Chips"},"xerosf\/sorting":{"name":"xerosf\/sorting","title":"Xerosf Sorting"}},"tagged_versions":["1.0.2","1.0.3","1.0.4","1.0.5","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"WooCommerce product live search \u2014 product cards with image, price, rating, and stock badge appear as the shopper types.","2":"Instant product filters \u2014 category, price range, rating, on-sale, and stock controls refine results in place without a page reload.","3":"Slash command palette \u2014 <code>\/product<\/code>, <code>\/price<\/code>, <code>\/rated<\/code>, <code>\/on-sale<\/code>, <code>\/bestseller<\/code> and more, grouped and discoverable.","4":"Dark mode \u2014 full-screen search modal with quick-search chips on a dark surface, activated by <code>\/dark<\/code>.","5":"Voice search \u2014 microphone state and live transcription overlay on a supported browser.","6":"Analytics dashboard \u2014 total searches, zero-result queries, top keywords, and a CSV export button.","7":"Admin settings \u2014 FalcoSearch dashboard with the Frontend Search module toggle and quick stats.","8":"Mobile layout \u2014 full-screen search overlay optimised for touch on a phone-sized viewport."}},"plugin_section":[],"plugin_tags":[2109,5185,6033,37974,5184],"plugin_category":[],"plugin_contributors":[223308],"plugin_business_model":[],"class_list":["post-264374","plugin","type-plugin","status-publish","hentry","plugin_tags-ajax-search","plugin_tags-live-search","plugin_tags-product-filter","plugin_tags-woocommerce-filter","plugin_tags-woocommerce-search","plugin_contributors-wpxero","plugin_committers-wpxero"],"banners":{"banner":"https:\/\/ps.w.org\/wpxero-search-filter\/assets\/banner-772x250.png?rev=3450831","banner_2x":"https:\/\/ps.w.org\/wpxero-search-filter\/assets\/banner-1544x500.png?rev=3450831","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wpxero-search-filter\/assets\/icon-128x128.png?rev=3450832","icon_2x":"https:\/\/ps.w.org\/wpxero-search-filter\/assets\/icon-256x256.png?rev=3450832","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>FalcoSearch was formerly known as Xero Finder.<\/strong> Your settings, shortcodes, and developer hooks continue to work unchanged after the rename.<\/p>\n\n<p>FalcoSearch is a falcon-fast live search and product-filter plugin built around WooCommerce. Shoppers type once and see matching products \u2014 with images, price, stock, and rating \u2014 before they finish the word. Refine results in place with instant filters for category, price, rating, on-sale, bestseller, and stock status. No page reloads. No plugin bloat. No jQuery.<\/p>\n\n<h4>Why WooCommerce stores choose FalcoSearch<\/h4>\n\n<ul>\n<li><strong>Instant product results as you type<\/strong> \u2014 title, SKU, price, rating, stock, on-sale, bestseller, newest.<\/li>\n<li><strong>In-place product filters<\/strong> \u2014 category, price range, rating, stock, sale; combine freely.<\/li>\n<li><strong>Lower bounce on product searches<\/strong> \u2014 debounced AJAX, server-side caching, conditional asset loading.<\/li>\n<li><strong>No theme rewrite required<\/strong> \u2014 drop in the <code>[xerosf_icon]<\/code> or <code>[xerosf_input]<\/code> shortcode anywhere, or use the floating modal.<\/li>\n<li><strong>Works alongside your existing theme search<\/strong> \u2014 FalcoSearch enhances the native WordPress search input on focus.<\/li>\n<\/ul>\n\n<h4>Universal filter builder (v1.1.0)<\/h4>\n\n<p>A React + Ant Design admin where you build filter sets for any post type (products, posts, custom CPTs). Each set is a CPT with a sanitized JSON config \u2014 author through the SPA, drop on the frontend via shortcode, block, widget, or auto-injection on matched archives.<\/p>\n\n<ul>\n<li><strong>12 filter types<\/strong> (registry keys shown in backticks) \u2014 <code>checkbox<\/code>, <code>radio<\/code>, <code>dropdown<\/code>, <code>buttons<\/code>, <code>swatch<\/code> (color + image term meta), <code>range_slider<\/code>, <code>minmax_inputs<\/code>, <code>rating<\/code>, <code>status_toggle<\/code> (availability toggles \u2014 in_stock \/ on_sale \/ featured \/ downloadable \/ backorder), <code>author<\/code>, <code>date_range<\/code>, <code>hierarchy<\/code> (nested taxonomy tree).<\/li>\n<li><strong>3-pane editor<\/strong> \u2014 sortable filter cards (<code>@dnd-kit<\/code>, keyboard-operable), per-card config form, debounced live preview.<\/li>\n<li><strong>Per-set behaviour<\/strong> \u2014 instant or apply-button submission, vertical \/ horizontal \/ off-canvas layout, chips, sorting whitelist, per-term counts, hide-empty terms.<\/li>\n<li><strong>Auto-injection<\/strong> \u2014 sets with matching location rules print on the right hook (<code>woocommerce_before_shop_loop<\/code> on Woo, <code>loop_start<\/code> elsewhere) or expose <code>do_action('xerosf_render_filters', $set_id)<\/code> for manual theme placement.<\/li>\n<li><strong>Block themes supported<\/strong> \u2014 WooCommerce Product Collection block queries are mutated via <code>query_loop_block_query_vars<\/code>, so filters work on Twenty Twenty-Five and other block themes out of the box.<\/li>\n<li><strong>AJAX engine<\/strong> \u2014 change \u2192 <code>pushState<\/code> \u2192 fetch with <code>X-Xerosf-Partial: 1<\/code> \u2192 server returns JSON of the rendered container; client swaps innerHTML, updates chips, announces result count via aria-live. Mobile drawer + floating \"Filters\" button below 768 px.<\/li>\n<li><strong>Self-excluding counts<\/strong> \u2014 Amazon-style: every term shows its count <em>minus this filter<\/em>, so siblings stay clickable. Two-tier cache (object cache + transient, 10 min), bumped via a single option flip on save_post \/ edited_term \/ Woo product props update.<\/li>\n<li><strong>Clean URLs + SEO<\/strong> \u2014 <code>\/shop\/color-blue\/brand-acer\/<\/code> style paths; non-canonical orderings 301 to the alphabetical canonical. Per-set title \/ H1 \/ meta description templates with <code>{archive}<\/code> \/ <code>{filters}<\/code> \/ <code>{term:filter_id}<\/code> \/ <code>{count}<\/code> tokens. Depth-1 pages indexable, depth \u2265 2 emits <code>noindex,follow<\/code>. Yoast and Rank Math integration when active; wp_head fallback otherwise. Core XML sitemap provider for depth-1 URLs.<\/li>\n<li><strong>Builders<\/strong> \u2014 Elementor widgets (Filters, Chips, Sorting) when Elementor is active; Bricks stub hook for theme adapters.<\/li>\n<li><strong>WPML \/ Polylang<\/strong> \u2014 set title + filter labels registered for translation; term ids mapped via <code>wpml_object_id<\/code> \/ <code>pll_get_term<\/code> at query time.<\/li>\n<li><strong>Multi-currency<\/strong> \u2014 price slider bounds + applied values flow through <code>xerosf_price_to_base<\/code> and <code>xerosf_price_to_display<\/code> filters; built-in adapters for WOOCS and CURCY.<\/li>\n<li><strong>Custom queries<\/strong> \u2014 any theme-side <code>new WP_Query(['xerosf_filterable' =&gt; $set_id])<\/code> is auto-filtered.<\/li>\n<li><strong>Full-page-cache compatible<\/strong> \u2014 opt-in <code>xerosf_state<\/code> cookie when filters are active for Cloudflare \/ Varnish \/ Nginx FastCGI \/ Rocket \/ W3TC \/ Batcache vary.<\/li>\n<li><strong>WP-CLI<\/strong> \u2014 <code>wp xerosf seed --products=10000<\/code> to seed a benchmarkable Woo store.<\/li>\n<\/ul>\n\n<h4>Core search &amp; filter features<\/h4>\n\n<ul>\n<li>Real-time live search as you type<\/li>\n<li>Multiple search triggers \u2014 triple-click, Ctrl+\/ (Cmd+\/ on macOS), Escape, or search-input focus<\/li>\n<li>Slash command system (<code>\/recent<\/code>, <code>\/category<\/code>, <code>\/price<\/code>, <code>\/fav<\/code>, and more \u2014 see below)<\/li>\n<li>Voice search where the browser supports it<\/li>\n<li>Multiple built-in theme styles<\/li>\n<li>Responsive on every device<\/li>\n<li>Shortcodes for the search icon and the search input<\/li>\n<li>WPML &amp; Polylang compatible<\/li>\n<li>WooCommerce product search (title, SKU, price, rating, stock)<\/li>\n<li>User favourites<\/li>\n<li>Synonym expansion<\/li>\n<li>SEO metadata search support<\/li>\n<\/ul>\n\n<h4>Advanced features<\/h4>\n\n<ul>\n<li>Analytics dashboard with CSV export<\/li>\n<li>Visual search via image upload or webcam<\/li>\n<li>Dark mode toggle (<code>\/dark<\/code> and <code>\/light<\/code>)<\/li>\n<li>AI-powered search suggestions<\/li>\n<li>Search bookmarking and command history<\/li>\n<li>Device-aware UI optimisation<\/li>\n<li>WooCommerce rating, newest, and bestseller filters<\/li>\n<li>Author filtering and year filtering<\/li>\n<\/ul>\n\n<h4>Slash commands<\/h4>\n\n<p>General:<\/p>\n\n<ul>\n<li><code>\/recent<\/code><\/li>\n<li><code>\/category {slug}<\/code><\/li>\n<li><code>\/tag {slug}<\/code><\/li>\n<li><code>\/date {Y\/m\/d}<\/code><\/li>\n<li><code>\/related<\/code><\/li>\n<li><code>\/fav<\/code><\/li>\n<li><code>\/random<\/code><\/li>\n<li><code>\/dark<\/code><\/li>\n<li><code>\/light<\/code><\/li>\n<li><code>\/author {name}<\/code><\/li>\n<li><code>\/year {year}<\/code><\/li>\n<li><code>\/bookmark<\/code><\/li>\n<li><code>\/bookmarks<\/code><\/li>\n<li><code>\/history<\/code><\/li>\n<li><code>\/export_history<\/code><\/li>\n<\/ul>\n\n<p>WooCommerce:<\/p>\n\n<ul>\n<li><code>\/product<\/code><\/li>\n<li><code>\/on-sale<\/code><\/li>\n<li><code>\/stock<\/code><\/li>\n<li><code>\/price {min} {max}<\/code><\/li>\n<li><code>\/rated {1-5}<\/code><\/li>\n<li><code>\/newest<\/code><\/li>\n<li><code>\/bestseller<\/code><\/li>\n<\/ul>\n\n<h4>Developer hooks<\/h4>\n\n<p>Tune the relevance weights, post-process the result set, or change how long analytics rows are kept:<\/p>\n\n<pre><code>add_filter( 'xerosf_weights', function ( $weights, $mode ) {\n    return $weights;\n}, 10, 2 );\n\nadd_filter( 'xerosf_results', function ( $results, $post_ids, $term, $args ) {\n    return $results;\n}, 10, 4 );\n\nadd_filter( 'xerosf_analytics_retention_days', function ( $days ) {\n    return 180;\n} );\n<\/code><\/pre>\n\n<h4>Theme override<\/h4>\n\n<p>Add custom CSS at:<\/p>\n\n<pre><code>\/wp-content\/themes\/your-theme\/wpxero-search-filter\/style.css\n<\/code><\/pre>\n\n<h3>Credits<\/h3>\n\n<p>Developed by the FalcoSearch team (formerly WPXERO).<\/p>\n\n<h3>Support<\/h3>\n\n<p>For help, please open a thread on the WordPress.org support forum:\nhttps:\/\/wordpress.org\/support\/plugin\/wpxero-search-filter\/<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wpxero-search-filter<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install from the WordPress plugin directory.<\/li>\n<li>Activate the plugin from <strong>Plugins \u2192 Installed Plugins<\/strong>.<\/li>\n<li>Configure the search at <strong>FalcoSearch<\/strong> in the admin sidebar.<\/li>\n<li>View search analytics at <strong>FalcoSearch \u2192 Analytics<\/strong>.<\/li>\n<li>Optionally, drop <code>[xerosf_icon text=\"Search\"]<\/code> or <code>[xerosf_input placeholder=\"Search\u2026\"]<\/code> into a page, post, or widget.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20falcosearch%20work%20with%20woocommerce%3F\"><h3>Does FalcoSearch work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. FalcoSearch is built around WooCommerce. It searches product title and SKU, exposes filters for category, price range, rating, stock status, on-sale, bestseller, and newest, and renders product results with the featured image, price, and rating in the live modal.<\/p><\/dd>\n<dt id=\"i%20was%20using%20%22xero%20finder%22.%20is%20this%20the%20same%20plugin%3F\"><h3>I was using \"Xero Finder\". Is this the same plugin?<\/h3><\/dt>\n<dd><p>Yes. FalcoSearch is the new name for Xero Finder (also previously branded as WPXERO Search Filter). The plugin slug, text domain, settings, shortcodes, and developer hooks are all unchanged \u2014 updating to v1.1.0 will not break your site.<\/p><\/dd>\n<dt id=\"will%20my%20existing%20settings%20and%20shortcodes%20keep%20working%20after%20the%20rename%3F\"><h3>Will my existing settings and shortcodes keep working after the rename?<\/h3><\/dt>\n<dd><p>Yes. The option key (<code>wpxero_search_settings<\/code>), shortcodes (<code>[xerosf_icon]<\/code>, <code>[xerosf_input]<\/code>), and filter hooks (<code>xerosf_weights<\/code>, <code>xerosf_results<\/code>, <code>xerosf_analytics_retention_days<\/code>) are unchanged in v1.1.0 and beyond.<\/p><\/dd>\n<dt id=\"is%20falcosearch%20multilingual%3F\"><h3>Is FalcoSearch multilingual?<\/h3><\/dt>\n<dd><p>Yes. The plugin is fully translatable (text domain: <code>wpxero-search-filter<\/code>) and ships a <code>.pot<\/code> file. It is compatible with WPML and Polylang.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20require%20jquery%3F\"><h3>Does the plugin require jQuery?<\/h3><\/dt>\n<dd><p>No. The frontend is built in vanilla JavaScript and does not enqueue jQuery.<\/p><\/dd>\n<dt id=\"does%20falcosearch%20include%20a%20dark%20mode%3F\"><h3>Does FalcoSearch include a dark mode?<\/h3><\/dt>\n<dd><p>Yes. Type <code>\/dark<\/code> in the search modal to switch to dark mode, or <code>\/light<\/code> to switch back. The theme is also configurable from the admin settings page.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20the%20search%20bar%20to%20my%20theme%3F\"><h3>How do I add the search bar to my theme?<\/h3><\/dt>\n<dd><p>Use one of the bundled shortcodes \u2014 <code>[xerosf_icon]<\/code> for a magnifying-glass icon that opens the modal, or <code>[xerosf_input]<\/code> for an inline input. Both also work in blocks, widgets, and PHP via <code>do_shortcode()<\/code>. Alternatively, leave the floating modal triggers (Ctrl+\/, triple-click, or input focus) enabled and FalcoSearch will hook into your existing theme search input on focus.<\/p><\/dd>\n<dt id=\"how%20do%20i%20view%20search%20analytics%3F\"><h3>How do I view search analytics?<\/h3><\/dt>\n<dd><p>Open <strong>FalcoSearch \u2192 Analytics<\/strong> in the admin sidebar. You can see total searches, zero-result queries, top keywords, search volume over time, and export the raw data as CSV.<\/p><\/dd>\n<dt id=\"can%20i%20customise%20how%20results%20are%20ranked%3F\"><h3>Can I customise how results are ranked?<\/h3><\/dt>\n<dd><p>Yes. Hook the <code>xerosf_weights<\/code> filter to change the relevance weights per search mode, and <code>xerosf_results<\/code> to post-process the result set after the engine has built it.<\/p><\/dd>\n<dt id=\"does%20falcosearch%20send%20my%20visitors%27%20data%20to%20an%20external%20service%3F\"><h3>Does FalcoSearch send my visitors' data to an external service?<\/h3><\/dt>\n<dd><p>No. FalcoSearch does not make external HTTP calls and does not track visitors. The analytics dashboard is stored locally in your own WordPress database.<\/p><\/dd>\n<dt id=\"how%20do%20i%20uninstall%20and%20delete%20all%20data%3F\"><h3>How do I uninstall and delete all data?<\/h3><\/dt>\n<dd><p>Deactivating leaves your settings in place so a re-install picks them up where you left off. To wipe everything, enable <strong>Remove all data on uninstall<\/strong> in the settings page first, then delete the plugin from the Plugins screen \u2014 this removes the options and analytics tables on uninstall. (Setting introduced in v1.1.0; default off.)<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0 - 2026-08-27<\/h4>\n\n<p><strong>Universal filter builder, search analytics, rebuilt admin<\/strong><\/p>\n\n<p><em>Filter Sets \u2014 new universal filter module<\/em><\/p>\n\n<ul>\n<li>New: Filter Sets \u2014 React + Ant Design admin builder under <strong>FalcoSearch \u2192 Filter Sets<\/strong>. Author filter sets for any post type with a 3-pane drag-to-reorder editor, live preview, per-card config form, and five tabs (Filters \/ Locations \/ Display \/ SEO \/ Advanced).<\/li>\n<li>New: 12 filter types \u2014 <code>checkbox<\/code>, <code>radio<\/code>, <code>dropdown<\/code>, <code>buttons<\/code>, <code>swatch<\/code>, <code>range_slider<\/code>, <code>minmax_inputs<\/code>, <code>rating<\/code>, <code>status_toggle<\/code> (availability toggles), <code>author<\/code>, <code>date_range<\/code>, <code>hierarchy<\/code> (hierarchical taxonomy tree).<\/li>\n<li>New: Frontend renderer with state-aware HTML, active-filter chips, sorting <code>&lt;select&gt;<\/code>, accessible mobile drawer, focus rings, RTL.<\/li>\n<li>New: AJAX engine using <code>X-Xerosf-Partial: 1<\/code> \u2014 server extracts the results container by selector and returns JSON; client swaps it, updates chips, announces result count via aria-live. Works on classic and block themes (auto-detects <code>.wc-block-product-template<\/code>, <code>.products<\/code>, <code>#main<\/code>).<\/li>\n<li>New: Self-excluding counts (\"Amazon-style\") with a two-tier cache (object cache + transient) busted on save_post \/ edited_term \/ Woo product props update.<\/li>\n<li>New: Clean-URL filter pages \u2014 <code>\/shop\/color-blue\/brand-acer\/<\/code>. Non-canonical orderings 301 to alphabetical canonical. Per-set indexable depth + canonical mode + title \/ H1 \/ description templates with <code>{archive}<\/code> \/ <code>{filters}<\/code> \/ <code>{term:id}<\/code> \/ <code>{count}<\/code> tokens. Yoast &amp; Rank Math integration when active; wp_head fallback otherwise. Core XML sitemap provider for depth-1 pages.<\/li>\n<li>New: WooCommerce Product Collection block (block themes) \u2014 queries mutated via <code>query_loop_block_query_vars<\/code> so filters apply to Twenty Twenty-Five and similar.<\/li>\n<li>New: Custom WP_Query support via <code>xerosf_filterable<\/code> query arg.<\/li>\n<li>New: Elementor widgets (Filters \/ Chips \/ Sorting) when Elementor is active; Bricks stub action.<\/li>\n<li>New: WPML and Polylang integration \u2014 translatable labels, term-id mapping via <code>wpml_object_id<\/code> \/ <code>pll_get_term<\/code>.<\/li>\n<li>New: Multi-currency \u2014 <code>xerosf_price_to_base<\/code> and <code>xerosf_price_to_display<\/code> filters; WOOCS and CURCY adapters.<\/li>\n<li>New: Cache-vary cookie (<code>xerosf_state<\/code>) for full-page-cache layers; <code>docs\/full-page-cache.md<\/code> documents Cloudflare \/ Varnish \/ Nginx \/ Rocket \/ W3TC \/ Batcache wiring.<\/li>\n<li>New: WP-CLI command \u2014 <code>wp xerosf seed --products=N<\/code> to seed a benchmarkable store.<\/li>\n<li>New: Counts Health card in the editor's Advanced tab.<\/li>\n<li>New: Swatch term-meta UI (color + image) on every public taxonomy's term-edit screen.<\/li>\n<li>New: Shortcodes \u2014 <code>[xerosf_filters set=\"X\"]<\/code>, <code>[xerosf_chips]<\/code>, <code>[xerosf_sorting]<\/code>. Server-rendered blocks \u2014 <code>xerosf\/filters<\/code>, <code>xerosf\/chips<\/code>, <code>xerosf\/sorting<\/code>.<\/li>\n<li>New: 8 REST endpoints (<code>\/filter-sets<\/code> CRUD + duplicate \/ preview \/ health, <code>\/sources\/*<\/code> discovery).<\/li>\n<\/ul>\n\n<p><em>Search analytics<\/em><\/p>\n\n<ul>\n<li>New: Analytics page under <strong>FalcoSearch \u2192 Analytics<\/strong> \u2014 totals, zero-result queries, top keywords, and a CSV export.<\/li>\n<li>New: the analytics writer is live. One row per search is stored in a dedicated <code>{prefix}wpxero_search_analytics<\/code> table, gated behind the existing <strong>Enable analytics<\/strong> toggle, so turning it off stops new rows immediately.<\/li>\n<li>New: <code>enable_analytics_retention_days<\/code> setting (default 90, range 1\u20133650). Read precedence is the <code>xerosf_analytics_retention_days<\/code> filter, then this setting, then the 90-day fallback.<\/li>\n<li>New: three REST endpoints \u2014 <code>\/analytics\/overview<\/code>, <code>\/analytics\/keywords<\/code>, <code>\/analytics\/export.csv<\/code>.<\/li>\n<li>New: <code>wpxero_search_analytics_record<\/code> action fires for every search \u2014 including when the user-facing toggle is off \u2014 so third-party analytics can observe without the plugin writing rows.<\/li>\n<li>Changed: settings schema target moved to v3. The v2\u2192v3 migration installs the analytics table via <code>dbDelta<\/code> and seeds the new retention key. No action required on update.<\/li>\n<\/ul>\n\n<p><em>Admin experience<\/em><\/p>\n\n<ul>\n<li>Changed: the old Dashboard page is replaced by the Analytics page; the module toggle and quick stats moved onto it.<\/li>\n<li>New: onboarding panel that walks a fresh install through enabling the search module and creating a first filter set.<\/li>\n<li>Improved: the Frontend Search settings page was rebuilt \u2014 grouped sections, a persistent sticky submit bar instead of the old inline save button, and no more toast on every render.<\/li>\n<li>Improved: filter editor \u2014 richer Add Filter modal with source discovery, expanded Display \/ Locations \/ Advanced tabs, and a faster debounced preview pane.<\/li>\n<\/ul>\n\n<p><em>Compatibility<\/em><\/p>\n\n<ul>\n<li>Compatibility: tested with WordPress 7.1.<\/li>\n<li>Compatibility: tested with WooCommerce 10.8. Added explicit HPOS (High-Performance Order Storage) and Cart\/Checkout Blocks compatibility declarations via <code>FeaturesUtil::declare_compatibility()<\/code> \u2014 FalcoSearch never reads or writes order data, so it no longer appears under WooCommerce's incompatible-plugins list.<\/li>\n<li>Compatibility: tested with Elementor 4.1 and Elementor Pro 4.1. The Filters \/ Chips \/ Sorting widgets register through the modern <code>elementor\/widgets\/register<\/code> API and the <code>elementor\/elements\/categories_registered<\/code> category hook.<\/li>\n<li>Headers: declared <code>WC requires at least<\/code>, <code>WC tested up to<\/code>, <code>Elementor tested up to<\/code>, and <code>Elementor Pro tested up to<\/code> in both the plugin header and readme so WooCommerce and Elementor read the support matrix directly.<\/li>\n<\/ul>\n\n<p><em>Fixes<\/em><\/p>\n\n<ul>\n<li>Fixed: search results could fatal on stores with percent-discount coupons that have no description \u2014 the coupon suggestion used <code>wc_format_coupon_amount()<\/code>, which no longer exists in current WooCommerce. Now formatted with <code>wc_format_decimal()<\/code>.<\/li>\n<li>Fixed: filtered archives 404'd on <code>\/page\/2\/<\/code> once a filter narrowed the result set below one page. Out-of-range paged requests now redirect to page 1 of the same URL, preserving every <code>fs_*<\/code> \/ <code>s<\/code> \/ <code>orderby<\/code> parameter.<\/li>\n<li>Fixed: the Elementor Filters \/ Chips \/ Sorting widgets failed to register on Elementor 4.x and rendered empty in the editor. The widget layer was rewritten against the current registration API.<\/li>\n<\/ul>\n\n<p><em>Developer<\/em><\/p>\n\n<ul>\n<li>New: Playwright end-to-end suite under <code>tests\/e2e\/<\/code> covering the search modal and the filter engine.<\/li>\n<li>New: <code>npm run ci<\/code> gate \u2014 engine check, package-json lint, PHP lint, both builds, and <code>tsc --noEmit<\/code>. <code>npm run release<\/code> produces the wordpress.org zip via <code>scripts\/create-zip.js<\/code>.<\/li>\n<li>Backward compatibility: every setting, shortcode, hook, REST endpoint, and option key from v1.0.5 is unchanged.<\/li>\n<\/ul>\n\n<h4>1.0.5 - 2026-06-11<\/h4>\n\n<p><strong>Rebrand &amp; quality release<\/strong>\n* Rebranded: Xero Finder is now FalcoSearch.\n* Security hardening \u2014 nonces, capability checks, sanitisation of all request input, full output escaping, prepared queries everywhere.\n* Performance \u2014 conditional asset loading (search assets no longer load on pages without the search UI), expensive queries cached with transients, paginated analytics queries.\n* Added: uninstall cleanup with an opt-in <strong>Remove all data on uninstall<\/strong> setting (default off).\n* Improved: full internationalisation pass and a fresh <code>.pot<\/code> file.\n* Overhauled readme and documentation.\n* Backward compatibility: slug <code>wpxero-search-filter<\/code>, text domain <code>wpxero-search-filter<\/code>, option key <code>wpxero_search_settings<\/code>, shortcodes <code>[xerosf_icon]<\/code> \/ <code>[xerosf_input]<\/code>, and filter hooks <code>xerosf_weights<\/code> \/ <code>xerosf_results<\/code> \/ <code>xerosf_analytics_retention_days<\/code> are all unchanged.<\/p>\n\n<h4>1.0.4 - 2026-05-06<\/h4>\n\n<p><strong>Compatibility<\/strong>\n* Declared support for WordPress 7.0 (<code>Tested up to: 7.0<\/code>).<\/p>\n\n<h4>1.0.3 - 2026-01-17<\/h4>\n\n<p><strong>Bug Fixes<\/strong>\n* Fixed: Resolved CSS styling issues affecting fullscreen search modal display.<\/p>\n\n<p><strong>Improvements<\/strong>\n* Enhanced: Search functionality with improved accuracy and response time.\n* Refined: Settings panel reorganised by priority for better user workflow.\n* Optimised: Admin interface performance for faster page loads.<\/p>\n\n<h4>1.0.1 - 2026-01-10<\/h4>\n\n<p><strong>Bug Fixes<\/strong>\n* Fixed: Frontend search results not displaying correctly under certain conditions.\n* Resolved: AJAX response handling for search queries.<\/p>\n\n<h4>1.0.0 - 2026-01-01<\/h4>\n\n<p><strong>Initial Release<\/strong>\n* Introduced real-time live search functionality.\n* Added slash command system with 20+ commands.\n* Implemented WooCommerce product search integration.\n* Added voice search capability (browser-dependent).\n* Included advanced analytics dashboard.\n* Added visual search via image upload and webcam.\n* Implemented dark\/light mode toggle.\n* Added AI-powered search suggestions.\n* Included favourites and bookmarking system.\n* Added WPML and Polylang compatibility.\n* Implemented synonym expansion and SEO metadata search.<\/p>","raw_excerpt":"WooCommerce live search + universal filter builder for any post type. Falcon-fast AJAX, clean-URL filter pages, SEO templates, Elementor &amp; WPML &amp;a &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/264374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=264374"}],"author":[{"embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpxero"}],"wp:attachment":[{"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=264374"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=264374"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=264374"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=264374"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=264374"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=264374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}