Przejdź do głównej zawartości

Korzystanie z list oczekujących

Ten przewodnik prowadzi przez jeden pełny cykl powiadomienia o dostępności od początku do końca: klient zapisuje się na niedostępnym produkcie, Ty uzupełniasz stan, a każdy oczekujący subskrybent dostaje e-mail automatycznie.

Gdy produkt jest niedostępny lub na zamówieniu (backorder), Restock renderuje formularz listy oczekujących w podsumowaniu produktu — pole e-mail, wymagane pole zgody i przycisk wysyłki. Dla zalogowanego klienta e-mail jest uzupełniony z góry.

Klient wpisuje e-mail, zaznacza zgodę i wysyła. Wysyłka to asynchroniczne fetch (bez przeładowania strony, bez jQuery), a wynik jest ogłaszany w regionie aria-live — sukces, nieprawidłowy e-mail lub brak zgody.

Na produkcie z wariantami formularz pojawia się, gdy klient wybierze niedostępny wariant. Restock zapisuje ID tego wariantu, więc zapis dotyczy konkretnej opcji, której chciał klient, a nie produktu jako całości.

Ustaw stan produktu (lub wariantu) z powrotem na Dostępny w WooCommerce. Gdy WooCommerce wyzwoli woocommerce_product_set_stock_status ze statusem instock, Restock e-mailuje każdego oczekującego subskrybenta tego produktu — a dla wariantów także jego produkt nadrzędny — używając wp_mail. Każdy subskrybent powiadomiony pomyślnie jest oznaczany jako notified, więc nikt nie jest kontaktowany dwa razy. Nie trzeba konfigurować kolejki ani crona.

Powiadomienie to tekstowy e-mail zbudowany ze skonfigurowanego tematu, wstępu i zakończenia. Pochodzi z własnego mailera Twojej witryny, więc dostarczalność zależy od konfiguracji poczty WordPress (wtyczka SMTP lub Twój hosting). Jeśli testowy e-mail nie dociera, sprawdź dostarczanie poczty przed debugowaniem Restock.

Zalogowani klienci widzą zakładkę Moje konto → Listy oczekujących z aktywnymi zapisami, każdy z bieżącym stanem magazynowym i akcją opuszczenia listy. Goście nie mają widoku konta; ich zapis i tak otrzymuje e-mail o dostępności.

Domyślnie formularz dodawany jest do podsumowania produktu. Aby umieścić go gdzie indziej we własnym układzie produktu, użyj shortcode’u:

[restock_waitlist]
[restock_waitlist id="123"]

id celuje w konkretny produkt. W obu przypadkach formularz nadal renderuje się tylko wtedy, gdy produkt jest niedostępny lub na zamówieniu, więc nigdy nie pokazuje się na produkcie dostępnym.

Otwórz WooCommerce → Restock → Subscribers, aby przeglądać zapisy, filtrować po produkcie i eksportować listę do CSV — przydatne do oceny popytu na produkt przed ponownym zamówieniem.

Formularz jest renderowany po stronie serwera w PHP i siedzi w normalnym przepływie dokumentu w podsumowaniu produktu — nie ma leniwego wstrzykiwania, które przesuwa treść, więc nie szkodzi Cumulative Layout Shift. Jedyny skrypt to małe vanilla-JavaScript fetch do wysyłki, ładowane z defer w stopce. Pole e-mail ma prawdziwą etykietę (jako tekst dla czytników), pole zgody jest wymagane, a formularz ustawia aria-busy podczas wysyłki i ogłasza wyniki przez aria-live — zbudowany z myślą o WCAG 2.2 AA.