Descripción
El filtro de exclusión de alérgenos para WooCommerce permite a tus clientes filtrar el catálogo de productos excluyendo ingredientes específicos o alérgenos que deseen evitar. Es ideal para tiendas de alimentación, panaderías, farmacias, herbolarios y cualquier establecimiento que necesite garantizar productos seguros para personas con alergias o restricciones alimentarias.
Características principales
- Tres modos de visualización: Barra simple, tarjeta de bloque completo y barra compacta para encabezados y barras laterales.
- Totalmente personalizable: Título, descripción, texto de lugar de retención, texto del botón, color de fondo, color del botón y ancho de la barra editables.
- Autocompletado AJAX: Sugerencias en tiempo real mientras se escribe, con navegación mediante el teclado (patrón de cuadro combinado WAI-ARIA).
- Interfaz tipo «etiqueta»: Los alérgenos seleccionados se convierten en pastillas que se pueden eliminar.
- Modo de redirección directa: El modo «Compact» redirige a la página de la tienda sin utilizar AJAX, lo que permite mantener un diseño limpio.
- Botón con icono o texto: Utiliza un icono de lupa o un texto personalizado en cualquier modo.
- Varias instancias: Si colocas varios códigos cortos en la misma página (por ejemplo, «compact» en el encabezado y «simple» en el cuerpo), funcionarán de forma independiente.
- Accesibilidad según las WCAG 2.1: role=»combobox», aria-expanded, aria-controls, aria-activedescendant, aria-live, navegación por teclado.
- La seguridad es lo primero: Nonces, sanitización, escape, comprobaciones de capacidades, limitación de frecuencia en el autocompletado y defensa en profundidad en los colores.
- Compatible con HPOS: Utiliza la API nativa wc_get_products() para garantizar la compatibilidad con WooCommerce en el futuro.
- Rendimiento: Almacenamiento en caché basado en transitorios para el autocompletado; invalidación automática de la caché ante cambios en los términos.
- Comprobación de dependencias de WooCommerce: Aviso cortés en el panel de administración si WooCommerce no está activo.
Capturas




