Title: Seomedseb Smart Search for WooCommerce
Author: SEOmedSEB
Published: <strong>September 23, 2026</strong>
Last modified: September 23, 2026

---

Search plugins

![](https://ps.w.org/seomedseb-smart-search/assets/banner-772x250.png?rev=3709804)

![](https://ps.w.org/seomedseb-smart-search/assets/icon-256x256.png?rev=3709804)

# Seomedseb Smart Search for WooCommerce

 By [SEOmedSEB](https://profiles.wordpress.org/seomedseb/)

[Download](https://downloads.wordpress.org/plugin/seomedseb-smart-search.0.18.4.zip)

 * [Details](https://wordpress.org/plugins/seomedseb-smart-search/#description)
 * [Reviews](https://wordpress.org/plugins/seomedseb-smart-search/#reviews)
 *  [Installation](https://wordpress.org/plugins/seomedseb-smart-search/#installation)
 * [Development](https://wordpress.org/plugins/seomedseb-smart-search/#developers)

 [Support](https://wordpress.org/support/plugin/seomedseb-smart-search/)

## Description

Seomedseb Smart Search for WooCommerce is a fast, self-hosted AJAX search plugin
for WooCommerce stores, focused on two things:

 1. **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.
 2. **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_posts` `LIKE` queries)
 * 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

 1. Shortcode: `[smart_search_bar]`
 2. Widget: Appearance  Widgets  “Smart Search bar”
 3. PHP: `<?php echo do_shortcode( '[smart_search_bar]' ); ?>`

## Blocks

This plugin provides 1 block.

 *   Smart Search bar

## Installation

 1. Upload the `seomedseb-smart-search` folder to `/wp-content/plugins/`, or install
    the zip via Plugins  Add New  Upload Plugin.
 2. Activate the plugin. WooCommerce must already be installed and active.
 3. The plugin will automatically build its search index in the background. Check progress
    under WooCommerce  Smart Search  Indexer.
 4. 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.

Contributors

 *   [ SEOmedSEB ](https://profiles.wordpress.org/seomedseb/)

[Translate “Seomedseb Smart Search for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/seomedseb-smart-search)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/seomedseb-smart-search/),
check out the [SVN repository](https://plugins.svn.wordpress.org/seomedseb-smart-search/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/seomedseb-smart-search/)
by [RSS](https://plugins.trac.wordpress.org/log/seomedseb-smart-search/?limit=100&mode=stop_on_copy&format=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 to` was 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 the `Domain Path: /languages` header 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 URI` now 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_locale` filter — 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-woocommerce` to `smart-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 to` in 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:ignore` and 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`&#
   039;` 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: 0` on 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 auto` 
   cannot 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_label` filter 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 `.pot` translation 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 `.po` is 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 `s` to 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_hook`
   only 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 `auto` because 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_badges` label 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-expanded` attribute 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 …

## Meta

 *  Version **0.18.4**
 *  Last updated **21 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [ajax search](https://wordpress.org/plugins/tags/ajax-search/)[autocomplete](https://wordpress.org/plugins/tags/autocomplete/)
   [product search](https://wordpress.org/plugins/tags/product-search/)[search](https://wordpress.org/plugins/tags/search/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/seomedseb-smart-search/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/seomedseb-smart-search/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/seomedseb-smart-search/reviews/)

## Contributors

 *   [ SEOmedSEB ](https://profiles.wordpress.org/seomedseb/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/seomedseb-smart-search/)