Easy Digital Downloads posiada natywny system koszyka zakupów, który pozwala odwiedzającym sklep dodać wiele produktów do swoich koszyków przed dokonaniem zakupu. Istnieje jednak szereg konfiguracji serwera, witryny i przeglądarki, które mogą zakłócić tę funkcjonalność i spowodować, że koszyk będzie wyglądał na pusty podczas finalizacji zakupu.
W rzadkich przypadkach, z powodu konfiguracji serwera, ustawień hostingu lub konfliktu z innymi wtyczkami, możesz zauważyć, że Twój koszyk jest pusty po dodaniu do niego produktu. W tym artykule wyjaśnimy niektóre z przyczyn, dla których tak się dzieje, i co możesz zrobić, aby rozwiązać ten problem.
Wtyczki buforujące
Wtyczki buforujące są bardzo częstym winowajcą, ponieważ są powszechnie używane. Ich cel jest prosty – wtyczki buforujące przyspieszają ładowanie Twojej witryny, przechowując pewne dane witryny dla łatwego dostępu, gdy są żądane przez przeglądarkę. Chociaż jest to świetny sposób na przyspieszenie witryny i zmniejszenie ruchu na serwerze, mogą być konieczne drobne zmiany, aby koszyk działał poprawnie.
Wyłącz buforowanie na stronie finalizacji zakupu
Ponieważ informacje na stronie finalizacji zakupu są specyficzne dla pojedynczego użytkownika, nigdy nie powinny być buforowane, ponieważ może to prowadzić do niepożądanych wyników dla Twoich klientów. Dodawanie produktów do koszyka, ich usuwanie, obliczanie sum koszyka i wszystkie inne funkcje strony finalizacji zakupu muszą odzwierciedlać rzeczywisty stan danych strony za każdym razem, gdy jest ona ładowana. Niewyłączenie buforowania na stronie finalizacji zakupu może prowadzić do szeregu problemów, w tym do niemożności zakupu przez klientów lub do tego, że ich zamówienia będą zawierać nieprawidłowe sumy, podatki lub produkty.
Jeśli używasz wtyczki takiej jak W3 Total Cache, WP Super Cache lub innej podobnej wtyczki, musisz ją skonfigurować, aby unikać buforowania na stronie finalizacji zakupu.
Jeśli używasz Varnish jako warstwy buforującej, możesz przejść do naszej sekcji dotyczącej używania Varnish z Easy Digital Downloads.
Cloudflare
Cloudflare to bardzo potężna usługa do poprawy wydajności Twojego sklepu i zabezpieczenia Twojej firmy, i używamy jej na tej samej stronie, na której teraz jesteś. Aby skonfigurować Cloudflare do pracy z Twoim sklepem opartym na Easy Digital Downloads, musisz wprowadzić tylko kilka minimalnych modyfikacji.
Reguły strony

Utwórz następujące Reguły strony w ustawieniach Cloudflare. Reguły strony można dodać, klikając Reguły → Reguły strony → Utwórz Regułę strony.
Najpierw, z Twojego Panelu strony Cloudflare znajdź menu „Reguły” po lewej stronie, rozwiń je i kliknij „Reguły strony”.
Tutaj możesz zarządzać swoimi różnymi regułami strony i układać je według priorytetu. Najlepiej umieścić regułę strony finalizacji zakupu na górze tej listy, aby była ona pierwsza przetwarzana i żadne inne reguły nie wpływały na Twoją finalizację zakupu.
Aby utworzyć Regułę strony, kliknij przycisk „Utwórz Regułę strony”

Tworząc regułę strony, musisz zdefiniować, do jakich adresów URL ta reguła ma zastosowanie i jakie reguły chcesz, aby Cloudflare zastosował. Dla stron realizacji zakupu chcemy zawsze omijać warstwę buforowania Cloudflare, więc użyjemy ustawienia „Poziom buforowania” i ustawimy je na „Omijaj”. Oznacza to, że Cloudflare wyśle każde żądanie strony realizacji zakupu bezpośrednio na Twój serwer.

Dodając tę regułę strony, upewnij się, że kończysz adres URL ukośnikiem i znakiem *. Zapewni to dopasowanie wszelkich parametrów ciągu zapytania, takich jak kody rabatowe, i nie wpłynie to na inne funkcje realizacji zakupu EDD.
Buforowanie po stronie hostingu
Chociaż rzadziej, buforowanie po stronie serwera może stanowić równie duży problem dla Twojego systemu koszyka. Wielu dostawców hostingu oferuje usługi buforowania, do których się zapisujesz i konfigurujesz samodzielnie. Inni, tacy jak
WP Engine, stosują agresywne buforowanie, które jest wstępnie skonfigurowane dla Ciebie. Chociaż te narzędzia mogą pomóc Twojemu sklepowi działać lepiej i konwertować więcej użytkowników, być może będziemy musieli wprowadzić pewne dostosowania w celu zrównoważenia wydajności i niezawodności.
WP Engine
Jeśli hostujesz swoją witrynę w WP Engine, możesz napotkać problemy z pustymi koszykami podczas odwiedzania strony realizacji zakupu. Wynika to z agresywnego buforowania stron (co jest dobrą rzeczą!), ale można to łatwo rozwiązać, prosząc WP Engine o skonfigurowanie specjalnego wyjątku buforowania dla Twojej strony realizacji zakupu.
Aby to zrobić, po prostu prześlij zgłoszenie do pomocy technicznej WP Engine za pośrednictwem ich portalu pomocy technicznej i poproś o wyłączenie Twojej strony realizacji zakupu z buforowania.
Twoja strona realizacji zakupu to ta, która zawiera krótki kod [download_checkout] i jest zapisana w Pobieranie > Ustawienia:

