Title: Allergen Exclusion Filter for WooCommerce
Author: TecnologiaPa'Todos
Published: <strong>12 januari 2026</strong>
Last modified: 5 juli 2026

---

Plugins zoeken

![](https://ps.w.org/allergen-exclusion-filter/assets/icon-256x256.png?rev=3597145)

# Allergen Exclusion Filter for WooCommerce

 Door [TecnologiaPa’Todos](https://profiles.wordpress.org/tecnologiapatodos/)

[Download](https://downloads.wordpress.org/plugin/allergen-exclusion-filter.1.3.0.zip)

 * [Details](https://nl.wordpress.org/plugins/allergen-exclusion-filter/#description)
 * [Beoordelingen](https://nl.wordpress.org/plugins/allergen-exclusion-filter/#reviews)
 *  [Installatie](https://nl.wordpress.org/plugins/allergen-exclusion-filter/#installation)
 * [Ontwikkeling](https://nl.wordpress.org/plugins/allergen-exclusion-filter/#developers)

 [Ondersteuning](https://wordpress.org/support/plugin/allergen-exclusion-filter/)

## Beschrijving

**Allergen Exclusion Filter for WooCommerce** allows your customers to filter the
product catalog by excluding specific ingredients or allergens they want to avoid.
Ideal for food stores, bakeries, pharmacies, herbalists and any shop that needs 
to guarantee safe products for people with allergies or dietary restrictions.

#### Main Features

 * **Three display modes:** Simple bar, full Block card, and Compact bar for headers
   and sidebars.
 * **Fully customizable:** Editable title, description, placeholder, button text,
   background color, button color and bar width.
 * **AJAX autocomplete:** Live suggestions while typing, with keyboard navigation(
   WAI-ARIA combobox pattern).
 * **Tag-style interface:** Selected allergens become removable pills.
 * **Direct redirection mode:** The Compact mode redirects to the shop page without
   AJAX, keeping layouts clean.
 * **Icon or text button:** Use a magnifying glass icon or custom text in any mode.
 * **Multiple instances:** Place several shortcodes on the same page (e.g. compact
   in the header and simple in the body), they work independently.
 * **WCAG 2.1 accessibility:** role=”combobox”, aria-expanded, aria-controls, aria-
   activedescendant, aria-live, keyboard navigation.
 * **Security first:** Nonces, sanitization, escaping, capability checks, rate limiting
   on autocomplete, defense in depth on colors.
 * **HPOS compatible:** Uses the native wc_get_products() API for future-proof WooCommerce
   compatibility.
 * **Performance:** Transient-based caching for autocomplete, automatic cache invalidation
   on term changes.
 * **WooCommerce dependency check:** Graceful admin notice if WooCommerce is not
   active.

## Schermafbeeldingen

[⌊Assigning allergens (like milk or wheat) to a product using the admin meta box.⌉⌊
Assigning allergens (like milk or wheat) to a product using the admin meta box.⌉[

Assigning allergens (like milk or wheat) to a product using the admin meta box.

[⌊The unified admin page with "Usage" and "Settings" tabs.⌉⌊The unified admin page
with "Usage" and "Settings" tabs.⌉[

The unified admin page with “Usage” and “Settings” tabs.

[⌊The settings page: display mode, custom texts, appearance (colors and widths) 
and search engine options.⌉⌊The settings page: display mode, custom texts, appearance(
colors and widths) and search engine options.⌉[

The settings page: display mode, custom texts, appearance (colors and widths) and
search engine options.

[⌊The Block mode on the frontend: full card with title, description and search form.⌉⌊
The Block mode on the frontend: full card with title, description and search form
.⌉[

The Block mode on the frontend: full card with title, description and search form.

## Installatie

 1. Upload the plugin folder to the `/wp-content/plugins/` directory.
 2. Activate the plugin through the ‘Plugins’ menu in WordPress.
 3. Make sure WooCommerce is installed and active.
 4. Go to **Products > Allergens** and create your ingredient categories.
 5. Assign allergens to your products.
 6. Insert the `[allergen_exclusion_filter]` shortcode on the desired page.
 7. Visit **WooCommerce > Allergen Search Engine** to customize the texts, colors and
    layout.

## FAQ

### Does it work with any theme?

Yes, it has been tested with popular themes such as Flatsome and Storefront. The
Compact mode uses ultra-specific CSS selectors to override theme styles on the input.

### Does it require WooCommerce?

Yes, this plugin is specifically designed to work with WooCommerce product and catalog
logic. If WooCommerce is not active, the plugin shows a graceful admin notice and
does not load.

### Can I place multiple search bars on the same page?

Yes. You can place a Compact mode in the header and a Simple or Block mode in the
body. Each instance works independently with its own autocomplete, tags and results.

### Is it compatible with HPOS (High-Performance Order Storage)?

Yes. Since v1.3.0 the plugin uses the native wc_get_products() API instead of WP_Query,
ensuring compatibility with HPOS and future WooCommerce storage migrations.

### Can I translate the texts?

Yes. The default texts are in English and can be translated with Loco Translate 
or any translation plugin. You can also override them directly from the Settings
page with your own custom texts.

## Beoordelingen

Er zijn geen beoordelingen voor deze plugin.

## Bijdragers & ontwikkelaars

“Allergen Exclusion Filter for WooCommerce” is open source software. De volgende
personen hebben bijgedragen aan deze plugin.

Bijdragers

 *   [ TecnologiaPa'Todos ](https://profiles.wordpress.org/tecnologiapatodos/)

“Allergen Exclusion Filter for WooCommerce” is vertaald in 1 locale. Dank voor [de vertalers](https://translate.wordpress.org/projects/wp-plugins/allergen-exclusion-filter/contributors)
voor hun bijdragen.

[Vertaal “Allergen Exclusion Filter for WooCommerce” in je eigen taal.](https://translate.wordpress.org/projects/wp-plugins/allergen-exclusion-filter)

### Interesse in ontwikkeling?

[Bekijk de code](https://plugins.trac.wordpress.org/browser/allergen-exclusion-filter/),
haal de [SVN repository](https://plugins.svn.wordpress.org/allergen-exclusion-filter/)
op, of abonneer je op het [ontwikkellog](https://plugins.trac.wordpress.org/log/allergen-exclusion-filter/)
via [RSS](https://plugins.trac.wordpress.org/log/allergen-exclusion-filter/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.0

🚀 New Features
 – Added a unified admin page with tabs (Usage and Settings) under
the WooCommerce menu. – Added a configurable Settings page using the WordPress Settings
API. – Added three display modes for the shortcode: Simple, Block and Compact. –
Added the `mode` attribute to force a specific layout: `[allergen_exclusion_filter
mode="simple|block|compact"]`. – Added the `button_icon` attribute to show an icon(
magnifying glass) or text in the button: `[allergen_exclusion_filter button_icon
="yes|no"]`. – Added configurable custom texts: block title, block description, 
input placeholder, button text and initial results message. – Added configurable
background color for the Block mode. – Added configurable button color for all modes.–
Added configurable search bar width (slider 30-100%) for Simple and Block modes.–
Added configurable search bar width (slider 150-600px) for Compact mode. – Added
Compact mode with direct redirection to the shop page (no AJAX, no autocomplete,
no inline results) — ideal for headers and sidebars. – Added icon button (SVG magnifying
glass) for Compact mode by default. – Added multi-instance support: multiple shortcodes
on the same page now work independently. – Added keyboard navigation (arrow keys,
Enter, Escape) for the autocomplete suggestions following the WAI-ARIA combobox 
pattern. – Added a “No matching allergens found” message when the autocomplete returns
empty results. – Added ARIA attributes (role=”combobox”, aria-expanded, aria-controls,
aria-activedescendant, aria-live) for full screen-reader accessibility. – Added 
a simple rate limiter (1 request per second per IP) on the autocomplete endpoint
to prevent enumeration attacks. – Added a transient-based cache (1 hour TTL) for
autocomplete queries to reduce database load. – Added automatic cache invalidation
when allergen terms are created, edited, or deleted. – Added a graceful admin notice
when WooCommerce is not active. – Added a deactivation hook to flush rewrite rules
and prevent residual 404s.

⚡ Performance Improvements
 – Replaced WP_Query with the native wc_get_products()
API for HPOS compatibility and future-proof storage migrations. – Replaced the double
get_term_by() lookup (slug + name) with a single get_terms() query using the slug
parameter. – Native WooCommerce catalog visibility is now respected automatically(
no manual tax_query needed). – Centralized plugin version in the SAEF_VERSION constant
for proper cache-busting of CSS/JS assets.

🔒 Security
 – Added a dependency check that prevents the plugin from loading if
WooCommerce is not active (avoids fatal errors on wc_get_product() and wc_get_page_id()
calls). – Added a defensive WooCommerce check inside both AJAX endpoints (saef_filter_allergens
and saef_autocomplete_allergens) to respond cleanly instead of crashing. – Restricted
pre_get_posts filter to is_shop() and is_product_taxonomy() only, preventing unintended
interference with other archives. – Sanitized each slug received via URL with sanitize_title()
before using it in tax_query. – Applied sanitize_hex_color() defense in depth on
background and button colors (read time). – Removed redundant wp_die() calls after
wp_send_json_success() to avoid confusion in the execution flow.

🐛 Bug Fixes
 – Fixed hardcoded site name in the dynamic results page title; now
uses get_bloginfo(‘name’). – Fixed an unclosed ** HTML tag in the dynamic results
page title that could break rendering in some browsers. – Fixed the autocomplete
dropdown being hidden behind other page elements by removing the stacking context
created by .saef-card and raising the dropdown z-index to 99999. – Fixed the autocomplete
dropdown overflow being clipped by changing overflow from hidden to visible and 
adding a max-height with vertical scroll. – Fixed load_plugin_textdomain not being
called (it was commented out), so translations are now properly loaded from the /
languages directory. – Fixed hardcoded CSS/JS versions (‘1.0’, ‘1.1’) replaced with
the SAEF_VERSION constant for consistent cache-busting. – Fixed the Compact mode
breaking the header layout when the AJAX results were injected inside it: the Compact
mode now redirects directly to the shop page. – Fixed the Simple and Block modes
not working when a Compact mode was present on the same page: all selectors migrated
from IDs to classes with multi-instance support. – Fixed the theme (Flatsome) adding
a visible border inside the search input by using ultra-specific selectors. – Reduced
the search bar and button height from 64px to 48px for a more compact and modern
look. – Reworded the dynamic results page title to a more natural phrasing: “These
are the X products on SITE that do not contain ALLERGEN among their ingredients”.

🎨 Accessibility (WCAG 2.1)
 – Added role=”search” and aria-label to the search 
form. – Added role=”combobox”, aria-autocomplete=”list”, aria-expanded, aria-controls
and aria-activedescendant to the search input. – Added role=”listbox” to the autocomplete
container and role=”option” to each suggestion. – Added aria-live=”polite” and aria-
atomic=”true” to the results container so screen readers announce AJAX results. –
Added a visible focus state (.saef-active) for keyboard navigation with high-contrast
colors. – Added a non-clickable visual style for the “No results” message to distinguish
it from selectable options.

🛠️ Developer Notes
 – Added SAEF_VERSION and SAEF_PLUGIN_BASENAME constants in the
main plugin file. – Added conditional loading of the SAEF_Settings class with file_exists()
for graceful degradation. – Added a static helper SAEF_Settings::saef_get_option()
so the frontend can read settings without instantiating the settings class. – Migrated
all HTML selectors from IDs to classes to support multiple shortcode instances on
the same page. – All new code is commented bilingually (Spanish + English) for easier
maintenance.

#### 1.1.0

 * Added official plugin icon and banner.
 * Internal performance and code improvements.

## Meta

 *  Versie **1.3.0**
 *  Laatst geüpdatet **3 maanden geleden**
 *  Actieve installaties **Minder dan 10**
 *  WordPress versie ** 5.8 of nieuwer **
 *  Getest t/m **7.0.7**
 *  PHP versie ** 7.4 of nieuwer **
 *  Talen
 * [English (US)](https://wordpress.org/plugins/allergen-exclusion-filter/) en [Spanish (Chile)](https://cl.wordpress.org/plugins/allergen-exclusion-filter/).
 *  [Vertaal in je eigen taal](https://translate.wordpress.org/projects/wp-plugins/allergen-exclusion-filter)
 * Tags
 * [allergens](https://nl.wordpress.org/plugins/tags/allergens/)[product filter](https://nl.wordpress.org/plugins/tags/product-filter/)
   [woocommerce](https://nl.wordpress.org/plugins/tags/woocommerce/)
 *  [Geavanceerde weergave](https://nl.wordpress.org/plugins/allergen-exclusion-filter/advanced/)

## Waarderingen

Er zijn nog geen beoordelingen ingediend.

[Je beoordeling](https://wordpress.org/support/plugin/allergen-exclusion-filter/reviews/#new-post)

[Bekijk alle beoordelingen](https://wordpress.org/support/plugin/allergen-exclusion-filter/reviews/)

## Bijdragers

 *   [ TecnologiaPa'Todos ](https://profiles.wordpress.org/tecnologiapatodos/)

## Ondersteuning

Iets te melden? Hulp nodig?

 [Het supportforum bekijken](https://wordpress.org/support/plugin/allergen-exclusion-filter/)

## Doneren

Wil je de groei van deze plugin ondersteunen?

 [ Doneer aan deze plugin ](https://tecnologiapatodos.es/)