FalcoSearch – Live Search & Product Filter for WooCommerce

Description

FalcoSearch was formerly known as Xero Finder. Your settings, shortcodes, and developer hooks continue to work unchanged after the rename.

FalcoSearch is a falcon-fast live search and product-filter plugin built around WooCommerce. Shoppers type once and see matching products — with images, price, stock, and rating — 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.

Why WooCommerce stores choose FalcoSearch

  • Instant product results as you type — title, SKU, price, rating, stock, on-sale, bestseller, newest.
  • In-place product filters — category, price range, rating, stock, sale; combine freely.
  • Lower bounce on product searches — debounced AJAX, server-side caching, conditional asset loading.
  • No theme rewrite required — drop in the [xerosf_icon] or [xerosf_input] shortcode anywhere, or use the floating modal.
  • Works alongside your existing theme search — FalcoSearch enhances the native WordPress search input on focus.

Universal filter builder (v1.1.0)

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 — author through the SPA, drop on the frontend via shortcode, block, widget, or auto-injection on matched archives.

  • 12 filter types (registry keys shown in backticks) — checkbox, radio, dropdown, buttons, swatch (color + image term meta), range_slider, minmax_inputs, rating, status_toggle (availability toggles — in_stock / on_sale / featured / downloadable / backorder), author, date_range, hierarchy (nested taxonomy tree).
  • 3-pane editor — sortable filter cards (@dnd-kit, keyboard-operable), per-card config form, debounced live preview.
  • Per-set behaviour — instant or apply-button submission, vertical / horizontal / off-canvas layout, chips, sorting whitelist, per-term counts, hide-empty terms.
  • Auto-injection — sets with matching location rules print on the right hook (woocommerce_before_shop_loop on Woo, loop_start elsewhere) or expose do_action('xerosf_render_filters', $set_id) for manual theme placement.
  • Block themes supported — WooCommerce Product Collection block queries are mutated via query_loop_block_query_vars, so filters work on Twenty Twenty-Five and other block themes out of the box.
  • AJAX engine — change pushState fetch with X-Xerosf-Partial: 1 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.
  • Self-excluding counts — Amazon-style: every term shows its count minus this filter, 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.
  • Clean URLs + SEO/shop/color-blue/brand-acer/ style paths; non-canonical orderings 301 to the alphabetical canonical. Per-set title / H1 / meta description templates with {archive} / {filters} / {term:filter_id} / {count} tokens. Depth-1 pages indexable, depth ≥ 2 emits noindex,follow. Yoast and Rank Math integration when active; wp_head fallback otherwise. Core XML sitemap provider for depth-1 URLs.
  • Builders — Elementor widgets (Filters, Chips, Sorting) when Elementor is active; Bricks stub hook for theme adapters.
  • WPML / Polylang — set title + filter labels registered for translation; term ids mapped via wpml_object_id / pll_get_term at query time.
  • Multi-currency — price slider bounds + applied values flow through xerosf_price_to_base and xerosf_price_to_display filters; built-in adapters for WOOCS and CURCY.
  • Custom queries — any theme-side new WP_Query(['xerosf_filterable' => $set_id]) is auto-filtered.
  • Full-page-cache compatible — opt-in xerosf_state cookie when filters are active for Cloudflare / Varnish / Nginx FastCGI / Rocket / W3TC / Batcache vary.
  • WP-CLIwp xerosf seed --products=10000 to seed a benchmarkable Woo store.

Core search & filter features

  • Real-time live search as you type
  • Multiple search triggers — triple-click, Ctrl+/ (Cmd+/ on macOS), Escape, or search-input focus
  • Slash command system (/recent, /category, /price, /fav, and more — see below)
  • Voice search where the browser supports it
  • Multiple built-in theme styles
  • Responsive on every device
  • Shortcodes for the search icon and the search input
  • WPML & Polylang compatible
  • WooCommerce product search (title, SKU, price, rating, stock)
  • User favourites
  • Synonym expansion
  • SEO metadata search support

