NivoSearch – Ajax Search for WooCommerce
NivoSearch delivers a fast, lightweight WooCommerce Ajax search experience: instant product results appear as customers type, with no page reload required. Built for speed, conversion, and full customization, NivoSearch is a capable alternative to the slow default WooCommerce search.
Give your customers a smooth live product search experience that keeps them engaged and moving toward checkout, without paying for a premium plugin.
Why Store Owners Choose NivoSearch
⚡ Instant Ajax Search Results: Products appear in a scrollable dropdown as customers type. Real-time results with no page reload means faster discovery and fewer abandoned sessions.
🛒 Add to Cart from Search Results: Shoppers can add simple products directly from the search dropdown, complete with an optional quantity selector and instant mini-cart update. Variable products get a quick-link to their product page. Fewer clicks, more conversions.
📋 Rich Product Cards: Each result shows the product thumbnail, title, inline SKU, current price, short description, stock status badge, and category badges, all toggled per preset.
🔍 SKU Search: B2B stores and repeat customers find products instantly by SKU. Supports exact and partial SKU matching alongside title and description search.
📂 Category & Tag Search: Matching product categories and tags appear in dedicated sections above product results, helping customers browse and discover related products.
🗂️ Unlimited Search Presets: Create separate search bars for your header, footer, sidebar, or any page. Each preset has its own search scope, display settings, and styling, deployed via shortcode or Gutenberg block.
⚡ Cached for Speed: Search results are cached with auto-invalidation on product edits, so repeat queries are served in milliseconds without hitting the database.
🌍 Multilingual & Global Ready: Translation-ready with a .pot file included. Compatible with WPML, Polylang, and TranslatePress.
🛠️ Developer-Friendly: 14+ PHP hooks and filters, 8 JavaScript events, PSR-4 autoloading, nonce-secured AJAX endpoints. Clean, well-documented architecture built to extend.
WooCommerce Ajax Search Features
Search Capabilities
- Real-time Ajax product search on every keystroke
- Search by product title, short description, description, and SKU
- Category and tag search with dedicated result sections
- Exclude out-of-stock products from results
- Configurable minimum character threshold
- Configurable results limit per preset
- Configurable search delay (debounce) per preset
Display Options (per preset)
- Product thumbnail with lazy loading
- Product title with keyword highlighting
- Inline SKU display (right of title)
- Current selling price
- Short description excerpt
- Stock status badge: In Stock, Out of Stock, On Backorder
- Category badges on each result
- Add-to-cart button (AJAX) with optional quantity selector
- Instant mini-cart fragment update after add-to-cart
- „View All Results“ sticky footer link
- Separate sections for matching categories and tags
Unlimited Search Presets
- Unlimited presets stored as a native WordPress custom post type
- Independent search scope, display settings, and styling per preset
- Shortcode:
[nivo_search id="123"] - Gutenberg block with visual preset selector
- Color picker for search bar and results panel
- Custom CSS class support via shortcode attributes
Performance & Reliability
- Transient-cached Ajax responses (5-minute TTL, auto-invalidated)
- Single optimized WP_Query per request
- Target response time under 200ms
- Database migration system for safe zero-downtime updates
- Preset data preserved on plugin deletion by default (opt-in cleanup)
- WooCommerce HPOS compatible
Developer Features
- PSR-4 autoloading via Composer
- 14+ WordPress actions and filters
- 8 JavaScript custom events
- Nonce-secured Ajax endpoints
- Translation-ready, .pot file included
- WPML and Polylang compatible
- Inline PHPDoc documentation throughout
Coming Soon
- Fuzzy search & typo tolerance: finds „iPhon“ and returns „iPhone“
- Synonym expansion: „phone“ finds „mobile,“ „smartphone“
- GTIN / UPC / EAN / ISBN search support
- Product attribute search
- Custom index engine (Pro): sub-100ms on 100,000+ product catalogs
- REST API endpoints (Pro): headless WooCommerce search
- Template overrides (Pro): full HTML control over result items
- Search analytics dashboard (Pro)
Compatibility
- Themes: Storefront, Astra, OceanWP, Flatsome, Hello Elementor, WoodMart, Kadence, GeneratePress, and all standard WooCommerce-compatible themes
- Page builders: Gutenberg, Elementor, Beaver Builder, WPBakery
- Caching: WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache
- Multilingual: WPML, Polylang, TranslatePress, translation-ready (.pot file included)
- WooCommerce: HPOS compatible, supports variable products, grouped products, and external products
Quick Start
- Go to NivoSearch > Search Presets > Add New
- Set your results limit, minimum characters, and placeholder text
- Choose what to search: title, SKU, description, categories, tags
- Choose what to display: images, price, SKU, descriptions
- Customize colors and sizing using the built-in style controls
- Click Publish, your shortcode is generated automatically
- Paste
[nivo_search id="123"]into any page, post, widget, or template
Developer Hooks
PHP Filters
nivo_search_args: Modify search query arguments before execution.
nivo_search_results: Modify the full results array before the JSON response.
nivo_search_result_item: Modify an individual product result item.
nivo_search_shortcode_html: Override the complete shortcode HTML output.
nivo_search_localize_data: Modify the JavaScript localization data object.
nivo_search_should_enqueue_assets: Return false to conditionally skip asset loading.
nivo_search_typo_corrections: Register a custom typo correction map (array of misspelling to correction).
nivo_search_synonyms: Register synonym groups (array of term to array of synonyms).
JavaScript Events
nivo_search:init: Search widget initialized.
nivo_search:beforeSearch: Fired before an Ajax request is sent.
nivo_search:resultsDisplayed: Fired after results are rendered in the dropdown.
nivo_search:noResults: Fired when the search returns zero products.
nivo_search:error: Fired when an Ajax error occurs.
nivo_search:resultsCleared: Fired when the results dropdown is cleared.
nivo_search:focus: Fired when the search input receives focus.
nivo_search:blur: Fired when the search input loses focus.<h3>Developer</h3>
NivoSearch is developed and maintained by Nazmun Sakib.
Privacy: NivoSearch collects no user data, sends no external analytics, and is 100% GPL-licensed.
