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: 2. oktober 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
- Skel mellem en tom visning og en slettet session
- Reproducer fejlen uden at forstyrre kunder
- Diagnoseoversigt
- Løsning i den sikreste rækkefølge
- Samtykke og nødvendige cookies
- Når flere cachelag er aktive
- Mikroeksempel: Kurven forsvinder først efter login
- Brug to negative kontroller
- Verifikation
- Rollback
- Hvornår skal du eskalere?
- Læs også
- Dokumentér et sessionstab sikkert
Skel mellem en tom visning og en slettet session
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.

Reproducer fejlen uden at forstyrre kunder
- Åbn et nyt privat vindue og start på butikkens endelige HTTPS-domæne.
- Tilføj én ufarlig testvare. Notér URL og tidspunkt.
- Se i browserens Storage/Application-visning, om WooCommerce-cookies bliver oprettet. Dokumenter kun cookienavne, domæne, path og udløb; publicer aldrig cookieværdier.
- Åbn en produktside, kurven og checkout i samme fane. Notér præcis hvor varen forsvinder.
- Gentag efter login, hvis fejlen er knyttet til kundekonti.
- Sammenlign responsheaders for en tom og en korrekt kurv. Se efter cache HIT/BYPASS og redirects.
Diagnoseoversigt
| 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 |
Løsning i den sikreste rækkefølge
1. Ensret domæne og HTTPS
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.
2. Bekræft WooCommerce-cookies
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.
3. Test cachebypass
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.
4. Undersøg redirects, sprog og valuta
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.
5. Kontrollér sessionlagring og oprydning
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.
6. Konflikttest på staging
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.
Samtykke og nødvendige cookies
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.
Når flere cachelag er aktive
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.
Mikroeksempel: Kurven forsvinder først efter login
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.
Brug to negative kontroller
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.
Verifikation
- En gæstekurv bevares fra produkt til kurv og checkout på det endelige domæne.
- En indlogget testkundes kurv opfører sig som butikkens dokumenterede regel ved login.
- To private browsere har hver sin kurv og ser aldrig hinandens varer.
- Dynamiske sider viser BYPASS/no-store efter cachearkitekturens design.
- Kurven overlever den dokumenterede sessionperiode og tømmes korrekt efter en gennemført ordre.
Rollback
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.
Hvornår skal du eskalere?
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.
Ofte stillede spørgsmål om tom kurv
Hvorfor forsvinder varerne fra kurven?
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.
Hvordan tester jeg, om det er cookien, der fejler?
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.
Kan mit cacheplugin tømme kunders kurve?
Ja, hvis kurv- og checkout-sider fuldside-caches eller cookies strippes. Undtag /kurv/, /checkout/ og mine-konto-sider fra cache, og purge efter ændringen.
Læs også
- WooCommerce fejl og fejlfinding
- WooCommerce checkout virker ikke
- WooCommerce-kurven opdaterer ikke
- Deaktiver WooCommerce Cart Fragments
- Cloudflare Cache Rules til WooCommerce
Dokumentér et sessionstab sikkert
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.
Udgivet 28. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026