Aby ułatwić Ci sprawę, możesz skopiować i wkleić to przykładowe zgłoszenie:
Cześć!
Moja witryna korzysta z wtyczki e-commerce Easy Digital Downloads i mamy problemy z buforowaniem stron i stroną realizacji zakupu. Zespół Easy Digital Downloads poinstruował nas, abyśmy poprosili o umieszczenie wyjątku buforowania na naszej stronie realizacji zakupu.
Czy możesz dodać następujący adres URL do listy wyjątków?
https://YOURSITE.com/{put your checkout page URL here}
Dzięki!
Uwaga: Chociaż strona realizacji zakupu może już nie być buforowana, nadal możesz mieć problem z linkiem „Usuń” w koszyku, który nie usuwa prawidłowo elementów z koszyka. Jeśli tak się stanie, poproś WP Engine o „wyłączenie plików cookie ‘edd_saved_cart’ i ‘edd_items_in_cart’ z buforowania”, a to powinno naprawić link.
EasyEngine/Nginx
Jeśli hostujesz swoją witrynę w EasyEngine/Nginx i używasz buforowania Redis, musisz znaleźć i edytować swój plik redis.conf (lub redis-php7.conf) i dodać edd_items_in_cart|. Na przykład Twoje wyjątki mogą wyglądać mniej więcej tak:
# Don't use the cache for logged in users or recent commenter
if ($http_cookie ~* "edd_items_in_cart|comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") { set $skip_cache 1; }
Varnish
Jeśli doświadczasz pustych koszyków podczas korzystania z serwera buforowania Varnish z Twoim sklepem Easy Digital Downloads, możesz spróbować użyć następujących reguł, aby temu zapobiec:
W swojej konfiguracji Varnish
// Tells Varnish to pass through on the checkout page
if (req.url ~ "checkout") { return (pass); }
// Tells Varnish to pass through on any request with edd_action in the query string
if (req.url ~ "edd_action") { return (pass); }
// Tells Varnish to pass through on any request with add_to_cart in the query string
if (req.url ~ "add_to_cart") { return (pass); }
// Tells Varnish to pass through if any cookies with `edd` are found
if (req.http.cookie ~ "(^|;s*)edd") { return (pass); }
Niektóre tutoriale i konfiguracje Varnish sugerują zmianę kolejności argumentów ciągu zapytania w celu optymalizacji wskaźników trafień w pamięci podręcznej. Ta funkcja Varnish może powodować awarie linków do pobierania plików generowanych przez Easy Digital Downloads z powodu weryfikacji bezpiecznych linków, której używa. Jeśli chcesz użyć tej techniki buforowania, napisaliśmy pomocny przewodnik na temat wspierania modyfikacji ciągu zapytania za pomocą Easy Digital Downloads, a jednocześnie zapewnić klientom dostęp do bezpiecznych pobrań plików.
Serwer nie obsługuje sesji PHP
Sesje PHP są zaprojektowane tak, aby zapewnić odwiedzającym Twoją witrynę bardziej spersonalizowane doświadczenie. Możliwość dodawania produktów do koszyka ze strony na stronę, a następnie zobaczenia wszystkich produktów ze sklepu w koszyku podczas finalizacji zakupu jest tak osobista, jak to tylko możliwe dla zupełnie nowego gościa, który nie udostępnił żadnych informacji Twojej witrynie.
Niektóre serwery lub hosty nie obsługują natywnego „handlera sesji” PHP. Easy Digital Downloads przechowuje informacje o koszyku odwiedzającego w jego sesji PHP, jednak gdy ta funkcja PHP jest niedostępna, może to prowadzić do pustych koszyków, ponieważ dane koszyka nie mogą być zapisywane między odwiedzinami stron.
Easy Digital Downloads obsługuje przechowywanie danych sesji w bazie danych i używanie plików cookie, aby pomóc w rozwiązaniu tego problemu. Korzystanie z tej wersji zarządzania „sesją” nie jest tak szybkie jak używanie sesji PHP, ponieważ opiera się na bazie danych, jednak może rozwiązać problem pustego koszyka.
Aby włączyć sesje bazy danych, przejdź do Pobrane > Ustawienia > Różne > Ogólne i ustaw Zarządzanie sesjami na Sesje bazy danych.
Aby zapewnić optymalne działanie bazy danych, Easy Digital Downloads dwukrotnie dziennie czyści porzucone sesje, korzystając z wydarzeń WP Cron WordPress.
Zablokowany plik admin-ajax.php
W rdzeniu WordPress znajduje się plik o nazwie admin-ajax.php, który jest intensywnie używany w całym WordPress, w tym w Easy Digital Downloads. Blokowanie dostępu do tego pliku może powodować problemy z zachowaniem koszyka i innymi aspektami Twojej witryny WordPress. Nigdy nie zaleca się blokowania dostępu do tego pliku.
Jeśli używasz jakichkolwiek wtyczek zabezpieczających lub masz agresywne ustawienia bezpieczeństwa na swoim serwerze, tymczasowo je wyłącz i ponownie sprawdź funkcjonalność koszyka. Jeśli Twoje ustawienia bezpieczeństwa blokują ten plik, Twój koszyk nie będzie działał poprawnie.
Więcej informacji na temat zablokowanego pliku admin-ajax.php można znaleźć w pełnej dokumentacji.
Zablokowany /wp-admin/
Istnieją wtyczki, które blokują dostęp do /wp-admin/ w celach bezpieczeństwa, a czasami blokują również dostęp do wcześniej wspomnianego pliku admin-ajax.php, powodując problemy wymienione powyżej.
Aby sprawdzić, czy to jest problem, tymczasowo dezaktywuj wtyczki blokujące admina. Jeśli problem zostanie rozwiązany, będziesz wiedzieć, że to była ta wtyczka.
Wyłączone pliki cookie przeglądarki
EDD używa plików cookie do przechowywania informacji o sesjach i zliczania przedmiotów w Twoim koszyku. Jeśli pliki cookie przeglądarki są wyłączone, system koszyka na zakupy może nie działać zgodnie z oczekiwaniami.
Ustawienia adresu URL
Jak wspomniano wcześniej, Easy Digital Downloads używa sesji i plików cookie do zapisywania danych koszyka odwiedzającego między wizytami na stronach, aby zapewnić mu unikalne doświadczenie w Twoim sklepie. Pliki cookie to fragmenty informacji o użytkowniku przechowywane w jego przeglądarce. Ze względów bezpieczeństwa pliki cookie używane przez Easy Digital Downloads definiują adres URL sklepu podczas ich tworzenia. Ważne jest, aby Twoja witryna WordPress była skonfigurowana tak, aby utrzymywać ten sam adres URL między stroną, na której dodajesz produkt do koszyka oraz stroną realizacji zakupu.
Obejmuje to część adresu URL http lub https. Jeśli spróbujesz dodać produkt do koszyka na stronie używającej http, a strona realizacji zakupu jest zabezpieczona certyfikatem SSL, wyświetlając się z https, Twój koszyk będzie pusty, ponieważ bezpieczna strona realizacji zakupu nie ma dostępu do pliku cookie dodanego przez niezabezpieczoną stronę, której wcześniej użyłeś do dodania produktu do koszyka.
Sugerujemy, aby cały Twój sklep był ładowany w bezpiecznej formie z https w adresie URL, w tym ustawienia adresu URL WordPress. Jeśli Twój hosting nie zapewnia certyfikatu SSL dla Twojego sklepu, możesz go uzyskać i poprosić hosting o jego zainstalowanie. Upewnij się, że Twój hosting może skonfigurować Twoją witrynę tak, aby ładowała się tylko przez https, ale jeśli nie może, zawsze możesz użyć Really Simple SSL, aby wymusić na WordPressie ładowanie Twojej witryny w wersji zabezpieczonej SSL za każdym razem.
Upewnij się, że to, co masz ustawione w Ustawienia → Ogólne, jest używane we wszystkich linkach na Twojej stronie.

