Hopp til innhold
Blogg

WooCommerce checkout henger i innlasting? Vanlige årsaker og løsninger

12. juni 2026 · Webnorly · 13 min lesetid

En WooCommerce checkout-side som henger i innlasting, er mer enn en irritasjon. Den hindrer kunder i å legge inn bestillinger, blokkerer betalingsmetoder fra å laste, og tapper i det stille omsetning mens resten av nettstedet ser helt normalt ut. Symptomet er som regel enkelt: kunden når checkouten, fyller inn detaljene sine, og ordresammendraget bare fortsetter å spinne. Noen ganger dukker ikke betalingsmetodene opp, noen ganger blir «Fullfør bestilling»-knappen uresponsiv, og noen ganger skjer det ingenting åpenbart i det hele tatt.

Det vanskelige er at innlastingsproblemer i checkouten kan komme fra flere ulike lag: pluginkonflikter, temaproblemer, caching, AJAX-svikt, PHP-advarsler, betalingsgateway-konflikter, rewrites på servernivå, sikkerhets- og brannmurregler, ødelagt JavaScript eller ugyldige JSON-responser. Derfor er den beste løsningen ikke å deaktivere plugins tilfeldig eller bygge checkouten på nytt. Den beste løsningen er å finne hvor checkout-forespørselen faktisk ryker.

Denne guiden forklarer hvorfor WooCommerce-checkout henger i innlasting, hvordan du feilsøker det ordentlig, og hva du bør sjekke før du gjør større endringer.

Hva betyr vanligvis «WooCommerce checkout henger i innlasting»?

WooCommerce-checkout er dynamisk. Når en kunde fyller inn fakturadetaljer, bytter land, legger til en rabattkode, velger frakt eller velger betalingsmetode, sender WooCommerce bakgrunnsforespørsler for å oppdatere ordresammendraget. De forespørslene går via AJAX, og en vanlig en ser slik ut:

/?wc-ajax=update_order_review

Denne forespørselen oppdaterer ordretotal, avgift, fraktmetoder, betalingsmetoder, rabattkodeberegninger, handlekurv-fragmenter og meldinger i checkouten. Hvis den feiler eller returnerer feil respons, kan checkout-siden henge i det uendelige. Spinneren er sjelden det egentlige problemet. Den er bare det synlige symptomet. Den faktiske årsaken er som regel en av disse:

  • Forespørselen fullføres aldri
  • Forespørselen returnerer en feil
  • Forespørselen returnerer HTML i stedet for JSON
  • Forespørselen blokkeres av sikkerhetsregler
  • PHP-advarsler injiseres i responsen
  • JavaScript klarer ikke å behandle de returnerte dataene
  • Caching serverer utdatert eller ugyldig innhold

Vanlige symptomer på en ødelagt WooCommerce-checkout

Et innlastingsproblem i checkouten dukker opp på ulike måter. Du kan se en evig spinner i ordresammendraget, betalingsmetoder som aldri dukker opp, en «Fullfør bestilling»-knapp som ikke lar seg klikke, en side som lastes på nytt uten å legge inn bestillingen, fraktmetoder som ikke oppdateres, en uresponsiv rabattkode-seksjon, felt som oppfører seg rart, konsollfeil, betalingsgateway-feil, en tom ordresammendrag-boks, eller en ordrebekreftelsesside som aldri nås. Kunder rapporterer ofte at «betalingen ikke fungerer», men gatewayen er kanskje ikke det egentlige problemet. Checkouten kan ryke før betalingssteget i det hele tatt begynner.

Regel nummer én: Ikke anta at det er betalingsgatewayen

Når checkouten feiler, får betalingspluginen skylden først. Det er forståelig, siden checkout og betaling skjer tett på hverandre. Men WooCommerce-checkout kan ryke lenge før betaling er involvert. Før du legger skylden på Stripe, PayPal, Mollie, Klarna, Vipps eller en annen gateway, sjekk om selve checkout-AJAX-forespørselen fungerer. Hvis update_order_review feiler, kan gatewayen bare være et nedstrøms symptom. En rask test:

  1. Aktiver midlertidig en enkel betalingsmetode, som bankoverføring.
  2. Deaktiver hovedbetalingsgatewayen.
  3. Test checkouten på nytt.
  4. Sjekk om spinneren fortsatt dukker opp.

