Wishlist
La lista de deseos permite a los clientes guardar productos para más tarde. Funciona tanto para clientes registrados como para invitados.

Activar el módulo
Section titled “Activar el módulo”Ve a WooCommerce > Polski > Módulos de la tienda y activa la opción Wishlist. Tras la activación, aparecerá un icono de corazón en cada producto que permite añadirlo a la lista.
Compatibilidad con invitados y usuarios registrados
Section titled “Compatibilidad con invitados y usuarios registrados”Invitados (no registrados)
Section titled “Invitados (no registrados)”Para los invitados, la lista de deseos se guarda en el localStorage del navegador. Los datos están disponibles de inmediato sin peticiones al servidor. Tras iniciar sesión, la lista de localStorage se sincroniza automáticamente con la base de datos - los productos no se pierden.
Usuarios registrados
Section titled “Usuarios registrados”Para los clientes registrados, los datos se guardan en la tabla wp_usermeta con la clave _polski_wishlist. Así, la lista está disponible en cualquier dispositivo tras iniciar sesión.
Cuenta de cliente
Section titled “Cuenta de cliente”El módulo añade una nueva pestaña Lista de deseos en la sección Mi cuenta de WooCommerce. El cliente ve:
- Miniatura del producto
- Nombre con enlace a la página del producto
- Precio (actual, incluidas las promociones)
- Estado de disponibilidad (en stock / sin stock)
- Botón Añadir al carrito
- Botón Eliminar de la lista
La pestaña solo es visible cuando el módulo está activo. El endpoint de la URL es wishlist - p. ej. tutienda.com/my-account/wishlist/.
Comportamiento AJAX
Section titled “Comportamiento AJAX”Añadir y eliminar productos de la lista funciona mediante AJAX - la página no se recarga. Tras hacer clic en el icono de corazón:
- El icono cambia de estado (vacío/relleno) con una animación CSS
- Se envía una petición AJAX a
admin-ajax.php - El contador del icono en la cabecera se actualiza en tiempo real
Acciones AJAX gestionadas por el módulo:
| Acción | Descripción |
|---|---|
polski_wishlist_add | Añadir producto a la lista |
polski_wishlist_remove | Eliminar producto de la lista |
polski_wishlist_get | Obtener toda la lista |
polski_wishlist_clear | Vaciar toda la lista |
Shortcode [polski_wishlist]
Section titled “Shortcode [polski_wishlist]”El shortcode muestra la tabla de la lista de deseos en cualquier lugar de la tienda.
Parámetros
Section titled “Parámetros”| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
columns | string | all | Columnas a mostrar (separadas por comas) |
max_items | int | 50 | Número máximo de productos en la lista |
show_empty | string | yes | Si se muestra un mensaje cuando la lista está vacía |
Ejemplo de uso
Section titled “Ejemplo de uso”[polski_wishlist columns="image,name,price,add_to_cart" max_items="20"]Uso en una plantilla PHP
Section titled “Uso en una plantilla PHP”echo do_shortcode('[polski_wishlist columns="image,name,price,add_to_cart"]');Columnas disponibles
Section titled “Columnas disponibles”image- miniatura del productoname- nombre del producto con enlaceprice- preciostock- estado del stockadd_to_cart- botón añadir al carritoremove- botón eliminar de la listadate_added- fecha de adición
Botón en la página del producto
Section titled “Botón en la página del producto”El botón de la lista de deseos se muestra de forma predeterminada debajo del botón Añadir al carrito en la página del producto. La posición se puede cambiar con un filtro:
add_filter('polski/wishlist/button_position', function (): string { return 'before_add_to_cart'; // o 'after_add_to_cart', 'after_summary'});Botón en la lista de productos
Section titled “Botón en la lista de productos”En las páginas de categoría y archivo, aparece un botón de corazón en la esquina de la miniatura del producto. Se puede desactivar en los ajustes del módulo.
Cabecera de la tienda
Section titled “Cabecera de la tienda”El módulo añade un icono de corazón con un contador a la cabecera de la tienda (junto al carrito). Al hacer clic se abre un desplegable con una vista previa de los productos guardados. La posición del icono se controla mediante un hook:
add_action('polski/wishlist/header_icon', function (): void { // Posición personalizada del icono en la cabecera});Estilos CSS
Section titled “Estilos CSS”El módulo utiliza clases CSS con el prefijo .polski-wishlist-. Clases principales:
.polski-wishlist-button- botón de añadir/eliminar.polski-wishlist-button--active- estado activo (el producto está en la lista).polski-wishlist-table- tabla de la lista.polski-wishlist-count- contador de la cabecera.polski-wishlist-empty- mensaje de lista vacía
Rendimiento
Section titled “Rendimiento”Los datos de la lista de deseos de los usuarios registrados se almacenan en la caché de objetos (si está disponible). El fragmento HTML del botón se almacena en caché mediante wp_cache_set() con el grupo polski_wishlist. La caché se vacía automáticamente tras añadir o eliminar un producto.
Resolución de problemas
Section titled “Resolución de problemas”El botón no aparece en el producto - asegúrate de que el tema es compatible con el hook woocommerce_single_product_summary. Algunos temas sobrescriben las plantillas predeterminadas de WooCommerce.
La lista no se sincroniza tras iniciar sesión - comprueba si tienes un plugin de caché que almacena de forma agresiva la página de inicio de sesión. Desactiva la caché para la página my-account.
El icono de la cabecera no se muestra - el tema debe ser compatible con el hook wp_nav_menu_items o storefront_header. Si usas un tema personalizado, añade el icono manualmente en la plantilla.
Informar de problemas: github.com/wppoland/polski/issues