W niektórych przypadkach widzieliśmy, że wtyczka lub skrypt strony trzeciej zainstalowany automatycznie modyfikuje Adres witryny lub Adres WordPress po pewnym czasie. Sprawdź dokładnie, czy Twój Adres witryny nie jest modyfikowany, aby Twój sklep działał zgodnie z oczekiwaniami.
Reguły .htaccess
Plik .htaccess jest używany przez serwer do prawidłowego kierowania żądań użytkowników do Twoich stron. WordPress ma zestaw domyślnych reguł, na których polegamy, aby koszyk działał poprawnie. Jeśli masz problemy z pustym koszykiem, spróbuj użyć domyślnej konfiguracji .htaccess ustawionej przez WordPress.
Znane konflikty wtyczek
Chociaż rzadko, mogą wystąpić konflikty między koszykiem Easy Digital Downloads a innymi wtyczkami WordPress. Chociaż staramy się je obejść w naszym kodzie, czasami nie możemy i dlatego utrzymujemy listę wtyczek, których nie możemy zagwarantować, że będą dobrze działać z Easy Digital Downloads. Jeśli napotkasz znany konflikt wtyczek, skontaktuj się z naszym zespołem wsparcia z jak największą ilością szczegółowych informacji o konflikcie, a my chętnie zbadamy problem za Ciebie.
