Lista życzeń (wishlist)
Lista życzeń pozwala klientom zapisywać produkty na później. Działa zarówno dla zalogowanych klientów, jak i gości.

Włączenie modułu
Dział zatytułowany „Włączenie modułu”Przejdź do WooCommerce > Polski > Moduły sklepowe i włącz Lista życzeń. Na każdym produkcie pojawi się ikona serca.
Obsługa gości i zalogowanych użytkowników
Dział zatytułowany „Obsługa gości i zalogowanych użytkowników”Goście (niezalogowani)
Dział zatytułowany „Goście (niezalogowani)”Lista zapisuje się w localStorage przeglądarki. Dane są dostępne od razu, bez zapytań do serwera. Po zalogowaniu lista automatycznie synchronizuje się z bazą danych - produkty nie znikają.
Zalogowani użytkownicy
Dział zatytułowany „Zalogowani użytkownicy”Dane zapisują się w tabeli wp_usermeta z kluczem _polski_wishlist. Lista jest dostępna na każdym urządzeniu po zalogowaniu.
Konto klienta
Dział zatytułowany „Konto klienta”Moduł dodaje zakładkę Lista życzeń w Moje konto. Klient widzi tam:
- Miniaturkę produktu
- Nazwę z linkiem do strony produktu
- Cenę (aktualną, z uwzględnieniem promocji)
- Status dostępności (w magazynie / brak)
- Przycisk Dodaj do koszyka
- Przycisk Usuń z listy
Zakładka widoczna jest tylko gdy moduł jest aktywny. Endpoint w URL: wishlist - np. twojsklep.pl/moje-konto/wishlist/.
Działanie AJAX
Dział zatytułowany „Działanie AJAX”Dodawanie i usuwanie produktów działa przez AJAX - strona się nie przeładowuje. Po kliknięciu ikony serca:
- Ikona zmienia stan (pusta/wypełniona) z animacją CSS
- Wysyłane jest żądanie AJAX do
admin-ajax.php - Licznik na ikonie w nagłówku aktualizuje się w czasie rzeczywistym
Akcje AJAX obsługiwane przez moduł:
| Akcja | Opis |
|---|---|
polski_wishlist_add | Dodanie produktu do listy |
polski_wishlist_remove | Usunięcie produktu z listy |
polski_wishlist_get | Pobranie całej listy |
polski_wishlist_clear | Wyczyszczenie całej listy |
Shortcode [polski_wishlist]
Dział zatytułowany „Shortcode [polski_wishlist]”Wyświetla tabelę listy życzeń w dowolnym miejscu sklepu.
Parametry
Dział zatytułowany „Parametry”| Parametr | Typ | Domyślnie | Opis |
|---|---|---|---|
columns | string | all | Kolumny do wyświetlenia (oddzielone przecinkiem) |
max_items | int | 50 | Maksymalna liczba produktów na liście |
show_empty | string | yes | Czy pokazywać komunikat gdy lista jest pusta |
Przykład użycia
Dział zatytułowany „Przykład użycia”[polski_wishlist columns="image,name,price,add_to_cart" max_items="20"]Użycie w szablonie PHP
Dział zatytułowany „Użycie w szablonie PHP”echo do_shortcode('[polski_wishlist columns="image,name,price,add_to_cart"]');Dostępne kolumny
Dział zatytułowany „Dostępne kolumny”image- miniaturka produktuname- nazwa produktu z linkiemprice- cenastock- status magazynowyadd_to_cart- przycisk dodania do koszykaremove- przycisk usunięcia z listydate_added- data dodania
Przycisk na stronie produktu
Dział zatytułowany „Przycisk na stronie produktu”Przycisk wyświetla się domyślnie pod Dodaj do koszyka. Zmień pozycję filtrem:
add_filter('polski/wishlist/button_position', function (): string { return 'before_add_to_cart'; // lub 'after_add_to_cart', 'after_summary'});Przycisk na liście produktów
Dział zatytułowany „Przycisk na liście produktów”Na stronach kategorii i archiwów przycisk serca pojawia się w rogu miniaturki. Wyłącz go w ustawieniach modułu.
Nagłówek sklepu
Dział zatytułowany „Nagłówek sklepu”Moduł dodaje ikonę serca z licznikiem do nagłówka (obok koszyka). Kliknięcie otwiera dropdown z zapisanymi produktami. Pozycję ikony zmień hookiem:
add_action('polski/wishlist/header_icon', function (): void { // Własna pozycja ikony w nagłówku});Stylowanie CSS
Dział zatytułowany „Stylowanie CSS”Klasy CSS mają prefiks .polski-wishlist-. Główne klasy:
.polski-wishlist-button- przycisk dodania/usunięcia.polski-wishlist-button--active- stan aktywny (produkt na liście).polski-wishlist-table- tabela listy.polski-wishlist-count- licznik w nagłówku.polski-wishlist-empty- komunikat pustej listy
Wydajność
Dział zatytułowany „Wydajność”Dane listy dla zalogowanych klientów są cachowane w object cache (jeśli dostępny). HTML przycisku cachowany jest przez wp_cache_set() z grupą polski_wishlist. Cache czyści się automatycznie po dodaniu lub usunięciu produktu.
Rozwiązywanie problemów
Dział zatytułowany „Rozwiązywanie problemów”Przycisk nie pojawia się na produkcie - sprawdź, czy motyw obsługuje hook woocommerce_single_product_summary. Niektóre motywy nadpisują szablony WooCommerce.
Lista nie synchronizuje się po zalogowaniu - sprawdź, czy wtyczka cache nie buforuje strony logowania. Wyłącz cache dla strony moje-konto.
Ikona w nagłówku nie wyświetla się - motyw musi obsługiwać hook wp_nav_menu_items lub storefront_header. W niestandardowym motywie dodaj ikonę ręcznie w szablonie.
Zgłaszanie problemów: github.com/wppoland/polski/issues