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.
ColaboradoresTraduce «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.