Easy Digital Downloads heeft een ingebouwd winkelwagensysteem waarmee winkelbezoekers meerdere items aan hun winkelwagens kunnen toevoegen voordat ze afrekenen. Er zijn echter een aantal server-, site- en browserconfiguraties die deze functionaliteit kunnen verbreken en ervoor kunnen zorgen dat de winkelwagen leeg lijkt bij het afrekenen.
In zeldzame gevallen, vanwege een serverconfiguratie, hostinginstellingen of conflicten met andere plugins, kan uw winkelwagen leeg zijn nadat u een item aan uw winkelwagen heeft toegevoegd. In dit artikel leggen we enkele redenen uit waarom dit kan gebeuren en wat u kunt doen om het probleem op te lossen.
Caching Plugins
Caching plugins zijn een veelvoorkomende boosdoener omdat ze zo wijdverspreid zijn. Hun doel is simpel: caching plugins versnellen de laadtijden van uw website door bepaalde websitegegevens op te slaan voor gemakkelijke toegang wanneer deze door de browser worden opgevraagd. Hoewel dit een geweldige manier is om uw site snel te maken en serververkeer te verminderen, kunnen enkele kleine wijzigingen nodig zijn om uw winkelwagen correct te laten werken.
Cache uitschakelen op uw Checkout Pagina
Omdat de informatie op uw afrekenpagina specifiek is voor één bezoeker, mag deze nooit worden gecached, omdat dit ongewenste resultaten voor uw klanten kan opleveren. Items toevoegen aan de winkelwagen, ze verwijderen, winkelwagen totalen berekenen en alle andere functies van de afrekenpagina moeten de werkelijke staat van de paginagegevens weerspiegelen elke keer dat deze wordt geladen. Als u het cachen op uw afrekenpagina niet uitschakelt, kan dit leiden tot een aantal problemen, waaronder klanten die niet kunnen kopen of wiens bestellingen onjuiste totalen, belastingen of producten bevatten.
Als u een plugin gebruikt zoals W3 Total Cache, WP Super Cache, of een andere vergelijkbare plugin, moet u deze zo configureren dat cachen op de afrekenpagina wordt vermeden.
Als u Varnish gebruikt als een cachinglaag, wilt u misschien naar onze sectie over het gebruik van Varnish met Easy Digital Downloads springen.
Cloudflare
Cloudflare is een zeer krachtige service voor het verbeteren van de prestaties van uw winkel en het beveiligen van uw bedrijf, en we gebruiken het op deze site waar u zich nu bevindt. Om Cloudflare te configureren om te werken met uw Easy Digital Downloads-winkel, hoeft u slechts enkele minimale aanpassingen te maken.
Pagina Regels

Maak de volgende Pagina Regels binnen uw Cloudflare-instellingen. Pagina Regels kunnen worden toegevoegd door op Regels → Pagina Regels → Pagina Regel Maken te klikken.
Zoek eerst in uw Cloudflare Site Dashboard naar het menu 'Regels' aan de linkerkant, vouw het uit en klik op 'Pagina Regels'.
Hier kunt u uw verschillende paginaregels beheren en ze op volgorde van prioriteit rangschikken. Het is het beste om uw afrekenpagina regel bovenaan deze lijst te houden, zodat deze als eerste wordt verwerkt en geen andere regels uw afrekening beïnvloeden.
Om een Pagina Regel te maken, klikt u op de knop 'Pagina Regel Maken'

Wanneer u een Paginaregel maakt, moet u definiëren op welke URL's deze regel van toepassing is en welke regels u wilt dat Cloudflare toepast. Voor afrekenpagina's willen we altijd de cachinglaag van Cloudflare omzeilen, dus we gebruiken de instelling 'Cache Level' en zetten deze op 'Bypass'. Dit betekent dat Cloudflare elk verzoek voor de afrekenpagina rechtstreeks naar uw server stuurt.

Zorg er bij het toevoegen van deze Paginaregel voor dat u de URL laat eindigen met de afsluitende slash en het *-teken. Dit zorgt ervoor dat deze overeenkomt met eventuele query string-parameters zoals kortingscodes en andere functies van EDD's afrekenen niet worden beïnvloed.
Web Host Caching
Hoewel minder gebruikelijk, kan server-side caching een even groot probleem zijn voor uw winkelwagensysteem. Veel webhosts bieden cachingdiensten aan waarvoor u zich aanmeldt en die u zelf configureert. Anderen, zoals
WP Engine, passen agressieve caching toe die voor u vooraf is geconfigureerd. Hoewel deze tools uw winkel kunnen helpen beter te presteren en meer gebruikers te converteren, moeten we mogelijk enkele aanpassingen maken voor een balans tussen prestaties en betrouwbaarheid.
WP Engine
Als u uw site host op WP Engine, kunt u enkele problemen met lege winkelwagens tegenkomen bij het bezoeken van de afrekenpagina. Dit komt door agressieve pagin-caching (wat een goede zaak is!), maar het kan gemakkelijk worden opgelost door WP Engine te vragen een speciale cache-uitzondering in te stellen voor uw afrekenpagina.
Om dit te doen, dient u eenvoudig een ondersteuningsticket in bij WP Engine via hun ondersteuningsportaal en vraagt u hen om uw afrekenpagina uit te sluiten van de cache.
Uw afrekenpagina is degene met de [download_checkout] shortcode erop, en wordt opgeslagen onder Downloads > Instellingen:

