About this plugin
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
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_visibility terms 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/filters
- glse_modify_results → glse/search/results
- glse_modify_categories_results → glse/search/categories
- glse_after_search → glse/search/after