Instalación
- Sube la carpeta del plugin al directorio
/wp-content/plugins/. - Activa el plugin a través del menú «Plugins» de WordPress.
- Asegúrate de que WooCommerce esté instalado y activado.
- Ve a Productos & Alérgenos y crea tus categorías de ingredientes.
- Asigna alérgenos a tus productos.
- Inserta el código abreviado
[allergen_exclusion_filter]en la página que desees. - Visita WooCommerce > Motor de búsqueda de alérgenos para personalizar los textos, los colores y el diseño.
FAQ
-
¿Funciona con cualquier tema?
-
Sí, se ha probado con temas populares como Flatsome y Storefront. El modo «Compact» utiliza selectores CSS muy específicos para anular los estilos del tema en el campo de entrada.
-
¿Requiere WooCommerce?
-
Sí, este plugin está diseñado específicamente para funcionar con la lógica de productos y catálogos de WooCommerce. Si WooCommerce no está activo, el plugin muestra un aviso de administración cortés y no se carga.
-
¿Puedo colocar varias barras de búsqueda en la misma página?
-
Sí. Puedes colocar un modo «Compact» en el encabezado y un modo «Simple» o «Block» en el cuerpo. Cada instancia funciona de forma independiente, con su propio autocompletado, etiquetas y resultados.
-
¿Es compatible con HPOS (High-Performance Order Storage)?
-
Sí. Desde la versión 1.3.0, el plugin utiliza la API nativa `wc_get_products()` en lugar de `WP_Query`, lo que garantiza la compatibilidad con HPOS y con futuras migraciones de almacenamiento de WooCommerce.
-
¿Puedo traducir los textos?
-
Sí. Los textos predeterminados están en inglés y se pueden traducir con Loco Translate o cualquier otro plugin de traducción. También puedes sustituirlos directamente desde la página de Ajustes por tus propios textos personalizados.
Reseñas
No hay valoraciones para este plugin.
Colaboradores y desarrolladores
«Filtro de exclusión de alérgenos para WooCommerce» es un software de código abierto. Las siguientes personas han colaborado con este plugin.
Colaboradores«Filtro de exclusión de alérgenos para WooCommerce» está traducido en 1 idioma. Gracias a los traductores por sus contribuciones.
Traduce «Filtro de exclusión de alérgenos para WooCommerce» a tu idioma.
¿Interesado en el desarrollo?
Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.
Registro de cambios
1.3.0
– Se ha añadido una página de administración unificada con pestañas («Uso» y «Configuración») en el menú de WooCommerce.
– Se ha añadido una página de configuración personalizable mediante la API de configuración de WordPress.
– Se han añadido tres modos de visualización para el shortcode: «Simple», «Bloque» y «Compacto».
– Se ha añadido el atributo mode para forzar un diseño específico: [allergen_exclusion_filter mode="simple|block|compact"].
– Se ha añadido el atributo button_icon para mostrar un icono (lupa) o texto en el botón: [allergen_exclusion_filter button_icon="yes|no"].
– Se han añadido textos personalizables: título del bloque, descripción del bloque, texto de lugar de la entrada, texto del botón y mensaje de resultados iniciales.
– Se ha añadido el color de fondo configurable para el modo Bloque.
– Se ha añadido el color del botón configurable para todos los modos.
– Se ha añadido el ancho de la barra de búsqueda configurable (control deslizante del 30 al 100 %) para los modos Simple y Bloque.
– Se ha añadido el ancho de la barra de búsqueda configurable (control deslizante de 150 a 600 píxeles) para el modo Compacto.
– Se ha añadido el modo «Compacto» con redirección directa a la página de la tienda (sin AJAX, sin autocompletado, sin resultados en línea), ideal para cabeceras y barras laterales.
– Se ha añadido un botón con icono (lupa SVG) para el modo «Compacto» de forma predeterminada.
– Se ha añadido compatibilidad con múltiples instancias: ahora varios códigos cortos en la misma página funcionan de forma independiente.
– Se ha añadido la navegación mediante teclado (teclas de flecha, Enter, Escape) para las sugerencias de autocompletado, siguiendo el patrón de cuadro combinado de WAI-ARIA.
– Se ha añadido el mensaje «No se han encontrado alérgenos coincidentes» cuando el autocompletado devuelve resultados vacíos.
– Se han añadido atributos ARIA (role=»combobox
– Se ha sustituido WP_Query por la API nativa wc_get_products() para garantizar la compatibilidad con HPOS y facilitar futuras migraciones de almacenamiento.
– Se ha sustituido la doble consulta get_term_by() (slug + nombre) por una única consulta get_terms() utilizando el parámetro slug.
– Ahora se respeta automáticamente la visibilidad del catálogo nativo de WooCommerce (no es necesario utilizar tax_query manualmente).
– Se ha centralizado la versión del plugin en la constante SAEF_VERSION para garantizar la eliminación correcta de la caché de los recursos CSS/JS.
– Se ha añadido una comprobación de dependencias que impide que el plugin se cargue si WooCommerce no está activo (lo que evita errores fatales en las llamadas a `wc_get_product()` y `wc_get_page_id()`).
– Se ha añadido una comprobación preventiva de WooCommerce en ambos puntos finales AJAX (`saef_filter_allergens` y `saef_autocomplete_allergens`) para que respondan correctamente en lugar de bloquearse.
– Se ha restringido el filtro pre_get_posts únicamente a is_shop() e is_product_taxonomy(), evitando así interferencias no deseadas con otros archivos.
– Se ha depurado cada slug recibido a través de la URL con sanitize_title() antes de utilizarlo en tax_query.
– Se ha aplicado una protección en profundidad con `sanitize_hex_color()` a los colores de fondo y de los botones (tiempo de lectura).
– Se han eliminado las llamadas redundantes a `wp_die()` tras `wp_send_json_success()` para evitar confusiones en el flujo de ejecución.
– Se ha corregido el nombre del sitio codificado de forma fija en el título de la página de resultados dinámicos; ahora se utiliza get_bloginfo(“name”).
– Se ha corregido una etiqueta HTML sin cerrar en el título de la página de resultados dinámicos que podía provocar errores de visualización en algunos navegadores.
– Se ha corregido el problema por el que el menú desplegable de autocompletado quedaba oculto tras otros elementos de la página, eliminando el contexto de apilamiento creado por .saef-card y aumentando el z-index del menú desplegable a 99999.
– Se ha corregido el recorte del desbordamiento del menú desplegable de autocompletado cambiando el valor de overflow de «hidden» a «visible» y añadiendo una altura máxima (max-height) con desplazamiento vertical.
– Se ha corregido que no se llamara a load_plugin_textdomain (estaba comentado), por lo que ahora las traducciones se cargan correctamente desde el directorio /languages.
– Se han corregido las versiones de CSS/JS fijadas de forma rígida («1.0», «1.1») y se han sustituido por la constante SAEF_VERSION para garantizar una gestión coherente de la caché.
– Se ha corregido el error por el que el modo «Compact» alteraba el diseño del encabezado cuando se insertaban resultados AJAX en su interior: ahora el modo «Compact» redirige directamente a la página de la tienda.
– Se ha corregido el error por el que los modos «Simple» y «Block» no funcionaban cuando había un modo «Compact» en la misma página: todos los selectores se han migrado de ID a clases con soporte para múltiples instancias.
– Se ha corregido el error por el que el tema (Flatsome) añadía un borde visible dentro del campo de búsqueda al utilizar selectores ultraspecíficos.
– Se ha reducido la altura de la barra de búsqueda y del botón de 64 px a 48 px para conseguir un aspecto más compacto y moderno.
– Se ha reformulado el título de la página de resultados dinámicos con una expresión más natural: «Estos son los X productos de SITE que no contienen ALÉRGENOS entre sus ingredientes».
– Se han añadido «role=«search»» y «aria-label» al formulario de búsqueda.
– Se han añadido «role=«combobox»», «aria-autocomplete=«list»», «aria-expanded», «aria-controls» y «aria-activedescendant» al campo de búsqueda.
– Se ha añadido «role=«listbox»» al contenedor de autocompletado y «role=«option»» a cada sugerencia.
– Se han añadido los atributos `aria-live=«polite»` y `aria-atomic=«true»` al contenedor de resultados para que los lectores de pantalla anuncien los resultados de AJAX.
– Se ha añadido un estado de foco visible (.saef-active) para la navegación con el teclado, con colores de alto contraste.
– Se ha añadido un estilo visual no clicable al mensaje «Sin resultados» para distinguirlo de las opciones seleccionables.
– Se han añadido las constantes SAEF_VERSION y SAEF_PLUGIN_BASENAME en el archivo principal del plugin.
– Se ha añadido la carga condicional de la clase SAEF_Settings mediante file_exists() para garantizar una degradación suave.
– Se ha añadido una función auxiliar estática SAEF_Settings::saef_get_option() para que la interfaz de usuario pueda leer la configuración sin necesidad de instanciar la clase de configuración.
– Se han migrado todos los selectores HTML de ID a clases para admitir múltiples instancias de shortcodes en la misma página.
– Todo el código nuevo está comentado en dos idiomas (español e inglés) para facilitar el mantenimiento.
1.1.0
- Added official plugin icon and banner.
- Mejoras internas en el rendimiento y el código.