Advanced features

  • Analytics dashboard with CSV export
  • Visual search via image upload or webcam
  • Dark mode toggle (/dark and /light)
  • AI-powered search suggestions
  • Search bookmarking and command history
  • Device-aware UI optimisation
  • WooCommerce rating, newest, and bestseller filters
  • Author filtering and year filtering

Slash commands

General:

  • /recent
  • /category {slug}
  • /tag {slug}
  • /date {Y/m/d}
  • /related
  • /fav
  • /random
  • /dark
  • /light
  • /author {name}
  • /year {year}
  • /bookmark
  • /bookmarks
  • /history
  • /export_history

WooCommerce:

  • /product
  • /on-sale
  • /stock
  • /price {min} {max}
  • /rated {1-5}
  • /newest
  • /bestseller

Developer hooks

Tune the relevance weights, post-process the result set, or change how long analytics rows are kept:

add_filter( 'xerosf_weights', function ( $weights, $mode ) {
    return $weights;
}, 10, 2 );

add_filter( 'xerosf_results', function ( $results, $post_ids, $term, $args ) {
    return $results;
}, 10, 4 );

add_filter( 'xerosf_analytics_retention_days', function ( $days ) {
    return 180;
} );

Theme override

Add custom CSS at:

/wp-content/themes/your-theme/wpxero-search-filter/style.css

Credits

Developed by the FalcoSearch team (formerly WPXERO).

Support

For help, please open a thread on the WordPress.org support forum:
https://wordpress.org/support/plugin/wpxero-search-filter/

Blocks

This plugin provides 3 blocks.

  • Xerosf Filters
  • Xerosf Chips
  • Xerosf Sorting

Installation

  1. Upload the wpxero-search-filter folder to /wp-content/plugins/, or install from the WordPress plugin directory.
  2. Activate the plugin from Plugins Installed Plugins.
  3. Configure the search at FalcoSearch in the admin sidebar.
  4. View search analytics at FalcoSearch Analytics.
  5. Optionally, drop [xerosf_icon text="Search"] or [xerosf_input placeholder="Search…"] into a page, post, or widget.

FAQ

Does FalcoSearch work with WooCommerce?

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.

I was using “Xero Finder”. Is this the same plugin?

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 — updating to v1.1.0 will not break your site.

Will my existing settings and shortcodes keep working after the rename?

Yes. The option key (wpxero_search_settings), shortcodes ([xerosf_icon], [xerosf_input]), and filter hooks (xerosf_weights, xerosf_results, xerosf_analytics_retention_days) are unchanged in v1.1.0 and beyond.

Is FalcoSearch multilingual?

Yes. The plugin is fully translatable (text domain: wpxero-search-filter) and ships a .pot file. It is compatible with WPML and Polylang.

Does the plugin require jQuery?

No. The frontend is built in vanilla JavaScript and does not enqueue jQuery.

Does FalcoSearch include a dark mode?

Yes. Type /dark in the search modal to switch to dark mode, or /light to switch back. The theme is also configurable from the admin settings page.

How do I add the search bar to my theme?

Use one of the bundled shortcodes — [xerosf_icon] for a magnifying-glass icon that opens the modal, or [xerosf_input] for an inline input. Both also work in blocks, widgets, and PHP via do_shortcode(). 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.

How do I view search analytics?

Open FalcoSearch Analytics 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.

Can I customise how results are ranked?

Yes. Hook the xerosf_weights filter to change the relevance weights per search mode, and xerosf_results to post-process the result set after the engine has built it.

Does FalcoSearch send my visitors’ data to an external service?

No. FalcoSearch does not make external HTTP calls and does not track visitors. The analytics dashboard is stored locally in your own WordPress database.

How do I uninstall and delete all data?

