Jak to działa
Recover przechwytuje koszyki porzucone przez klientów i wysyła bezpieczny, jednoklikowy link sprowadzający ich z powrotem do zamówienia. Wszystko działa na Twojej własnej witrynie. Ta strona opisuje cykl życia, widok w panelu oraz model bezpieczeństwa i prywatności.
Cykl życia
Dział zatytułowany „Cykl życia”- Migawka. Gdy tylko klient ma produkty w koszyku, Recover zapisuje prywatną migawkę, aktualizując ją przy każdej zmianie koszyka.
- Przechwycenie e-maila. Dla zalogowanych klientów e-mail jest znany automatycznie. Dla gości pole e-mail z zamówienia jest przechwytywane, ale dopiero po zaznaczeniu checkboxa zgody.
- Porzucenie. Jeśli zamówienie nie zostanie ukończone w Twoim oknie porzucenia, koszyk zostaje oznaczony jako porzucony.
- E-mail. Gdy od porzucenia minie opóźnienie e-maila, najbliższe uruchomienie crona wysyła pierwszy e-mail odzyskiwania z bezpiecznym linkiem tokenowanym. Przy Liczbie przypomnień większej niż 1 koszyk zostaje wymagalny dalej, a kolejne przypomnienie staje się wymagalne, gdy to samo opóźnienie minie od poprzedniej wysyłki.
- Przywrócenie. Jedno kliknięcie linku ponownie wypełnia koszyk i sprowadza klienta z powrotem do zamówienia.
- Odzysk. Jeśli ukończy zamówienie, koszyk zostaje oznaczony jako odzyskany, a Twój wskaźnik odzysku się aktualizuje.
Worker cron
Dział zatytułowany „Worker cron”Odzyskiwanie działa w harmonogramie WordPress cron (zadanie recover_process_carts, co godzinę). Każde uruchomienie robi dwie rzeczy: oznacza koszyki nieaktywne ponad Twoje okno jako porzucone, a następnie wysyła link odzyskiwania do każdego porzuconego koszyka, który jest wymagalny, ma e-mail, ma zgodę i wysłał mniej wiadomości, niż wynosi Twoja liczba przypomnień. E-maile idą przez Twój własny wp_mail.
Wysyłkę bramkuje licznik wysłanych wiadomości w wierszu koszyka, więc ponowne ani nakładające się uruchomienie nie powtórzy kroku. Z tego samego licznika wynika, który krok jest teraz wymagalny: krok zerowy liczy się od porzucenia, każdy następny od chwili, w której faktycznie wyszła poprzednia wiadomość.
Lista koszyków i wskaźnik odzysku
Dział zatytułowany „Lista koszyków i wskaźnik odzysku”W WooCommerce > Recover Carts masz pełny obraz:
- listę koszyków z licznikami oczekujące, porzucone i odzyskane,
- podsumowanie wskaźnika odzysku oraz
- filtr statusu, by skupić się na jednym stanie naraz.
To tutaj widzisz, ile przychodu wtyczka sprowadza z powrotem.
Link przywracania
Dział zatytułowany „Link przywracania”Każdy koszyk ma 64-znakowy, kryptograficznie losowy token. Link przywracania zawiera tylko ten token, bez identyfikatora klienta, bez e-maila, bez niczego osobistego. Bez dokładnego tokenu koszyka nie da się przywrócić, więc nie ma ryzyka enumeracji ani IDOR.
Model bezpieczeństwa
Dział zatytułowany „Model bezpieczeństwa”- Cały output jest escapowany, a cały input sanityzowany.
- Każdy formularz w panelu i wywołanie AJAX są chronione nonce.
- Strony panelu wymagają uprawnienia
manage_woocommerce. - Drobny fragment czystego JavaScriptu (bez jQuery) obsługuje wczesne przechwytywanie e-maila przy zamówieniu, ładowany z opóźnieniem.
Model prywatności
Dział zatytułowany „Model prywatności”- Self-hosted. E-maile idą przez
wp_mail; dane koszyka żyją w Twojej własnej bazie. Nic nie jest wysyłane do żadnej zewnętrznej usługi. - Bramkowane zgodą. Przechwytywanie e-maila gościa następuje dopiero po zaznaczeniu checkboxa zgody.
- Wymazanie danych. W WooCommerce > Recover Carts możesz jednym kliknięciem wymazać wszystkie zapisane dane koszyków dla dowolnego adresu e-mail.
Za politykę prywatności swojego sklepu odpowiadasz nadal Ty.
Przechowywanie i czysta deinstalacja
Dział zatytułowany „Przechowywanie i czysta deinstalacja”Dane koszyka żyją w jednej śledzonej wersjonowo tabeli {prefix}_recover_carts. Usunięcie wtyczki uruchamia procedurę deinstalacji, która usuwa tabelę, kasuje opcje recover_settings i recover_db_version oraz czyści zaplanowane zadanie odzyskiwania, nie zostawiając niczego.
Zgodność
Dział zatytułowany „Zgodność”Recover jest zgodny z WooCommerce HPOS (Custom Order Tables) oraz blokami Koszyka/Zamówienia.