Om het u heel gemakkelijk te maken, kunt u dit voorbeeldticket kopiëren en plakken:
Hallo!
Mijn site draait de Easy Digital Downloads e-commerce plugin en we hebben enkele problemen met pagin-caching en de afrekenpagina. Het Easy Digital Downloads-team heeft ons geïnstrueerd u te vragen een cache-uitzondering te maken voor onze afrekenpagina.
Kunt u alstublieft de volgende URL aan de uitzonderingslijst toevoegen?
https://YOURSITE.com/{put your checkout page URL here}
Bedankt!
Opmerking: Hoewel de afrekenpagina mogelijk niet meer wordt gecached, kunt u nog steeds een probleem hebben met de link "Verwijderen" in uw winkelwagen die items niet correct uit de winkelwagen verwijdert. Als dit gebeurt, vraag dan WP Engine om "de cookies 'edd_saved_cart' en 'edd_items_in_cart' uit te sluiten van de cache" en dat zou de link moeten repareren.
EasyEngine/Nginx
Als u uw site host met EasyEngine/Nginx en Redis-caching gebruikt, moet u uw redis.conf (of redis-php7.conf) zoeken en bewerken en edd_items_in_cart| toevoegen. Uw uitzonderingen kunnen er dus bijvoorbeeld zo uitzien:
# 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
Als u lege winkelwagens ervaart bij het gebruik van een Varnish-caching server met uw Easy Digital Downloads-winkel, kunt u proberen de volgende regels te gebruiken om dit te voorkomen:
In uw Varnish-configuratie
// 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); }
Sommige Varnish-tutorials en -configuraties stellen voor om de volgorde van query-string-argumenten te wijzigen om de cache-hitratio's te optimaliseren. Deze functie van Varnish kan ertoe leiden dat bestandsdownloadlinks die door Easy Digital Downloads worden gegenereerd, mislukken, vanwege de beveiligde linkverificatie die het gebruikt. Als u deze cachingtechniek wilt gebruiken, hebben we een nuttige handleiding geschreven over hoe u query-string-aanpassing kunt ondersteunen met Easy Digital Downloads, en toch klanten toegang kunt geven tot beveiligde bestandsdownloads.
Server ondersteunt geen PHP Sessies
PHP-sessies zijn ontworpen om uw websitebezoekers een meer gepersonaliseerde ervaring te bieden. De mogelijkheid om items van de ene pagina naar de andere aan een winkelwagentje toe te voegen en vervolgens alle winkelartikelen in het winkelwagentje bij het afrekenen te zien, is zo persoonlijk als maar kan voor een gloednieuwe bezoeker die nog geen informatie met uw site heeft gedeeld.
Sommige servers of hosts ondersteunen het gebruik van PHP's native 'session handler' niet. Easy Digital Downloads slaat de winkelwageninformatie van uw bezoeker op in hun PHP-sessie, maar wanneer deze functie van PHP niet beschikbaar is, kan dit leiden tot lege winkelwagentjes, omdat de winkelwagengegevens niet kunnen worden opgeslagen tussen paginaweergaven.
Easy Digital Downloads ondersteunt het opslaan van sessiegegevens in de database en het gebruik van cookies om dit probleem te helpen oplossen. Het gebruik van deze versie van 'sessie'-beheer is niet zo snel als het gebruik van PHP-sessies, omdat het afhankelijk is van de database, maar het kan het probleem van lege winkelwagentjes oplossen.
Ga naar Downloads > Instellingen > Diversen > Algemeen en stel Sessiebeheer in op Database Sessies om Database Sessies in te schakelen.
Om uw database optimaal te laten presteren, ruimt Easy Digital Downloads twee keer per dag verlaten sessies op, met behulp van de WP Cron-gebeurtenissen van WordPress.
Geblokkeerd admin-ajax.php Bestand
Inbegrepen in de WordPress-kern is een bestand genaamd admin-ajax.php dat veel wordt gebruikt in WordPress, waaronder Easy Digital Downloads. Het blokkeren van de toegang tot dit bestand kan problemen veroorzaken met het gedrag van uw winkelwagentje en andere aspecten van uw WordPress-site. Het wordt nooit aangeraden om de toegang tot dit bestand te blokkeren.
Als u beveiligingsplugins gebruikt of agressieve beveiligingsinstellingen op uw server heeft, schakelt u deze tijdelijk uit en controleert u de winkelwagenfunctionaliteit opnieuw. Als uw beveiligingsinstellingen dit bestand blokkeren, werkt uw winkelwagen niet goed.
Zie de volledige documentatie voor meer informatie over geblokkeerde admin-ajax.php.
Geblokkeerd /wp-admin/
Er zijn plugins die de toegang tot /wp-admin/ blokkeren voor beveiligingsdoeleinden, en deze blokkeren soms ook de toegang tot het eerder genoemde admin-ajax.php-bestand, wat de bovengenoemde problemen veroorzaakt.
Om te testen of dit het probleem is, deactiveert u tijdelijk plugins die admin-toegang blokkeren. Als het probleem is opgelost, weet u dat het die plugin was.
Browser cookies uitgeschakeld
EDD gebruikt cookies om informatie op te slaan met sessies en het aantal items in uw winkelwagentje bij te houden. Als uw browsercookies zijn uitgeschakeld, werkt het winkelwagensysteem mogelijk niet zoals verwacht.
URL Instellingen
Zoals eerder vermeld, gebruikt Easy Digital Downloads Sessies en Cookies om winkelwagengegevens van een bezoeker tussen paginaweergaven te kunnen opslaan, zodat ze een unieke ervaring in uw winkel kunnen hebben. Cookies zijn stukjes informatie over de gebruiker die in hun browser worden opgeslagen. Om veiligheidsredenen definiëren de cookies die Easy Digital Downloads gebruikt de URL van de winkel bij het aanmaken ervan. Het is belangrijk dat uw WordPress-site zo is geconfigureerd dat dezelfde URL wordt gehandhaafd tussen de pagina waar u een artikel aan uw winkelwagen toevoegt en uw afrekenpagina.
Dit omvat het http- of https-gedeelte van de URL. Als u probeert een product aan de winkelwagen toe te voegen op een pagina die http gebruikt en uw afrekenpagina is beveiligd met een SSL, weergegeven met https, zal uw winkelwagen leeg zijn, aangezien de beveiligde afrekenpagina geen toegang heeft tot de cookie die is toegevoegd door de onbeveiligde pagina die u eerder hebt gebruikt om het artikel aan de winkelwagen toe te voegen.
We raden aan om uw volledige winkel in een beveiligde vorm te laden met https in de URL, inclusief uw WordPress URL-instellingen. Als uw host u geen SSL-certificaat voor uw winkel biedt, kunt u er een verkrijgen en deze door uw host laten installeren. Zorg ervoor dat uw host uw site zo kan configureren dat deze alleen via https wordt geladen, maar als ze dat niet kunnen, kunt u altijd Really Simple SSL gebruiken om WordPress te dwingen uw site elke keer met de SSL-beveiligde versie te laden.
Zorg ervoor dat wat u hebt ingesteld onder Instellingen → Algemeen wordt gebruikt in alle links op uw site.