Hvis checkouten fortsatt henger med en enkel metode aktivert, er problemet sannsynligvis ikke betalingsleverandøren.

Årsak 1: WooCommerce-AJAX som returnerer feil respons

Dette er en av de viktigste årsakene. WooCommerce forventer at checkout-AJAX-responser er gyldig JSON, men noen ganger returnerer serveren en vanlig HTML-side i stedet. I Network-fanen i nettleseren kan du se:

Status: 200 OK
Content-Type: text/html

Ved første øyekast ser 200 OK vellykket ut. Men hvis WooCommerce forventer JSON og får HTML, klarer ikke checkout-JavaScripten å behandle responsen, og resultatet er som regel en evig spinner. Hvis du åpner responsen og ser en full nettside som denne, er det et problem:

<!DOCTYPE html>
<html>
<head>
  <title>...</title>
</head>
<body>
...
</body>
</html>

Det betyr at noe fanger opp AJAX-forespørselen. Mulige syndere er en .htaccess-rewrite, et cache-lag, en omdirigeringsregel, en sikkerhetsplugin, vedlikeholdsmodus, en innloggingsomdirigering, egendefinert PHP-output, en brannmurside fra serveren, eller en tema- eller pluginkonflikt. Det er nettopp derfor det er kritisk å sjekke responskroppen.

Årsak 2: Caching av checkout, handlekurv eller AJAX-forespørsler

Handlekurv og checkout må forbli dynamiske. De bør aldri serveres som statisk bufrede sider. Når caching er feilkonfigurert, kan WooCommerce vise utdaterte handlekurvdata, ødelagte totaler, ugyldige øktdata eller evig innlasting. Vanlige kilder er en WordPress cache-plugin, LiteSpeed Cache, WP Rocket, server-cache, Cloudflare, et CDN, nettleser-cache, object cache eller en optimaliseringsplugin. De viktige stiene å ekskludere fra full-side-caching er:

/cart/
/checkout/
/my-account/
/?wc-ajax=

Vær også oppmerksom på cookies som signaliserer en aktiv WooCommerce-økt:

woocommerce_items_in_cart
woocommerce_cart_hash
wp_woocommerce_session_

Når disse cookiene er til stede, er den besøkende i en dynamisk økt, og en full-side-cache bør ikke servere alle den samme statiske siden.

Hva du bør sjekke

  • Er checkouten ekskludert fra cache?
  • Er handlekurven ekskludert fra cache?
  • Er wc-ajax ekskludert?
  • Cacher Cloudflare dynamiske sider?
  • Er server-cache aktiv selv når pluginen er deaktivert?
  • Serverer mobil-cache en egen ødelagt versjon?
  • Forsinker JavaScript-minifisering WooCommerce-skriptene?

En cache-plugin kan være av mens server- eller CDN-cache fortsatt påvirker siden, så sjekk alltid hvert lag.

Årsak 3: PHP-advarsler som ødelegger AJAX-responser

WooCommerce-AJAX-responser må være rene. Hvis PHP-advarsler eller -meldinger skrives ut i responsen, ryker JSON-en. En typisk advarsel:

Warning: Undefined array key "redirect_cache"

Dette skjer når egendefinert kode leser en array-nøkkel uten å sjekke at den finnes:

$id = $_SESSION['redirect_cache'];

En tryggere versjon:

$id = isset($_SESSION['redirect_cache']) ? (int) $_SESSION['redirect_cache'] : 0;

Selv en liten advarsel kan forurense en AJAX-respons. På en vanlig side vises advarselen over innholdet; inne i et AJAX-kall kan den gjøre hele responsen ugyldig.

Hva du bør sjekke

Åpne AJAX-responskroppen og se etter PHP-advarsler, -meldinger, deprecation-meldinger, feiloutput fra plugins, HTML før JSON-en, debug-output, gjenglemte var_dump() eller print_r(), eller en utilsiktet echo. Hvis noe av dette dukker opp under checkout-AJAX, fiks kilden og hindre frontend i å vise feil. I produksjon bør debug-output gå til en logg, ikke til besøkende:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

Dette erstatter ikke det å rette koden, men det hindrer advarsler i å ødelegge frontend-responser.

