Glance Live Search – WooCommerce AJAX Product Search
A shopper types the plural. Your catalog is written in the singular. The search returns nothing, and the sale is gone.
On a French-language store this is the single most common way a WooCommerce search comes back empty – «chaussures» failing to find «Chaussure», «chevaux» failing to find «Cheval». Glance Live Search treats them as the same word, irregular plurals included.
The rest is what you would expect from a live search, built carefully. Results appear as fast as someone can type, matched on name, SKU or category, with no page reload. A search that finds nothing offers the closest term instead of a dead end. Colors, corners and height follow your brand. And the whole thing adds under 36 KB to your storefront.
Why Glance Live Search?
- Understands plurals – singular and plural are one word on a French store, irregular ones included, and words that only look plural are left alone: prix stays prix, souris stays souris
- Instant results – matching products appear as fast as your customers can type
- Finds everything – searches product titles, SKUs, descriptions, excerpts and categories
- Beautiful by default – design presets + full Custom mode to match any brand
- Stays fast under load – recent searches are remembered, so a term someone has just typed is answered immediately
- Made for phones – the search takes over the screen, and never hides behind a notch
- Search history – recent searches saved locally and displayed on focus
- Usable by everyone – works entirely from the keyboard, and screen readers announce the results properly
- Built to be adapted – 31 documented extension points, listed at the end of this page
- See what shoppers look for – the terms they search, the ones that find nothing, and the ones that lead to a click
- Fits your theme – drops into any theme through the shortcode, widget or block, with dedicated adjustments for Shoptimizer, Astra and Kadence
Free Features
- Instant live search by product name and SKU
- Plurals understood on French-language stores, including irregular ones
- Optional search index for large catalogs, built in one click and reversible
- Search in product descriptions and short descriptions (optional)
- Up to 100 results per search, with a «View all results» link
- Search history displayed on focus (configurable, 1–20 items)
- Recent searches are reused, so repeating one is instant
- Full-screen mobile overlay with configurable breakpoint
- 2 design presets: Sharp and Clean
- Configurable search delay, minimum characters, and placeholder text
- Search button (icon or text) – inside or outside the bar
- Text button switches to icon automatically on mobile
- Analytics dashboard – top keywords over 7 days
- Shortcode
[glance_search], WordPress widget, Gutenberg block, Elementor widget - Works with block themes and the site editor
- Results update on their own when you add, edit or remove a product
- Dedicated adjustments for Shoptimizer, Astra and Kadence; works with any other theme through the shortcode, widget or block
Pro Features
- Spelling correction – a search that finds nothing offers the closest matching term instead of a dead end
- Price ranges – three brackets worked out from your own catalog, offered under the bar
- In-stock only – hide out-of-stock products from live search
- 4 design presets – Sharp, Clean, Pill, and fully Custom
- Full color customization – bar, border, text, placeholder, button
- Category filter in the search bar
- Variation search – find products by attribute values (color, size, etc.)
- Show SKU, rating, and category count in results
- Categories in search results
- Upsell recommendations below search results
- Click tracking – see which results shoppers actually open
- Advanced analytics – 7, 14, 30 and 90-day views, success rate for each search term, and CSV export
- Priority support
Learn more
Pricing, screenshots and documentation: www.glancelivesearch.com
For Developers
Glance exposes 31 extension points. They follow one naming rule — area then thing, separated by slashes — for filters and actions alike. The four names without a slash are kept for backward compatibility only and will be removed in a future release.
The search itself
glse/search/phrase— the term, before anything is done with it.( string $term )glse/search/min_chars— how many characters before a search fires.( int $min, string $term )glse/search/filters— category, stock and price filters.( array $filters, string $term )glse/search/query_args— the SQL pieces, just before they are assembled:join,where,params,order.( array $args, string $term, array $filters, int $limit )glse/search/results— the formatted results.( array $results, string $term )glse/results/product_data— one product row.( array $data, WC_Product $product, string $term )glse/search/categories— matching categories.( array $categories, string $term )glse/search/after— action, fired once a search is done.( string $term, array $results, int $ms, string $category )
Language
glse/search/french_morphology— whether French plural rules apply. Decided from the site language.( bool $applies, string $locale )glse/search/word_variants— the forms a word is looked up under. The typed word always comes first.( array $forms, string $word )
Index and performance
glse/search/use_fulltext— whether the fast index drives this search. A guard on short words may still turn it off afterwards.( bool $use, string $term )glse/search/hidden_visibility_slugs—product_visibilityterms excluded from results.( array $slugs )glse/search/price_brackets— the price chips under the bar.( array $brackets )glse/rate_limit/client_ip— the address requests are counted against. Change it behind a proxy.( string $ip )
Output
glse/template/search_form— path of the form template.( string $path, array $atts )glse/template/search_results— path of the results template.( string $path, array $vars )glse/form/html— the rendered bar.( string $html, array $atts )glse/form/placeholder— the placeholder text.( string $placeholder )glse/results/output— the whole AJAX response before it is sent.( array $response, string $term, array $results )glse/results/no_results_html— what shows when nothing matches.( string $html, string $term, string $url )glse/results/extras_budget— how many rows categories and recommendations may share. Default 6.( int $rows )glse/search/view_all_url— the «see all results» address.( string $url, string $term, string $category )glse/scripts/localize— the data handed to the front-end script.( array $data )glse_force_load_assets— load the assets on a page where the bar is not detected.( bool $force )glse_fs_loaded— action, fired once the licensing SDK is ready. No arguments.
Dictionary (Pro)
glse/suggestions/taxonomies— taxonomies feeding the spelling dictionary.( array $taxonomies )glse/suggestions/stopwords— words the dictionary ignores.( array $stopwords )
Deprecated
Still fired, no longer documented as stable. Use the slashed name instead.
glse_search_filters→glse/search/filtersglse_modify_results→glse/search/resultsglse_modify_categories_results→glse/search/categoriesglse_after_search→glse/search/after
