
Kort svar: Læg en testvare i kurven i et privat vindue, og kontrollér at WooCommerce-sessioncookien bliver sat og sendt igen på næste side. Hvis domænet skifter mellem
wwwog ikke-www, HTTPS og HTTP eller et andet subdomæne, mister browseren ofte sessionen. Hvis cookien er korrekt, undersøger du, om cachelaget leverer samme kurv til alle eller ignorerer WooCommerce-cookies. Ryd ikke alle kundesessioner som første forsøg.
Fagligt gennemgået: 28. august 2026
Kontrolgrundlag: WordPress 7.1, WooCommerce 11.0.1, PHP 8.4.23 og Chrome 151 på isoleret staging samt aktuel produktdokumentation. Cache- og samtykkeregler skal verificeres i butikkens egen kæde.
WooCommerce gemmer ikke hele kurven i selve browsercookien. Browseren får en sessionidentifikator, som peger på kundens kurvdata på serveren. Derfor kan kurven forsvinde, selv om “Accepter cookies” er valgt: browseren kan miste identifikatoren, et cachelag kan ignorere den, eller serverens sessionsdata kan blive slettet eller utilgængelige.
På denne side
Genindlæs kurven med browsercache deaktiveret, og sammenlign derefter mini-kurv, kurvside og checkout. Hvis kun ét element er tomt, mens checkout stadig kender varen, er sessionen sandsynligvis intakt; visningen eller fragmentet er gammelt. Hvis alle tre er tomme, og serveren ikke længere kan finde sessionen, er der tale om reelt sessionstab.
Denne forskel bestemmer risikoniveauet. En gammel mini-kurv løses i frontend. En mistet session kræver cookie-, cache- og serveranalyse. Brug guiden om en kurv, der ikke opdaterer, hvis data kun er visuelt forældede.

