

Search bar with live results dropdown
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.
[glance_search], WordPress widget, Gutenberg block, Elementor widgetPricing, screenshots and documentation: www.glancelivesearch.com
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.
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 )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 )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 )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.glse/suggestions/taxonomies — taxonomies feeding the spelling dictionary. ( array $taxonomies )glse/suggestions/stopwords — words the dictionary ignores. ( array $stopwords )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