Deactivating leaves your settings in place so a re-install picks them up where you left off. To wipe everything, enable Remove all data on uninstall in the settings page first, then delete the plugin from the Plugins screen — this removes the options and analytics tables on uninstall. (Setting introduced in v1.1.0; default off.)

Reviews

There are no reviews for this plugin.

Contributors & Developers

“FalcoSearch – Live Search & Product Filter for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.0 – 2026-08-27

Universal filter builder, search analytics, rebuilt admin

Filter Sets — new universal filter module

  • New: Filter Sets — React + Ant Design admin builder under FalcoSearch Filter Sets. 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).
  • New: 12 filter types — checkbox, radio, dropdown, buttons, swatch, range_slider, minmax_inputs, rating, status_toggle (availability toggles), author, date_range, hierarchy (hierarchical taxonomy tree).
  • New: Frontend renderer with state-aware HTML, active-filter chips, sorting <select>, accessible mobile drawer, focus rings, RTL.
  • New: AJAX engine using X-Xerosf-Partial: 1 — 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 .wc-block-product-template, .products, #main).
  • New: Self-excluding counts (“Amazon-style”) with a two-tier cache (object cache + transient) busted on save_post / edited_term / Woo product props update.
  • New: Clean-URL filter pages — /shop/color-blue/brand-acer/. Non-canonical orderings 301 to alphabetical canonical. Per-set indexable depth + canonical mode + title / H1 / description templates with {archive} / {filters} / {term:id} / {count} tokens. Yoast & Rank Math integration when active; wp_head fallback otherwise. Core XML sitemap provider for depth-1 pages.
  • New: WooCommerce Product Collection block (block themes) — queries mutated via query_loop_block_query_vars so filters apply to Twenty Twenty-Five and similar.
  • New: Custom WP_Query support via xerosf_filterable query arg.
  • New: Elementor widgets (Filters / Chips / Sorting) when Elementor is active; Bricks stub action.
  • New: WPML and Polylang integration — translatable labels, term-id mapping via wpml_object_id / pll_get_term.
  • New: Multi-currency — xerosf_price_to_base and xerosf_price_to_display filters; WOOCS and CURCY adapters.
  • New: Cache-vary cookie (xerosf_state) for full-page-cache layers; docs/full-page-cache.md documents Cloudflare / Varnish / Nginx / Rocket / W3TC / Batcache wiring.
  • New: WP-CLI command — wp xerosf seed --products=N to seed a benchmarkable store.
  • New: Counts Health card in the editor’s Advanced tab.
  • New: Swatch term-meta UI (color + image) on every public taxonomy’s term-edit screen.
  • New: Shortcodes — [xerosf_filters set="X"], [xerosf_chips], [xerosf_sorting]. Server-rendered blocks — xerosf/filters, xerosf/chips, xerosf/sorting.
  • New: 8 REST endpoints (/filter-sets CRUD + duplicate / preview / health, /sources/* discovery).

Search analytics

  • New: Analytics page under FalcoSearch Analytics — totals, zero-result queries, top keywords, and a CSV export.
  • New: the analytics writer is live. One row per search is stored in a dedicated {prefix}wpxero_search_analytics table, gated behind the existing Enable analytics toggle, so turning it off stops new rows immediately.
  • New: enable_analytics_retention_days setting (default 90, range 1–3650). Read precedence is the xerosf_analytics_retention_days filter, then this setting, then the 90-day fallback.
  • New: three REST endpoints — /analytics/overview, /analytics/keywords, /analytics/export.csv.
  • New: wpxero_search_analytics_record action fires for every search — including when the user-facing toggle is off — so third-party analytics can observe without the plugin writing rows.
  • Changed: settings schema target moved to v3. The v2v3 migration installs the analytics table via dbDelta and seeds the new retention key. No action required on update.

Admin experience

  • Changed: the old Dashboard page is replaced by the Analytics page; the module toggle and quick stats moved onto it.
  • New: onboarding panel that walks a fresh install through enabling the search module and creating a first filter set.
  • Improved: the Frontend Search settings page was rebuilt — grouped sections, a persistent sticky submit bar instead of the old inline save button, and no more toast on every render.
  • Improved: filter editor — richer Add Filter modal with source discovery, expanded Display / Locations / Advanced tabs, and a faster debounced preview pane.

Compatibility

  • Compatibility: tested with WordPress 7.1.
  • Compatibility: tested with WooCommerce 10.8. Added explicit HPOS (High-Performance Order Storage) and Cart/Checkout Blocks compatibility declarations via FeaturesUtil::declare_compatibility() — FalcoSearch never reads or writes order data, so it no longer appears under WooCommerce’s incompatible-plugins list.
  • Compatibility: tested with Elementor 4.1 and Elementor Pro 4.1. The Filters / Chips / Sorting widgets register through the modern elementor/widgets/register API and the elementor/elements/categories_registered category hook.
  • Headers: declared WC requires at least, WC tested up to, Elementor tested up to, and Elementor Pro tested up to in both the plugin header and readme so WooCommerce and Elementor read the support matrix directly.

Fixes

  • Fixed: search results could fatal on stores with percent-discount coupons that have no description — the coupon suggestion used wc_format_coupon_amount(), which no longer exists in current WooCommerce. Now formatted with wc_format_decimal().
  • Fixed: filtered archives 404’d on /page/2/ 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 fs_* / s / orderby parameter.
  • 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.

Developer

  • New: Playwright end-to-end suite under tests/e2e/ covering the search modal and the filter engine.
  • New: npm run ci gate — engine check, package-json lint, PHP lint, both builds, and tsc --noEmit. npm run release produces the wordpress.org zip via scripts/create-zip.js.
  • Backward compatibility: every setting, shortcode, hook, REST endpoint, and option key from v1.0.5 is unchanged.

1.0.5 – 2026-06-11

Rebrand & quality release
* Rebranded: Xero Finder is now FalcoSearch.
* Security hardening — nonces, capability checks, sanitisation of all request input, full output escaping, prepared queries everywhere.
* Performance — conditional asset loading (search assets no longer load on pages without the search UI), expensive queries cached with transients, paginated analytics queries.
* Added: uninstall cleanup with an opt-in Remove all data on uninstall setting (default off).
* Improved: full internationalisation pass and a fresh .pot file.
* Overhauled readme and documentation.
* Backward compatibility: slug wpxero-search-filter, text domain wpxero-search-filter, option key wpxero_search_settings, shortcodes [xerosf_icon] / [xerosf_input], and filter hooks xerosf_weights / xerosf_results / xerosf_analytics_retention_days are all unchanged.

1.0.4 – 2026-05-06

Compatibility
* Declared support for WordPress 7.0 (Tested up to: 7.0).

1.0.3 – 2026-01-17

Bug Fixes
* Fixed: Resolved CSS styling issues affecting fullscreen search modal display.

Improvements
* Enhanced: Search functionality with improved accuracy and response time.
* Refined: Settings panel reorganised by priority for better user workflow.
* Optimised: Admin interface performance for faster page loads.

1.0.1 – 2026-01-10

Bug Fixes
* Fixed: Frontend search results not displaying correctly under certain conditions.
* Resolved: AJAX response handling for search queries.

1.0.0 – 2026-01-01

Initial Release
* Introduced real-time live search functionality.
* Added slash command system with 20+ commands.
* Implemented WooCommerce product search integration.
* Added voice search capability (browser-dependent).
* Included advanced analytics dashboard.
* Added visual search via image upload and webcam.
* Implemented dark/light mode toggle.
* Added AI-powered search suggestions.
* Included favourites and bookmarking system.
* Added WPML and Polylang compatibility.
* Implemented synonym expansion and SEO metadata search.