| Symptom | Sandsynlig årsag | Kontrol | Næste skridt |
|---|---|---|---|
| Kurven tømmes ved domæneskift | Cookie gælder ikke nyt hostname | Redirect chain og cookie domain | Ensret WordPress/site URL og redirects |
| Kurven tømmes ved checkout | Checkout eller session bliver cached | Cacheheader og bypassregel | Udeluk dynamiske sider/cookies |
| Kun private vinduer fejler | Samtykke eller cookieblokering | Cookie oprettes før/efter samtykke | Ret klassificering og nødvendig funktionalitet |
| Kun indloggede kunder fejler | Login/session merge eller kontocache | Før/efter login og cacheheader | Undersøg account/session-hook |
| Kurven forsvinder efter fast tid | Sessionudløb eller oprydning | Cookieudløb og scheduled actions | Ret kun dokumenteret levetid/jobfejl |
| Flere kunder deler eller mister kurv | Fuld sidecache ignorerer cookies | Gentag med to isolerede browsere | Stop cache af dynamisk respons straks |
Kontrollér WordPress-adresse, webstedsadresse, canonical hostname og redirects. Hele købsflowet skal ende på samme HTTPS-host. Ret redirectkilden frem for at lægge flere regler ovenpå. Test både direkte URL, gammel www/ikke-www-variant og eventuelle links fra annonce eller mail.
Efter første vare skal browseren normalt have cookies, der signalerer kurvindhold og kobler gæsten til serverens session. Kontroller woocommerce_cart_hash, woocommerce_items_in_cart og et navn, der starter med wp_woocommerce_session_. Værdierne er følsomme sessionsdata og skal ikke kopieres.
Hvis cookies ikke sættes, sammenlign før og efter samtykke, browserbeskyttelse og sikkerhedsheaders. WooCommerce-kurvens nødvendige funktion kan ikke vente på marketing-samtykke, men den konkrete juridiske cookieklassificering skal følge butikkens samtykkeløsning.
Kurv, checkout og Min konto skal være dynamiske. Cachelaget skal også respektere WooCommerce-session- og kurvcookies, så en kunde med varer ikke får en anonym cached side. Test med to helt adskilte private browsere. Deres kurve må aldrig krydse hinanden.
Hvis et cachelag er årsagen, ret den smalleste relevante side-/cookiebypass, purge laget og gentag testen. Slå ikke al cache permanent fra, hvis problemet kun vedrører dynamiske ruter.
Flersprog, valuta-plugins og eksterne checkoutflows kan skifte subdomæne eller cookiepath. Tegn hele redirectkæden fra produkt til checkout. Sessionen skal bevares på hvert hop. Ret den komponent, der laver det uventede host-/pathskift.
Hvis browseren sender den samme sessionscookie, men serveren returnerer en tom kurv, skal sessionlageret undersøges. Se efter databasefejl, objektcache-eviction, multisite-/databaseprefix-fejl eller aggressive cleanup-jobs. Brug logs og staging; ændr ikke sessiontabeller direkte.
WooCommerce-værktøjet til at slette kundesessioner fjerner aktive kurve. Det er en driftsoperation, ikke en standardløsning. Brug det kun med backup, varsling og et klart bevis for korrupte sessionsdata.
Test standardtema og WooCommerce alene, og tilføj cache, samtykke, sprog/valuta og loginudvidelser i logiske trin. Reproducer både gæst, login og tilbagevenden efter en ny sidevisning. Gem cookie-metadata og headers for den første kombination, der bryder.
Test tre forløb: før et valg i samtykkebanneret, efter “afvis ikke-nødvendige” og efter accept. Kurvens kernefunktion skal opføre sig konsistent efter butikkens godkendte samtykkedesign. Hvis sessioncookien fejlagtigt er klassificeret som analyse eller marketing, kan den blive slettet midt i forløbet.
Ret klassificeringen i samtykkeløsningens native indstilling. Tilføj ikke et separat script, der tvinger cookies igennem uden juridisk og teknisk review.
Forvent ikke, at en anonym gæstekurv automatisk følger kunden til en anden telefon eller browser. Det er to forskellige sessionsmiljøer. Hvis kravet er en gemt kurv på tværs af enheder, skal kunden være identificeret gennem butikkens dokumenterede login- eller “gem kurv”-funktion; ellers er forskellen ikke et sessionstab.
Tegn kæden: browsercache, optimeringsplugin, server-page-cache, reverse proxy/CDN og eventuel objektcache. En BYPASS-header fra ét lag beviser ikke, at de andre lag bypasser. Kør testen med et unikt query-free produktflow og registrer headerne på hvert trin. Slå lag fra ét ad gangen på staging, så du kan navngive ejeren.
En gæst lægger en testvare i kurven, går til login og lander bagefter på Min konto med en tom mini-kurv. Før du konkluderer, at sessionen er slettet, åbner du checkout direkte. Hvis varen stadig findes dér, er gæstesessionen sandsynligvis blevet flettet korrekt, mens headerens mini-kurv viser en cached eller gammel state.
Hvis checkout også er tom, sammenlignes sessionscookiens navn, domæne og path lige før login og på den første side efter redirect. Der skal ikke kopieres værdier; det er nok at se, om den samme identifikator sendes, eller om loginflowet opretter en ny session. Kontrollér samtidig om redirecten skifter hostname, sprogsti eller protokol. Et enkelt hop til et andet hostnavn kan forklare problemet bedre end en databaseoprydning.
Når den samme cookie sendes, men serveren returnerer en ny tom kurv, flyttes diagnosen til serverens sessionlager og de hooks, som fletter gæst og kunde. Reproducer på staging med WooCommerce og standardtema, og tilføj login-, medlemskabs- og samtykkeplugins ét ad gangen.
En positiv test viser, at kurven kan overleve. To negative kontroller viser, at isolationen også virker. Browser A og browser B skal kunne lægge forskellige varer i kurven uden at se hinandens data. En ny privat session uden cookie skal starte tom. Hvis en anonym browser får en anden tests kurv, skal cache af dynamiske sider standses med det samme, før almindelig fejlsøgning fortsætter.
Kontrollér også, at en afsluttet testordre rydder eller bevarer kurven efter butikkens valgte adfærd. En kurv, der aldrig tømmes efter køb, er den modsatte sessionfejl og kan få kunden til at bestille de samme varer igen.
Gendan den tidligere redirect-, cache-, samtykke- eller sessionindstilling fra backup. Purge kun de berørte cachelag, og gentag den samme browsersekvens. Hvis du har slettet kundesessioner, kan de aktive kurve normalt ikke genskabes enkeltvis; derfor skal den handling undgås som eksperiment.
Hosting skal have cookie-metadata uden værdi, redirect chain, cacheheaders og UTC-tidspunkt ved server-side sessiontab. Pluginudvikleren skal have en reproducerbar kombination. Se WooCommerce hosting hos Hostious ved behov for cache- og sessionsdiagnose.
Understøtter cache-laget ikke cookiebaserede undtagelser, er det ikke bygget til WooCommerce. På WooCommerce hosting hos Hostious er undtagelserne sat op fra start.
Fordi browseren mister WooCommerce-sessionscookien – typisk ved skift mellem www og ikke-www, HTTP og HTTPS eller ved en cache, der serverer en anonym udgave af kurvsiden.
Læg en vare i kurven i et privat vindue, og se i DevTools om woocommerce_-cookies sættes og sendes igen på næste side. Skifter domænenavnet undervejs, har du fundet fejlen.
Ja, hvis kurv- og checkout-sider fuldside-caches eller cookies strippes. Undtag /kurv/, /checkout/ og mine-konto-sider fra cache, og purge efter ændringen.
Tag et skærmbillede af browserens cookieoversigt med alle værdier skjult. Navn, domæne, path og udløbstid er som regel nok. Gem samtidig redirectkæden og cacheheaderne på produkt, kurv og checkout. Test med to helt separate private browserprofiler, så det kan bekræftes, at deres kurve hverken forsvinder eller blandes.
En redigeret HAR-fil kan vise Set-Cookie, redirects og cachebeslutninger, men den skal renses for cookieværdier, tokens, adresser og kundeoplysninger. Skriv den præcise browsersekvens ned, og gentag den efter rettelsen. “Kurven virker nu” er svagt bevis; samme session gennem fem sidevisninger og to fortsat adskilte testkurve er et resultat, der kan kontrolleres.