Title: Heurix Search for WooCommerce
Author: heurix
Published: <strong>September 28, 2026</strong>
Last modified: September 28, 2026

---

Search plugins

![](https://ps.w.org/heurix-search-for-woocommerce/assets/banner-772x250.png?rev
=3716551)

![](https://ps.w.org/heurix-search-for-woocommerce/assets/icon-256x256.png?rev=3716551)

# Heurix Search for WooCommerce

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

[Download](https://downloads.wordpress.org/plugin/heurix-search-for-woocommerce.0.2.1.zip)

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

 [Support](https://wordpress.org/support/plugin/heurix-search-for-woocommerce/)

## Description

Heurix Search intercepts WooCommerce product search and replaces the results
 with
ones computed by the Heurix engine — without touching your templates, your faceted
filters or your product pages. Only which products come out, and in what order, 
changes.

**What the plugin does:**

 * Indexes your published catalog into your Heurix account
 * Re-syncs each product when it is saved (price, stock, new product)
 * Replaces native search results with Heurix’s, in the relevance order returned
 * Steps aside silently — native WooCommerce search, unchanged — when Heurix is
   
   temporarily unreachable

**What the plugin does not do (v0.2.1):**

 * It does not search variation attributes separately (colour, size): the parent
   
   product is indexed, not each individual variation

#### Compatibility: what has actually been run

The headers above carry only versions that have REALLY BEEN RUN. Recorded on
 22
September 2026, completed on the 23rd.

ONE OF THOSE LINES IS LESS PRECISE THAN THE MEASUREMENT, AND THE PARSER IS WHY.

Tested up to says 7.1; WordPress 7.1.2 is what ran. Plugin Check 2.1.0 — the official
wordpress.org tool — rejects the third number: “invalid_tested_upto_minor […] should
only include major versions 7.1”, an ERROR, measured on this plugin on 23 September
2026. The exact number is on the WordPress line below.

 * PHP 8.1.34 and 8.5.10: the tests/ suites, green on both (49 assertions on the
   
   morning of 22 September, 59 after the two suites added that day). The version
   announced before that day was 7.4, and 7.4 had never been run once.
 * WordPress 5.9 to 7.1.2: RUN. 7.1.1 and 7.1.2 on the circuit-breaker bench
    (MariaDB
   12.3.3, and SQLite through the SQLite Database Integration plugin 3.0.2), then
   5.9.18, 6.0.16, 6.1.14, 6.3.12, 6.5.12, 6.7.9 and 6.9.9 on 23 September 2026,
   each with a WooCommerce that accepts it, inside a real product loop. The records
   carry the version (`wordpress.version`) and the archive verified against its 
   published sha1. The lower bound is measured under PHP 8.1, and it is WordPress
   that sets it, not this plugin: 5.8.17 and 5.6.21 do not start under PHP 8.1, 
   because mysqli throws by default there and their `wp-db.php` does not set mysqli_report(
   MYSQLI_REPORT_OFF ). That line appears in WordPress 5.9, with the WordPress comment
   that names PHP 8.1. NOT MEASURED: WordPress 5.8 and earlier under a PHP they 
   accept (they go down to 5.6.20). That would need a PHP 7.x, ruled out on 23 September—
   the Homebrew formula has been dead since 2022, it would mean a third-party tap
   and one more php-fpm. That gap cannot open on a merchant’s site: WordPress refuses
   to activate a plugin whose `Requires PHP` is not satisfied, and ours asks for
   8.1.
 * WooCommerce 6.1 to 11.1.2: RUN, on 23 September 2026. Thirteen versions played
   
   inside a real product loop, on WordPress 7.1.2 (tests/banc-disjoncteur, crochets
   scenario). What was checked each time: that WooCommerce sets posts_per_page before
   the plugin reads it, that the Customizer’s loop_shop_per_page takes effect, that
   the order returned by Heurix survives the loop, and that page two returns the
   next slice. The lower bound is measured, not chosen: 6.0.0 does not hold (`loop_shop_per_page`
   has no effect, page 2 comes out empty), 6.1.0 holds. The lines “WC requires at
   least: 7.0” and “WC tested up to: 9.0” announced until 22 September rested on
   nothing at all. Not measured: the intermediate versions of each branch (the runs
   cover 4.9.5, 5.9.2, 6.0.0, 6.1.0, 6.2.0, 6.3.0, 6.5.0, 6.7.0, 6.9.5, 7.0.0, 7.9.2,
   8.9.5, 9.9.7, 10.9.4, 11.1.2), and WooCommerce 3.9.5, which stops on a PHP error
   before reaching the measurement.

What this means for you: on WooCommerce 6.0 or older, Heurix search shows the
 first
page and returns an empty second one. The plugin does not detect this — it does 
not read the WooCommerce version, only whether it is present.

THE TWO BOUNDS GUARD EACH OTHER, AND THAT IS MEASURED. WordPress refuses to
 activate
a plugin whose `Requires at least` or `Requires PHP` is not satisfied — verified
on 23 September 2026, both ways:

    ```
    "Current WordPress version (6.9.9) does not meet minimum requirements
     [...] The plugin requires WordPress 7.1."
    "Current versions of WordPress (6.9.9) and PHP (8.1.34) do not meet
     minimum requirements [...] requires WordPress 7.1 and PHP 9.9."
    ```

So “Requires at least: 5.9” is not an idle line. WordPress 5.9 to 6.2 officially

accept PHP 5.6.20, and we have exercised them only under 8.1 — but a site on PHP
7.x cannot activate this plugin at all, since `Requires PHP: 8.1` forbids it. What
we have not measured therefore cannot happen on a merchant’s site.

“Requires PHP: 8.1” IS STILL A PRECAUTIONARY BOUND. 8.1.34 and 8.5.10 are
 exercised;
nothing below. It is the one holding the whole thing up, and it has never been taken
down.

A THIRD BOUND, DECLARED ON PURPOSE: WooCommerce MUST BE ACTIVE TO ACTIVATE THIS

PLUGIN, on WordPress 6.5 and later. That is the plugin dependency header, added 
at the request of the wordpress.org review. Two things it is worth knowing, measured
on 27 September 2026:

 * WordPress resolves the dependency by the NAME OF THE INSTALLED FOLDER, not by
   
   WooCommerce itself. If your WooCommerce lives in a folder that is not called 
   woocommerce, WordPress will refuse to activate this plugin even though WooCommerce
   is running and the plugin would work. Rename the folder to woocommerce, or install
   WooCommerce from wordpress.org.
 * A plugin that is ALREADY ACTIVE is not deactivated if the dependency stops
    being
   satisfied. Upgrading to a version carrying this header cannot turn your search
   off.

On WordPress 5.9 to 6.4 the header does nothing at all — it is ignored in
 silence,
and does not even show on the Plugins screen. There, as before, the plugin activates
without WooCommerce and simply does nothing: it tells you so on the Plugins screen,
and native WooCommerce search is untouched.

#### Requirements

An active Heurix account, with a server API key (prefix `hx_`) and a catalog
 created.
See [heurix.fr/docs](https://heurix.fr/en/docs.html) to get started.

#### The external service, what it costs, and what it receives

This plugin is an interface to Heurix, a hosted search service
 (https://heurix.
fr). Ranking, typo tolerance and trade synonyms are computed by the service; the
plugin handles indexing and the replacement of results.

**No feature of the plugin is locked, time-limited, or held back for a paid
 version.

All the code shipped is active from activation onwards, with no
 licence key and
no subscription check, and the zip contains no dormant code waiting to be unlocked.
What you pay for is the service, not the plugin.

Service pricing, as of 23 September 2026: from EUR 19 excl. VAT per month on
 monthly
billing, with a 14-day free trial and no credit card required (see [heurix.fr/pricing](https://heurix.fr/en/pricing.html)).**
The trial is not a sandbox: it is the full service, and the same API key keeps working
unchanged once you subscribe. No feature appears or disappears at that point.

Terms of Service: https://heurix.fr/en/cgv.html

#### What is sent to Heurix, and when

Nothing leaves your site until you have entered your API key on the
 WooCommerce
> Heurix Search settings page. Entering it is what grants consent; without it the
plugin opens no outbound connection at all.

At indexing time (manually, then whenever a published product is saved or
 deleted),
for each product: its WooCommerce ID, its SKU, its name, its description, its stock
state, its price, its public URL, its brand and its main category.

On each visitor search: the term typed, the number of results requested and the

pagination offset. **Nothing else.** The plugin sends no IP address, no visitor 
ID, no cookie and no browser header, and it does not read `$_SERVER`. Every request
leaves from the WordPress server; the visitor’s browser never contacts Heurix and
never sees the API key.

Privacy policy: https://heurix.fr/en/privacy.html

If the service stops responding, native WooCommerce search takes back over
 automatically:
the shop stays usable without an active subscription.

## Screenshots

[⌊WooCommerce > Heurix Search: your API key (never displayed), your catalog, and

the rule packs the engine publishes -- read when you save the key, with the date

they were read. The report of the last full indexing run is at the bottom.⌉⌊WooCommerce
> Heurix Search: your API key (never displayed), your catalog, and
the rule packs
the engine publishes -- read when you save the key, with the date
they were read.
The report of the last full indexing run is at the bottom.⌉[

WooCommerce > Heurix Search: your API key (never displayed), your catalog, and the
rule packs the engine publishes — read when you save the key, with the date they
were read. The report of the last full indexing run is at the bottom.

[⌊When Heurix does not answer, native WooCommerce search serves the shop --
silently
for your visitors, and no longer silently for you. One line per cause,
with how 
many searches, the first one and the last one, and a button to reset
the counter.⌉⌊
When Heurix does not answer, native WooCommerce search serves the shop --
silently
for your visitors, and no longer silently for you. One line per cause,
with how 
many searches, the first one and the last one, and a button to reset
the counter
.⌉[

When Heurix does not answer, native WooCommerce search serves the shop — silently
for your visitors, and no longer silently for you. One line per cause, with how 
many searches, the first one and the last one, and a button to reset the counter.

[⌊A results page, as a visitor sees it. The term was typed with a mistake --
"vis
hexagonle" -- and the products found are spelled correctly. Native
WooCommerce search
returns nothing at all for that query, on this same shop.⌉⌊A results page, as a 
visitor sees it. The term was typed with a mistake --
"vis hexagonle" -- and the
products found are spelled correctly. Native
WooCommerce search returns nothing 
at all for that query, on this same shop.⌉[

A results page, as a visitor sees it. The term was typed with a mistake — “vis hexagonle”—
and the products found are spelled correctly. Native WooCommerce search returns 
nothing at all for that query, on this same shop.

## Installation

 1. Upload the `heurix-search` folder to `/wp-content/plugins/`
 2. Activate the plugin from the WordPress Plugins menu
 3. Go to WooCommerce > Heurix Search
 4. Enter your API key and your catalog name
 5. Test the connection, then run a full indexing
 6. Run a search on your shop to check the result

## FAQ

### What happens if Heurix is unavailable?

Native WooCommerce search takes back over automatically — visitors see no
 outage.

### Does the plugin modify my WooCommerce products?

No. It reads your products in order to index them on the Heurix side, but it
 never
writes to your WooCommerce database.

### Is my API key exposed to visitors’ browsers?

No. Every request to Heurix leaves from the WordPress server, never from the
 visitor’s
browser.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Heurix Search for WooCommerce” is open source software. The following people have
contributed to this plugin.

Contributors

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

[Translate “Heurix Search for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/heurix-search-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/heurix-search-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/heurix-search-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/heurix-search-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/heurix-search-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.2.1

**Your search page says what was searched again.**

Since 0.2.0, a results page served by Heurix announced an empty search. The
 term
was missing from the page title, from the heading, from the breadcrumb, from the
RSS feed — and, worst of all, from the search box itself: a visitor who mistyped
could not correct the query, they had to retype it. Measured on 28 September 2026
on two themes, one block-based and one classic, pages 1 and 2.

The cause: to stop WordPress from adding its own `LIKE %term%` to the list of
 products
Heurix returned — which would have dropped exactly the results the engine is paid
to find, the ones matched by synonym or despite a typo — the plugin emptied the 
search term from the query. Everything that displays the term reads it from there.

It now empties the SQL clause instead of the term. The database query is
 byte-for-
byte identical; only the page changed.

One thing it did NOT affect, and it is the unpleasant part: a search where
 Heurix
found NOTHING was always correct. The bug only showed when the plugin was doing 
its job.

#### 0.2.0

First release on wordpress.org. 0.1.0 was never published here; what follows is

what changed since it. If you are installing for the first time, read it as a description
of what the plugin does.

**What it does when Heurix does not answer**

 * Native WooCommerce search takes over, one search at a time, as it already
    did—
   and you can now SEE it happen. WooCommerce > Heurix Search lists the searches
   that were served by native search instead of Heurix: a count, the first one and
   the last one, for each of four causes (all call slots taken, circuit breaker 
   open, call failed, rejected by the engine). A button resets the counter. In 0.1.0
   this was invisible: a shop could run for weeks on native search without anything
   saying so.
 * At most two searches wait for Heurix at the same time; a third one goes
    straight
   to native search. Without that limit, a Heurix that was slow but alive saturated
   the shop: six simultaneous searches held the five processes of a default PHP-
   FPM pool for three seconds, and a page that searched nothing waited 2.8 seconds
   for its turn.
 * The circuit breaker opens after 2 failed searches within 60 seconds, and
    stays
   open for 60 seconds. 0.1.0 needed 3.
 * The search timeout is a setting now, 3 seconds by default. Past it, that
    search
   is answered by native WooCommerce search. In 0.1.0 the 3 seconds were fixed in
   the code.
 * WordPress on SQLite works — WordPress Playground, or the SQLite Database
    Integration
   plugin. Both mechanisms above need MySQL features that SQLite does not have, 
   and they fall back to a form it does. Before, the two call slots looked permanently
   taken there and NO search ever reached Heurix.
 * When the engine rejects your API key or your catalog, a notice says so on
    your
   product screens, with the count and the date of the last one. Same for an indexing
   run that was rejected. You no longer have to open the settings page to find out.

**What it shows you**

 * The rule packs on the settings page are the list published by the engine,
    read
   when you save your key, with the date it was read and a button to read it again.
   A pack name you typed that the engine does not list is shown as such. In 0.1.0
   the field was free text and the readme sent you to your Heurix console.
 * The indexing report says how many products were processed, how many failed,
    
   the cause of the first failure, and whether the run stopped there.

**What it supports**

 * Result pages past the first hundred. 0.1.0 asked Heurix for the first 100
    products
   on every page and let WordPress paginate inside them: at 16 per page you got 
   7 pages and then a 404, on a catalog where the engine had found 3,334 matches.
   Heurix now serves the page you asked for, and the result count shown is the engine’s
   total, not the size of one page.
 * A shop that shows more than 100 products per page, or “show all”: the
    search
   page falls back to 100, which is the engine’s own ceiling. In 0.1.0 every single
   one of those searches fell back to native search.
 * Declared compatibility is measured now, not hoped: WordPress 5.9 to 7.1,
    WooCommerce
   6.1 to 11.1.2, PHP 8.1 and 8.5. Each lower bound is the version where the plugin
   stops working, found by trying them one at a time — the section “Compatibility:
   what has actually been run” says what was run and on what. 0.1.0 announced WordPress
   6.0, WooCommerce 7.0 and PHP 7.4; none of the three had ever been run.
 * Every screen of the plugin, and this page, are in English. 0.1.0 was in
    French.

#### 0.1.0

 * First release: search interception, initial batch indexing, automatic re-sync
   on save and on delete, a circuit breaker (3 consecutive failures, network and
   5xx only, reset after 60 seconds) that degrades immediately to native search 
   during an outage, and a settings page.

## Meta

 *  Version **0.2.1**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.9 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [ecommerce](https://wordpress.org/plugins/tags/ecommerce/)[search](https://wordpress.org/plugins/tags/search/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/heurix-search-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/heurix-search-for-woocommerce/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/heurix-search-for-woocommerce/)