In sommige gevallen hebben we gezien dat een 3rd party plugin of script dat is geïnstalleerd, automatisch het Siteadres of WordPress-adres wijzigt na een bepaalde tijd. Controleer dubbel of uw Siteadres niet wordt gewijzigd om ervoor te zorgen dat uw winkel naar verwachting blijft werken.
.htaccess regels
Het .htaccess-bestand wordt door de server gebruikt om gebruikersverzoeken correct naar uw pagina's te routeren. WordPress heeft een set standaardregels waarop we vertrouwen om de winkel correct te laten werken. Als u problemen ondervindt met een lege winkelwagen, probeer dan de standaard .htaccess-configuratie van WordPress te gebruiken.
Bekende Plugin Conflicten
Hoewel zeldzaam, kunnen er conflicten zijn tussen de Easy Digital Downloads-winkelwagen en andere WordPress-plugins. Hoewel we proberen deze met onze code te omzeilen, kunnen we dat soms niet en daarom onderhouden we een lijst met plugins waarvan we niet kunnen garanderen dat ze goed werken met Easy Digital Downloads. Als u een bekend pluginconflict tegenkomt, neem dan contact op met ons ondersteuningsteam met zoveel mogelijk gedetailleerde informatie over het conflict en we zullen het probleem graag voor u onderzoeken.