Årsak 4: JavaScript-feil på checkout-siden

WooCommerce-checkout lener seg tungt på JavaScript. Hvis et annet skript kaster en feil før checkout-skriptene er ferdige, kan checkouten slutte å oppdatere seg. Vanlige årsaker er en feil i temaskriptet, et egendefinert checkout-skript, ødelagt minifisert JS, forsinkede eller defer-ede WooCommerce-skript, en konflikt med en optimaliseringsplugin, en manglende avhengighet, en jQuery-konflikt, støy fra nettleserutvidelser, eller et tredjeparts sporingsskript.

Hva du bør sjekke

Åpne DevTools og sjekk Console-fanen for røde feil knyttet til:

checkout
wc_checkout_params
update_order_review
jQuery
payment_method
fragments

Ikke alle konsollfeil betyr noe. Noen nettleserutvidelser genererer urelatert støy. For checkout-problemer er Network-fanen som regel mer avslørende enn Console, men JavaScript-feil er fortsatt verdt å gå gjennom.

Årsak 5: Tema- eller malkonflikter

Checkouten kan ryke når et tema overstyrer WooCommerce-maler feil. Se etter utdaterte maloverstyringer, manglende checkout-hooks, en fjernet meldingsseksjon, et egendefinert oppsett som skjuler påkrevde elementer, egendefinert JavaScript som forstyrrer WooCommerce-hendelser, en manglende wp_footer() eller wp_head(), feil skjemamarkup, eller CSS som skjuler betalingsmetoder eller knapper. WooCommerce-maler er avhengige av hooks, så hvis et tema fjerner eller flytter viktige hooks, blir checkouten ustabil.

Hva du bør sjekke

Gå til:

WooCommerce → Status → Maler

Sjekk om noen maler er utdaterte, og undersøk om det aktive temaet har overstyringer inne i:

ditt-tema/woocommerce/

Hvis checkout-maler er overstyrt, sammenlign dem med de gjeldende WooCommerce-versjonene. En rask test er å bytte midlertidig til et standardtema som Storefront og teste checkouten på nytt. Hvis den fungerer med Storefront, ligger problemet sannsynligvis i temaet eller maloverstyringene.

Årsak 6: Pluginkonflikter

Pluginkonflikter er vanlige, men de bør testes metodisk, ikke ved gjetting. Plugins som ofte påvirker checkouten, er betalingsgatewayer, fraktplugins, redigeringsverktøy for checkout-felt, flerspråksplugins, valutavekslere, avgifts- og mva-plugins, sikkerhetsplugins, cache- og optimaliseringsplugins, plugins for egendefinerte kodesnutter, anti-spam-plugins, analyse- og sporingsplugins, og faktura- eller ordreplugins.

Slik tester du trygt

På et staging-nettsted, deaktiver alle ikke-essensielle plugins bortsett fra WooCommerce, og test checkouten. Hvis den fungerer, reaktiver pluginene én etter én til problemet kommer tilbake, og start med de mest sannsynlige:

  1. Betalingsplugins
  2. Fraktplugins
  3. Checkout-felt-plugins
  4. Cache- og optimaliseringsplugins
  5. Sikkerhetsplugins
  6. Egendefinerte kodesnutter
  7. Sporings- og analyseplugins

Unngå å gjøre dette direkte på en travel live butikk med mindre du ikke har noe annet valg og trafikken er lav.

Årsak 7: Rewrite- eller omdirigeringsregler på servernivå

Noen ganger ryker checkouten fordi WordPress aldri mottar forespørselen riktig, gjennom .htaccess, Nginx, LiteSpeed eller CDN-regler. En rewrite kan ved et uhell fange opp en forespørsel som:

/?wc-ajax=update_order_review

Når det skjer, kan WooCommerce motta en statisk forside, en omdirigering, en 403-side, en bufret HTML-fil, en innloggingsside eller en brannmurmelding, noe som gir evig innlasting selv om WooCommerce i seg selv er i orden. Det var nettopp dette som skjedde i en checkout-sak vi sporet til en .htaccess-rewrite, der en regel for statisk forside fanget opp WooCommerce-AJAX-forespørselen.

Hva du bør sjekke

