Description
Seomedseb Smart Search for WooCommerce is a fast, self-hosted AJAX search plugin for WooCommerce stores, focused on two things:
- Deep, code-free design customization. The Design tab exposes colors, typography, spacing, border radius, and several built-in style presets (minimal, command palette, glassmorphism, sharp, rounded) as CSS variables, with a live preview.
- A relevance engine with typo tolerance built in. Search runs against a dedicated, optimized index table (not the slow default WordPress search), with fuzzy/SOUNDEX fallback matching so misspelled searches still find the right product.
Every feature in this plugin — including the search engine, the full Design tab, analytics, and the indexer — is free. There is no “Pro” upsell built into this version.
Key features
- Custom, optimized search index (own DB table, not
wp_postsLIKEqueries) - AJAX autocomplete with grouped results: products, categories, tags, posts, pages
- Product detail panel on hover — add to cart without leaving the search results
- Typo-tolerant search (fuzzy/SOUNDEX fallback + “did you mean” suggestions)
- Synonyms, and exclude/include filter rules by category, tag, or product
- Full search-scope control (description, short description, SKU, attributes, categories, tags, custom fields)
- Deep design customization: colors, typography, spacing, radius, style presets, dark mode
- Animated (“typewriter”) placeholder with a configurable phrase list and speed
- ⌘K / Ctrl+K global search shortcut
- Mobile overlay mode with configurable breakpoint
- Client-side “recent searches” history
- Search analytics: critical (zero-result) search phrases report + dashboard widget
- Scheduled + on-demand index rebuilding, with live progress in the admin
Adding the search bar to your theme
- Shortcode:
[smart_search_bar] - Widget: Appearance Widgets “Smart Search bar”
- PHP:
<?php echo do_shortcode( '[smart_search_bar]' ); ?>
Blocks
This plugin provides 1 block.
- Smart Search bar
Installation
- Upload the
seomedseb-smart-searchfolder to/wp-content/plugins/, or install the zip via Plugins Add New Upload Plugin. - Activate the plugin. WooCommerce must already be installed and active.
- The plugin will automatically build its search index in the background. Check progress under WooCommerce Smart Search Indexer.
- Add
[smart_search_bar]wherever you want the search bar to appear, or use the widget.
FAQ
-
Does this require WooCommerce?
-
Yes, WooCommerce must be installed and active.
-
Is this really free?
-
Yes. Every feature described above is included at no cost. A future paid tier may exist someday, but it is a separate, later decision and does not affect this version.
-
Does it work with variable products?
-
Yes, and you choose how. Under Search config Product variations you can show only the parent product (variation SKUs still match it), give each variation its own result row with its own price, stock and image, or list the matching variations underneath their parent.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Seomedseb Smart Search for WooCommerce” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Seomedseb Smart Search for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.18.4
- Fixed: the admin-only language switcher added in 0.18.0 changed a setting (
ssws_admin_locale) from a plain GET link with only a capability check and no nonce — a logged-in admin could have that preference changed via a link they didn’t intend to click (CSRF). The switcher’s links now carry a nonce that’s verified before the option is written. - Changed: plugin author credit updated to SEOmedSEB.
0.18.3
- Fixed: clicking “View all products (N)” at the bottom of the search dropdown could take several seconds to respond on stores with a large catalogue. The link itself was always instant — the destination page (WooCommerce’s own search-results page) runs this plugin’s search a second time server-side to build its result list, and that pass was fully hydrating every matched product (price, add-to-cart, image, description) before throwing almost all of that away, since the results page only needs the list of matching IDs. It now skips straight to that, cutting the work from one full product load per match down to none.
0.18.2
- Fixed:
Tested up towas one minor version behind current WordPress (7.0, now 7.1) — WordPress.org’s automated check rejects a submission over this, since an unlisted-as-tested plugin doesn’t show up in search. - Fixed: the WordPress.org-specific build (no bundled languages/.po/.mo, per their own review guidance) was dropping the
languages/folder entirely, which left theDomain Path: /languagesheader pointing at a folder that didn’t exist in that package. The folder is kept with just the seomedseb-smart-search.pot template — the .po/.mo files translators would otherwise open are still excluded, only the template a translator starts from stays, which is what makes Domain Path valid again.
0.18.1
- Fixed: the Design tab’s “Font family” field could be used to inject arbitrary CSS — flagged by WordPress.org’s review. Its value is sanitized on save but that only strips HTML tags, not CSS syntax; the escaping this plugin applies when printing it (and every other Design-tab value) as a CSS custom property now strips the characters that give CSS its structure (
;{}@etc.) instead of just guarding against an obsolete</style>breakout from before this moved to wp_add_inline_style() in 0.17.0. - Changed:
Plugin URInow points at the canonical, trailing-slash landing page URL directly, removing a redirect hop a strict crawler might not follow.
0.18.0
- Added: a language switcher for this plugin’s own settings screens (top-right of every tab) — Dansk, Deutsch, or English, independent of whichever language WordPress itself is set to. Useful on its own if wp-admin’s language resolution isn’t cooperating (see the “Fixed” note below), and useful generally for an admin who’d rather configure the plugin in their own language than English.
- Fixed: this plugin’s own settings screens could get permanently stuck in English even on a fully German- or Danish-language site with complete translations installed. Two separate causes: (1) the tab names were translated too early in the request — before this plugin’s own translation file had even loaded — so they silently fell back to English no matter what; (2) WordPress’s admin-language resolution uses the logged-in admin’s own language preference rather than the site’s, and falls back to English for any admin account old enough to predate that preference existing. The new language switcher above sidesteps both permanently; the tab-name timing bug is also fixed outright, independent of the switcher.
0.17.6
- Fixed: the real cause of 0.17.2/0.17.3 not working — WordPress’s own load_plugin_textdomain() (used by WooCommerce and this plugin to load their translation files) ignores the page’s language entirely for any admin-ajax.php request and uses the logged-in admin user’s own wp-admin language preference instead, since admin-ajax.php always runs in an “admin” context regardless of who’s asking or why. Confirmed live: switching get_locale() had no effect because it was never being consulted for this. Now uses WordPress’s
plugin_localefilter — the actual supported override for this — to force WooCommerce’s and this plugin’s own strings to the shopper’s real page language during a search, independent of whichever admin happens to be logged in at the time.
0.17.3
- Fixed: the 0.17.2 locale fix didn’t actually change WooCommerce’s own button text (“Select options” etc.) — switch_to_locale() only reloads WordPress’s own core translations; it doesn’t force a plugin like WooCommerce to re-read its already-cached translation file for the rest of that request. Now explicitly clears WooCommerce’s (and this plugin’s own) cached translations first, so they’re read fresh in the correct language.
0.17.2
- Fixed: on a multilingual store (Polylang/WPML), WooCommerce’s own product-dependent button text — e.g. “Select options” for a variable product — could show in the site’s default language instead of the shopper’s actual language, mixed in with correctly-translated text right next to it. Root cause: the AJAX endpoint this search bar uses has no URL slug for Polylang/WPML to detect the visitor’s language from, so anything computed live during that request (as opposed to preloaded into the page) fell back to the default language. The visitor’s language is now captured while the page renders (where it’s known correctly) and sent along with every search/add-to-cart request, so the whole response is consistently in one language again.
0.17.1
- Fixed: text overrides entered on the Texts tab stopped following Polylang/WPML’s per-language translations after the 0.17.0 rename — a German shop could show a mix of Danish and English instead of German. The plugin hands each override string to Polylang/WPML under a named “group” so it can be translated per language; that group name was accidentally tied to the plugin’s current marketing name and changed every time the plugin was renamed for WordPress.org (Smart Search for WooCommerce -> AJAX Smart Search for WooCommerce -> Seomedseb Smart Search for WooCommerce), which orphaned every translation already saved under the original name. The group name is now a fixed identifier that will never change again, regardless of future renames, so existing Polylang/WPML string translations work again immediately with no re-entry needed.
0.17.0
- Changed: plugin renamed to “Seomedseb Smart Search for WooCommerce” (slug: seomedseb-smart-search) — WordPress.org’s directory review flagged the previous name as too generic and too close to existing search plugins. Every internal function, class, option, table and hook was renamed from the “ssw_”/”SSW_” prefix to “ssws_”/”SSWS_” at the same time, since the old 3-character prefix was below their required minimum. Existing installations migrate automatically on upgrade — no settings are lost and the search index is preserved.
- Removed: the “Custom CSS” field on the Design tab. WordPress.org no longer permits plugins to let users insert arbitrary CSS/JS/PHP, regardless of how it’s sanitized.
- Changed: the Design tab’s CSS custom properties are now attached via
wp_add_inline_style()instead of being echoed directly as a<style>tag, per WordPress.org’s asset-loading guidelines. - Changed: rewrote the plugin description to remove comparative marketing language, per WordPress.org’s content guidelines.
0.16.1
- Fixed: “Search in SKU” (Search config tab) was saved and shown correctly in the settings but never actually consulted by the search itself — SKU was hardcoded into every query’s search columns, so turning the toggle off didn’t stop SKU matches from appearing. Now the toggle is the single source of truth for which columns are searched, including in the typo-tolerant fallback search.
- Fixed: the “Clear search history” link text could not be customized on the Texts tab, even though the setting existed internally and was already translated — it was just missing its own field. Added under a new “Search history” section.
0.16.0
- Added: “Group heading color” (Design tab) — a dedicated color for the “Categories” / “Products” labels above each section of the results list. Previously always a dimmed (55% opacity) version of “Suggestion text” with no color of its own.
- Changed: the product image in the details panel is now ~19% larger (160px 190px) on desktop, where it’s shown — no quality loss, since the source image was already upgraded to a higher resolution.
0.15.3
- Fixed: “Show SKU” (Autocomplete tab) only hid the SKU in the dropdown row — the details panel on the right kept showing it regardless of the setting. Both now follow the same toggle.
0.15.2
- Fixed: product description in the details panel and dropdown rows showed the literal text “…” instead of an ellipsis when a description was long enough to be trimmed.
wp_trim_words()defaults to the HTML-entity string ‘…’ expecting to be echoed into raw HTML, but the panel inserts text through an escaping helper first — so the&got re-escaped and the entity never decoded. Now uses the actual “…” character, which needs no decoding.
0.15.1
- Changed: badge status colors (out of stock, backorder, sale) now default to classic red/amber/green instead of the previous scheme, for instant recognizability.
- Fixed: product images looked soft on high-DPI (retina) screens — the dropdown thumbnail was requesting WordPress’s 150×150 ‘thumbnail’ size, and the details-panel image its 300×300 ‘medium’ size, both undersized once scaled up on a 2x/3x display. Now requests ‘medium’ (300×300) and ‘large’ (1024×1024) respectively. Existing indexed products need a reindex (Indeksering tab “Genopbyg nu”) to pick up the sharper thumbnail; the details-panel image is fetched live and needs no reindex.
- Fixed: dark mode set to “Følg besøgendes OS-indstilling” (auto) could silently override the light-theme search bar colors with the dark-mode colors on a visitor’s device, depending on their OS setting.
0.15.0
- Added: “Product image radius” (Design tab) — rounds the corners of product images consistently in both the autocomplete dropdown thumbnail and the larger image in the details panel. Previously the dropdown thumbnail had a fixed 6px radius and the details panel had none at all; both now follow the same slider.
0.14.9
- Changed: plugin slug renamed from
smart-search-woocommercetosmart-search-for-woocommerce(WordPress.org trademark policy — “woocommerce” may only appear in a slug alongside “for”/”with”/”using”/”and”). Text domain, main file, and translation files renamed to match. - Fixed:
Tested up toin this file was listing a patch version (7.0.3); WordPress.org only accepts major.minor there. - Fixed: 14 Plugin Check false-positive security/escaping findings annotated with
phpcs:ignoreand an explanation, so an automated WP.org review no longer flags safe code.
0.14.8
- Added: “Search in GTIN/EAN” (Search config tab) — indexes WooCommerce’s own core barcode field (GTIN/UPC/EAN/ISBN, product edit screen next to SKU), including per-variation barcodes. On by default. Takes effect after the next reindex (scheduled, or click “Rebuild index” for it immediately).
- Added: “SKU display” (Autocomplete tab) — when a variable product shows as one result, choose between listing every variation’s SKU (previous, only behavior) or just the parent product’s own SKU.
0.14.7
- Changed: multiple SKUs on a variable product (shown when “Product variations” is set to “Parent product only”) were run together with just a space, e.g. “64-01513 64-01512” — now comma-separated for readability.
- Added: “Submit button style” (Search bar tab) — “Filled” (default, unchanged) or “Just the icon/text — no box”, for sites that want the submit control without a distinct button-shaped box next to the input. “Show submit button” still exists separately for removing it entirely.
0.14.6
- Fixed: product titles in the results LIST (not the details panel) were silently inheriting the host theme/page-builder’s text-align instead of being reliably left-aligned. Long titles hid it — an ellipsis-truncated title fills its row edge to edge regardless of alignment — but a short product name would visibly float to the middle of the row while every other row sat flush left (wolftactical.de feedback, e.g. “Pacsafe 20L Rucksack DENIM” centered next to left-aligned neighbors). The results list is now always left-aligned, matching standard search-dropdown convention; the separate right-hand details panel keeps its own admin-configurable left/center setting, unchanged.
0.14.5
- Fixed: on mobile, tapping into the search field could make the whole page jump/zoom and the search bar appear to shoot off-screen. Cause: “Font size (mobile)” defaults to 15px, and iOS Safari auto-zooms the page whenever a focused input’s font-size is under 16px. The actual input now has a 16px floor regardless of the configured font size — everything else in the widget still scales down on mobile exactly as configured.
- Added: “Show ‘Sponsored by’ footer” checkbox on the Autocomplete tab — the small “Sponsored by Smart Search” line in the results dropdown can now be turned off from the admin, no code required (previously only possible via a developer filter).
0.14.4
- Added: full German (de_DE) translation — all 302 admin and shopper-facing strings, matching the existing Danish coverage. Sites with WordPress set to German now show the whole plugin (search bar, results, admin settings and help text) in German automatically, with no configuration needed.
0.14.3
- Fixed: a sale price and the regular price it replaced rendered in the exact same color (both inherited the single Accent/price color), distinguishable only by the strikethrough on the regular price. New “Sale price” and “Regular price (struck through)” fields under a new “Status colors” section on the Design tab.
- Added: admin color control for the four remaining hardcoded colors — the out-of-stock, on-backorder and sale badges, and the “Added” confirmation state on the Add to cart button. All four default to their previous fixed colors, so no existing site changes on upgrade.
0.14.2
- Fixed: the “Add to cart”/”View options” button, “View all products”, and the category-preview “View all” link lost their own color and inherited the surrounding (dark) text color instead — a direct regression from 0.14.0’s link-color isolation fix. That fix’s blanket
.ssw-search a { color: inherit !important; }correctly stopped the theme from bleeding into links that are supposed to inherit, but it also outranked these three links’ own explicit color (their own specificity was lower than the blanket rule’s, even though both carry !important). Found live once real brand colors replaced the plugin’s defaults: white button text on an orange background turned black and unreadable. Each is now re-declared at higher specificity so it keeps its own color again. - Changed: the “Add to cart”/”View options” button now uses the same admin-configurable “Submit button background”/”Submit button text” colors as the search bar’s own submit button, instead of a hardcoded white-on-Accent-color combination with no admin control at all. Both color fields’ help text now says so.
- Added: searching by an exact SKU now highlights the matching part of the SKU in the accent color, the same way a name search highlights the matching part of the title — previously a SKU-only search matched the right row with no visible indication of why.
0.14.1
- Fixed: a custom “Font family” value containing quotes (e.g.
'Inter', system-ui, sans-serif) was silently ignored — esc_html() turned the apostrophes into'entities inside the<style>block, which a stylesheet never decodes, so the browser dropped the invalid value and fell back to the theme’s font. Found while matching wolftactical.de’s brand fonts right after 0.14.0 shipped.
0.14.0
- Fixed: product titles, prices and links inside the results dropdown could silently take on the host theme’s/page-builder’s link color instead of the Design tab’s own colors, when a global
a { color: ... }rule (e.g. from Breakdance) tied in CSS specificity with the plugin’s own selectors and won the cascade on load order. The whole widget’s link color is now locked to its own Design-tab variables regardless of what the theme does elsewhere. - Fixed: products with many SKUs (variable products with several variations folded into one row) could overflow past the edge of the results panel instead of truncating with an ellipsis — a missing
min-width: 0on a flex child meant the “shrink to fit” never actually engaged. Price and stock badges now keep priority; the SKU text is what truncates. - Fixed: the details-panel image (shown when a result is highlighted) was reusing the small 40px result-row thumbnail stretched up to 160px, which looked soft/pixelated. It now resolves its own larger image size directly from the product, live — no reindex needed.
- Added: “Product details alignment” (Design tab) — centered (previous, unchanged default) or left-aligned, for the product name/price/SKU/description in the details panel.
- Added: every Design-tab color swatch now has a paired hex text field, so an exact brand color code can be typed or pasted instead of only picked visually.
- Added: “Clear search history” action next to the Recent Searches heading in the dropdown (English + Danish, like every other shopper-facing string — see Settings Texts).
- Docs: clarified that “Product image size” only affects the compact results list, not the details panel’s own (larger) image.
0.13.2
- Fixed: sites installed before v0.10.3 were still showing “Search for products…” in English to non-English shoppers. Those old versions wrote the untranslated default into the database the first time the tab was saved, and a stored value always beats a translation. v0.10.3 fixed the mechanism but left the frozen values in place; this release clears them. Only exact matches against the old English defaults are removed, so a deliberately customised label is never touched.
0.13.1
- Fixed: the collapsed trigger was still 79px wide instead of the configured 40px. The hidden submit button was clamped with
max-width: 0, but CSS never shrinks a box below its own padding and border — its 14.4px of horizontal padding kept 29px on screen. Those are now zeroed while it is hidden.
0.13.0
- Fixed: the collapsed icon trigger was not compact at all. The widget root is
width: 100%, so the “icon” layout stretched to the full width of its container and kept the bar’s vertical padding — a small magnifying glass floating inside a wide, 74px-tall box. It now hugs its content and renders as a proper square button. - New: “Icon trigger size” (24–72px, default 40) and “Icon trigger shape” (rounded, circle, square) on the Search bar tab. Together with “Collapsed icon style” from 0.12.2, the header trigger can now be matched to a theme’s existing cart and account icons.
- The expanded bar adopts the same height as the trigger, so clicking still never resizes anything.
0.12.4
- Fixed: the remaining 8px of movement in the collapsed icon layouts. The submit button was hidden with
display: none, which removed it from the flex line entirely — so the bar was only as tall as the icon until the button reappeared on focus and pushed the height up. It is now hidden with visibility and zero width instead, keeping its height reserved from the start, so the control is exactly the same size before and after a click.
0.12.3
- Fixed: the collapsed icon layouts grew 20px taller the instant the bar was clicked, because focusing the field added vertical padding that the collapsed state did not have. In a header — the one place this layout is meant for — that pushed the logo, menu and cart icons out of position on every click. Only the width animates now; the height is identical in both states.
0.12.2
- Fixed: on phones the expanded search bar ran off the right edge of the screen, cutting off the submit button. The collapsed-icon layout kept its desktop 220px input width inside the mobile overlay, and a flex item with
flex: 0 0 autocannot shrink — so the form demanded roughly 400px on a screen that had 382px to give. The input now flexes to the space available, and no form can exceed its container. - New: “Collapsed icon style” (Search bar tab) — choose between the boxed trigger and a bare icon with no background, border or shadow, so the trigger can sit alongside a theme’s cart and account icons. The box returns when the bar expands.
0.12.1
- Fixed: the animated placeholder froze mid-word as soon as the search field was clicked, leaving something like ‘Prøv “sham’ next to the cursor for as long as the field stayed focused. It “paused” by rescheduling itself without ever restoring the text, so a working animation looked like truncated output — most visibly in the icon layouts, which focus the field the instant they expand. Pausing now always restores a complete sentence.
- Changed: the rule is now simply “animates while the field is empty and unfocused”. Clicking the bar settles it on the plain Placeholder text immediately, instead of up to 300ms later.
- Changed: the animation stops while the bar is scrolled out of view or the tab is in the background, and restarts from the beginning of a phrase rather than resuming mid-word.
0.12.0
- New: a “Texts” tab holding every one of the 21 strings a shopper can see — group headings, “No results”, “Did you mean”, stock badges, and all the add-to-cart wording. Leave a field empty to use the built-in text, which follows the site’s language. Only two of these were editable before; the other nineteen could only be changed by editing a translation file.
- New: overrides pass through an
ssw_labelfilter and are registered with WPML and Polylang, so a multilingual shop can translate them per language instead of being stuck with whichever one was typed in. - Changed: “No results label” and “More results label” moved off the Autocomplete tab to the new Texts tab. Existing values migrate automatically on update.
- Note: the Texts tab changes wording, not language. Translating the plugin — including the admin screens — is still done with languages/smart-search-for-woocommerce.pot via Poedit or Loco Translate.
0.11.0
- New: a
.pottranslation template ships with the plugin, so any language can be added without touching the source. Danish is complete (244/244 strings); every other language falls back to English until a.pois added. - New: “Product variations” setting (Search config) with three modes — parent product only, each variation as its own result, or variations grouped under the parent. Defaults to parent-only, so upgrading changes nothing until you pick a different mode.
- New: variation results carry their own title (parent name plus the attribute summary, e.g. “Hårbørste Pro – Blå, Large”), price, stock status, SKU and image, and link straight to the preselected variant rather than to the bare product page.
- New: variations can be added to the cart directly from the results panel. Previously anything non-simple only got a “view options” link, which for a variation is a redundant trip — the options were already chosen by picking that row.
- New: “Hide sold-out variations” — keeps the product searchable while leaving out the variations that are out of stock. Distinct from “Exclude out of stock products”, which removes the whole product.
- New: “Max variations per product” caps how many variations are listed under one parent in grouped mode, so a product with dozens of them can’t fill the entire dropdown.
- Fixed: the results page lost the search term. The plugin cleared
sto stop WordPress applying its own search conditions on top of the ranked result list, which also emptied the page heading, the breadcrumb, the document title and the search box — every one of them read “Search results for “””. Core’s search SQL is now blanked directly instead, leaving the term intact. - Fixed: in the two new variation modes, a variable product’s result row printed every child SKU in a row (“HBP-BLA-S HBP-BLA-L HBP-SRT-S HBP-ROD-L”) directly above the same variations listed individually. The parent now shows its own SKU; the index still matches on all of them.
- Fixed: schema changes shipped in an update were never applied.
register_activation_hookonly fires on a real activation, so uploading a new zip over the old one left the table at the previous version — this release adds a version-checked migration that runs on load and triggers a reindex when the index structure changes.
0.10.3
- Fixed: product names could disappear from result rows entirely. The price refused to shrink and a sale item renders two prices side by side, so with a large thumbnail and a badge the row ran out of room and the title — the only flexible element — collapsed to zero width. The title now has a minimum width it can never be squeezed below, and the price may wrap instead.
- Fixed: “Show product description” showed the raw search index blob, so a product with no description displayed its own category and tag names run together as a sentence. It now shows the actual short description (falling back to the full description), pulled live from WooCommerce.
0.8.1
- Fixed (major): every Design tab value was being silently discarded before it reached the search bar. The stylesheet declared each variable as
--x: var( --x, fallback )— a self-reference, which the CSS spec treats as a cycle that makes the property invalid on that element. Colors, font size, spacing, radius and z-index all fell back to theme defaults no matter what was configured. Baseline values are now declared without self-reference, on a lower-specificity selector so the saved settings always win. - Fixed: the results dropdown could be painted over by theme sections below the header (a hero/banner with its own z-index). “Dropdown z-index” previously computed to
autobecause of the bug above, and even once set it only applied to the panel — the whole widget now establishes its own stacking context at the configured z-index.
0.8.0
- New: explicit “Bar height (padding)” and “Bar width padding” controls (Design tab) — the three Spacing presets were previously the only way to influence the bar’s height, with no way to hit an exact value. Leave at 0 to keep using the preset.
- New: “Border width” control (0–8px, 0 = borderless) — border width was hardcoded to 1px.
- New: separate “Icon color”, “Placeholder text color”, “Submit button background” and “Submit button text/icon” colors — these were hardcoded to derive from the bar text / accent color, so e.g. a brand-colored submit button was impossible without custom CSS.
- New: “Font weight” (400–700) and “Letter spacing” controls.
- New: “Max form width (mobile)” (Search bar tab) — set a different maximum width below the breakpoint, e.g. a 480px bar on desktop that goes full width on mobile. Max width now flows through a CSS variable instead of an inline style attribute, which is what made a mobile-specific value impossible before (an inline style always beats a media query).
0.7.1
- Fixed: collapsed icon/overlay layouts (icon, overlay, icon_mobile, icon_desktop, overlay_mobile) showed two search icons side by side — the trailing submit button was never hidden alongside the collapsed input. The submit button now stays hidden until the field is actually focused/expanded, matching the input’s own reveal behavior.
- New: optional “Icon trigger label” (Search bar tab) — shows a short text label (e.g. “SØG”) next to the collapsed icon instead of a bare magnifying glass, matching FiboSearch’s “placeholder text” option. Empty by default (icon only, unchanged from before).
0.7.0
- New: matched search text is now highlighted (accent-colored) inside product titles and category/tag/brand names in the results dropdown.
- New: a “Sale” badge now shows on discounted products in the results list, alongside the existing out-of-stock/backorder badges.
- New: quick “Add to cart” (with a quantity stepper, added via AJAX, no page reload) and “View options” — mirrors what shoppers expect from a details panel: simple in-stock products get instant add-to-cart, variable/grouped/external products get a direct link to the right place on the product page. New “Show quick add-to-cart button” toggle (Autocomplete tab), on by default.
- New: skeleton “shimmer” loading rows for the first search of a session, instead of a blank panel with just a small spinner dot.
- New: result rows fade in with a light stagger instead of appearing all at once.
- New: Danish (da_DK) translation — every admin-screen and frontend-dropdown string now follows the site’s chosen WordPress language automatically, instead of defaulting to English regardless of locale.
- Fixed: default
show_badgeslabel said “(out of stock, etc.)” — now explicitly lists out of stock, backorder, and the new sale badge.
0.6.0
- Fixed: pressing Enter right after typing (without arrow-keying to a result first) fell through to the browser’s native form submit and jumped to a separate, generic WooCommerce results page — the exact jarring “new page” behavior competing plugins are known for. The first result is now kept in sync between its visual highlight and the keyboard state, so Enter acts on it immediately, on the same page, like the rest of the dropdown already does.
- New: “Dropdown z-index” control (Design tab) — raises the results panel above a sticky header, cookie banner, or modal that some themes place on a very high z-index.
- New: a small “Sponsored by Smart Search” line at the bottom of the results dropdown. On by default (this build is 100% free); wired through a filter (
ssw_show_branding) rather than a settings toggle, so a future Pro version could turn it off without needing a UI switch now. - Changed: refreshed the admin header logo — magnifying glass with a small spark inside the lens, three-stop gradient badge — replacing the plain flat icon.
- Changed: default out-of-the-box look is a bit more “pro” — border radius 12px 14px, shadow depth soft medium, and the submit button now has a subtle colored shadow instead of a flat fill. Fully overridable on the Design tab as always.
- Fixed: the search input’s
aria-expandedattribute was hardcoded to “false” in the markup and never actually updated — now kept in sync with whether the results dropdown is open.
0.5.0
Full settings audit — every setting cross-checked end-to-end (schema save handler admin UI what actually consumes it). Found and fixed 8 real disconnects where a setting existed …
