Formularz to jedyne miejsce kontaktu klienta z pluginem. Dostępne są trzy sposoby umieszczenia — domyślnie auto-render pod ceną wystarcza w 90% przypadków.
Sposób 1: Auto-render pod ceną (domyślny)
Plugin podpina się do akcji woocommerce_single_product_summary priorytet 25 (zaraz po cenie i opisie krótkim). Na każdym wyprzedanym produkcie (status outofstock) renderuje formularz. Włączone domyślnie — nic nie musisz robić.
Sposób 2: Blok Gutenberg
W edytorze produktu lub dowolnej strony dodaj blok „WPNest Stock Notifier — formularz zapisu”. Atrybuty:
- Product ID — domyślnie current product (gdy w kontekście produktu). Można wskazać ręcznie dla landing pages.
- Variation ID — opcjonalne, dla konkretnej wariacji.
Sposób 3: Shortcode
- [wpnest_stonot_form]
Przykłady użycia:
// W treści produktu (auto-detect product_id)
[wpnest_stonot_form]
// Na landing page dla konkretnego produktu
[wpnest_stonot_form product_id="123"]
// Dla konkretnej wariacji
[wpnest_stonot_form product_id="123" variation_id="456"]
Co widzi klient
- Pole email z placeholderem („Wpisz swój adres email”)
- Przycisk zapisu („Powiadom mnie”)
- Tekst zgody RODO pod formularzem (edytowalny w ustawieniach)
- Komunikat sukcesu po wysłaniu („Sprawdź skrzynkę — wysłaliśmy potwierdzenie”)
- Komunikat błędu przy nieprawidłowym mailu / rate limit / honeypot
Co dzieje się pod spodem
- Klient submituje formularz — JS robi
fetchdo REST/wp-json/wpnest-stonot/v1/subscribez nonce - Honeypot check — ukryte pole
website; jeśli wypełnione (bot), plugin zwraca 200 OK ale nic nie zapisuje (silent ignore) - Rate limit — max 5 zapisów / 5 minut z tego samego IP (hashowane HMAC)
- Walidacja — format email, product_id istnieje, status produktu = OOS
- Idempotent dedup — istniejący row pending = resend confirmation, active = already subscribed, unsubscribed = reset z audit trail i nowy token
- Insert + mail — nowy row w tabeli ze statusem pending + wysyłka maila confirmation z linkiem opt-in
Cała operacja jest idempotentna. Klient może klikać „Powiadom mnie” wielokrotnie z tym samym mailem — nie dostanie duplikatów w bazie ani niepotrzebnych maili. To samo dotyczy mailingu confirmation — token jest jednorazowy i regenerowany przy każdej próbie resend.
Customizacja wyglądu
Formularz ma własne klasy CSS w przestrzeni .wpnest-stonot-form-*. Możesz nadpisać style w motywie (np. w style.css motywu dziecka):
.wpnest-stonot-form { /* container */ }
.wpnest-stonot-form__input { /* email input */ }
.wpnest-stonot-form__button { /* submit button */ }
.wpnest-stonot-form__consent { /* RODO consent text */ }
.wpnest-stonot-form__message { /* success/error message */ }
Dla głębszej customizacji template jest overridowalny z motywu — skopiuj wp-content/plugins/wpnest-stock-notifier-for-woocommerce/templates/subscribe-form.php do your-theme/wpnest-stonot/subscribe-form.php.