Gå gjennom .htaccess, Nginx-regler, LiteSpeed-regler, Cloudflare-sideregler, regler i omdirigeringsplugins, server-cache-regler og logger fra sikkerhetsbrannmuren. Vær spesielt forsiktig med alt som berører:

/
/checkout/
/cart/
/my-account/
/?wc-ajax=

En liten regel på servernivå kan ødelegge en stor del av WooCommerce.

Årsak 8: Sikkerhetsbrannmur eller ModSecurity som blokkerer forespørsler

Sikkerhetslag kan blokkere checkout-forespørsler når de ser mistenkelige ut, fordi de forespørslene bærer kundedata, adressefelt, betalingsmetadata, AJAX-payloads, nonce-verdier og dynamiske øktdata. En blokkert forespørsel kan returnere:

403 Forbidden

eller en merkevarebygd sikkerhetsside. Noen ganger returnerer den fortsatt 200 OK med en verifiseringsside, som er enda vanskeligere å oppdage.

Hva du bør sjekke

I Network-fanen, inspiser den feilede forespørselen og se etter status 403, 406 eller 500, brannmur-HTML, en captcha- eller verifiseringsside, eller meldinger som «Access denied» eller «Not acceptable». Hvis du mistenker dette, sjekk brannmurloggene hos hostingleverandøren eller spør leverandøren om ModSecurity blokkerte forespørselen.

Årsak 9: Problemer med tilpasning av checkout-felt

Egendefinerte checkout-felt kan ødelegge checkouten når de legges til feil: påkrevde felt uten validering, ugyldige feltnøkler, usaniterte egendefinerte felt, adressefelt fjernet på feil måte, dårlig omdøpte faktura- eller leveringsfelt, en konflikt med et redigeringsverktøy for checkout-felt, eller JavaScript som forventer et felt som ikke lenger finnes. Å fjerne et felt bør for eksempel gjøres gjennom checkout-felt-hooks, ikke ved å slette markup for hånd:

add_filter('woocommerce_checkout_fields', function($fields) {
    unset($fields['billing']['billing_address_2']);

    if (isset($fields['billing']['billing_phone'])) {
        $fields['billing']['billing_phone']['required'] = true;
    }

    return $fields;
});

Dette er langt tryggere enn å redigere WooCommerce-kjernefiler eller skjule felt med CSS alene.

Årsak 10: Manglende WooCommerce-sider eller feil sideinnstillinger

WooCommerce er avhengig av bestemte sider for handlekurv, checkout, konto og vilkår. Hvis de mangler eller er feil tilordnet, oppfører checkouten seg uforutsigbart. Sjekk:

WooCommerce → Innstillinger → Avansert

Bekreft at Handlekurv-siden, Checkout-siden, Min konto-siden og siden for vilkår og betingelser (hvis den brukes) er riktig tilordnet. Bekreft også at checkout-siden inneholder riktig WooCommerce checkout-blokk eller shortcode, som avhengig av oppsettet kan være:

[woocommerce_checkout]

eller WooCommerce Checkout-blokken.

Årsak 11: Problemer med REST API eller admin-ajax

WooCommerce og WordPress bruker bakgrunnsforespørsler hele tiden. Hvis REST API- eller AJAX-endepunktene er blokkert, kan handlekurv- og checkout-oppførsel ryke. Sjekk REST API på:

/wp-json/

og AJAX-forespørsler som:

/wp-admin/admin-ajax.php
/?wc-ajax=...

Mulige blokkerere er en sikkerhetsplugin, en brannmur, en serverregel, en feilformet omdirigering, ødelagt SSL, blandet innhold, et cache-lag eller en feil nettsteds-URL. Hvis admin-ajax eller REST API er blokkert, feiler mange WordPress-funksjoner utover checkouten.

Slik feilsøker du innlasting av WooCommerce-checkout ordentlig

Her er en praktisk prosess.

Steg 1: Reproduser problemet

Åpne checkouten i en inkognito-nettleser og kjør hele løypa, mens du følger ordresammendraget:

Legg til produkt → Handlekurv → Checkout → Fyll ut felt → Følg ordresammendraget

Bekreft nøyaktig når spinneren starter.

Steg 2: Åpne DevTools i nettleseren

Gå til nettverksforespørslene:

Network → Fetch/XHR

Last checkouten på nytt og se etter:

?wc-ajax=update_order_review

Steg 3: Sjekk statuskoden

Se etter 200, 302, 403, 404 eller 500. Hver av dem forteller sin egen historie.

Steg 4: Sjekk responsheaderne

Vær oppmerksom på:

Content-Type
Cache-Control
Server
Location

Hvis Content-Type er text/html når JSON forventes, inspiser responskroppen.

Steg 5: Sjekk responskroppen

Se etter en full HTML-side, en PHP-advarsel, en innloggingsside, en sikkerhetsblokkering, en omdirigeringsside, ugyldig JSON eller en bufret forside.

Steg 6: Sjekk konsollen

Se etter relevante JavaScript-feil, og ignorer åpenbar støy fra nettleserutvidelser med mindre den direkte påvirker checkout-skriptene.

Steg 7: Sjekk loggene

Gå gjennom WooCommerce-loggene, PHP-feilloggen, WordPress-debugloggen, serverfeilloggen og eventuell brannmur- eller ModSecurity-logg.

Steg 8: Test tema- og pluginkonflikter

Bruk staging der det er mulig. Bytt tema og reduser antall plugins for å isolere problemet.

Hvordan en sunn WooCommerce checkout-forespørsel bør se ut

En sunn checkout-AJAX-forespørsel bør fullføres raskt, returnere riktig responsformat, unngå å returnere full HTML uventet, ikke inneholde PHP-advarsler, ikke være bufret feil, ikke blokkeres av en brannmur, utløse oppdatering av ordresammendraget, tillate valg av betalingsmetode, og la bestillingen gå videre. Forespørsler trenger ikke se identiske ut på tvers av butikker, men responsen må være gyldig for at WooCommerce skal kunne behandle den.

Hva du ikke bør gjøre

Når checkouten henger i innlasting, unngå disse:

  • Å bygge checkouten på nytt med en gang
  • Å redigere WooCommerce-kjernefiler
  • Å skjule feil uten å sjekke årsaken
  • Å deaktivere tilfeldige plugins på en live butikk i rushtrafikk
  • Å anta at betalingsgatewayen er årsaken
  • Å tømme cache gjentatte ganger uten å sjekke Network-responsen
  • Å bytte tema før du sjekker AJAX
  • Å legge til flere kodesnutter for å «tvinge» checkouten til å fungere
  • Å ignorere PHP-advarsler fordi «siden laster jo fortsatt»
  • Å endre .htaccess uten å teste dynamiske forespørsler

Den raskeste løsningen kommer som regel fra å identifisere den nøyaktige forespørselen som feiler.

Når du bør be om hjelp

Det er verdt å hente inn ekspertise når:

  • Checkouten fortsetter å spinne etter grunnleggende feilsøking
  • update_order_review returnerer HTML i stedet for JSON
  • Betalingsmetoder forsvinner
  • «Fullfør bestilling»-knappen ikke responderer
  • Checkouten bare fungerer av og til
  • PHP-advarsler dukker opp i checkouten
  • Checkouten ryker etter at AI-generert kode er lagt til
  • Cache-ekskluderinger ikke løser problemet
  • Testing av tema- og pluginkonflikter ikke avdekker årsaken
  • Serverregler eller brannmuroppførsel ser mistenkelig ut

Checkout-problemer er som regel fiksbare, men gjetting kaster bort tid og kan skape nye problemer.

Avsluttende tanker

En WooCommerce-checkout som henger i innlasting, er sjelden et mysterium når du følger forespørselsstien. Trikset er å slutte å stirre på spinneren og begynne å sjekke hva serveren faktisk returnerer til WooCommerce. I mange tilfeller er problemet ikke WooCommerce selv, men noe rundt det: caching, server-rewrites, ugyldig PHP-output, sikkerhetsregler, maloverstyringer, JavaScript-konflikter eller plugin-oppførsel. Den tryggeste løsningen er den som gjenoppretter WooCommerce sin native flyt i stedet for å erstatte den unødvendig.


Hvis WooCommerce-checkouten din henger i innlasting, kan Webnorly gå gjennom problemet, finne forespørselen som feiler, og gjenopprette checkout-flyten trygt. Send oss saken, så sporer vi den fra spinneren tilbake til forespørselen som faktisk ryker.