Si l’article apareix al mini-carret i desapareix en navegar, WooCommerce perd la sessió o mostra dues representacions diferents. JavaScript pot actualitzar el mini-carret mentre la pàgina següent serveix HTML antic, o la petició pot crear una sessió nova.
Conserva el navegador fallit. Esborrar cookies elimina l’evidència necessària per diferenciar tots dos casos.
Marca un recorregut controlat
Utilitza un producte senzill amb estoc i anota les URL de producte, carret, una altra pàgina i checkout. Registra si el comptador, el carret i el checkout coincideixen a cada pas.
Prova també una finestra privada nova. Compara mòbil i ordinador només després d’obtenir una transició repetible.
No utilitzis comptes reals ni publiquis identificadors de sessió.
Diferencia pantalla antiga d’estat perdut
Obre el carret directament quan el mini-carret sembli buit. Si el producte hi continua, l’error és als fragments, la caché o el JavaScript del tema.
Inspecciona les peticions de cart fragments o Store API. Una resposta fallida o emmagatzemada pot deixar malament el comptador amb una sessió sana.
Per pàgina:
- comptador visible
- contingut del carret al servidor
- estat de caché
- presència de cookie de sessió
Evita tractar un defecte cosmètic com una pèrdua MySQL.
Segueix la cookie de sessió
Inspecciona wp_woocommerce_session_*, cart hash i items entre peticions. El domini, path, Secure i caducitat han de ser coherents.
Navegar entre www i sense www, HTTP/HTTPS o un subdomini pot deixar enrere la cookie. Tria un host canònic i corregeix els enllaços i redirects a l’origen.
Prova el consentiment acceptat, rebutjat i sense decidir. Les cookies funcionals del carret no han de dependre d’acceptar publicitat.
Comprova les escriptures del servidor
Les sessions de convidats es desen a MySQL. Cerca errors d’escriptura en afegir. Un node de només lectura, disc ple, taula bloquejada o object cache incoherent pot carregar un estat antic.
Si utilitza Redis, confirma que tots els nodes comparteixen configuració i grups correctes. Evitar temporalment un node pot demostrar una incoherència, però no és la reparació final.
Compara peticions gairebé simultànies, com afegir mentre update_cart o fragments s’executen. Una escriptura tardana basada en una versió antiga pot sobreescriure el carret nou.
Inspecciona la caché de pàgina i fragments
El producte i el contingut es poden cachejar, però els fragments personalitzats s’han d’actualitzar. Carret, Checkout i El meu compte necessiten bypass a l’allotjament, WordPress i edge.
Llegeix les capçaleres, no només el panell del connector. Cloudflare o el host poden guardar encara que WordPress indiqui una exclusió.
Després de corregir, prova en fred i de nou amb la caché poblada.
Revisa personalitzacions d’afegir
AJAX, bundles i extensions de quantitat poden actualitzar el navegador abans que el servidor confirmi. Inspecciona la resposta i l’error PHP de la mateixa hora.
El codi no ha de cridar WC()->cart->empty_cart() fora d’una ruta intencionada. Cerca hooks vinculats a login, moneda o idioma en connectors propis i el child theme.
Revisa idioma, login i logout. Defineix si el carret convidat s’ha de fusionar amb el del compte i prova que la fusió no buidi ni dupliqui línies.
Repara el traspàs trencat
Unifica host i HTTPS, corregeix l’abast de la cookie, la consistència MySQL/Redis o la ruta de fragments demostrada. Neteja només les caches pertinents i conserva els carrets no relacionats.
Documenta la causa i evita snippets que reconstrueixin el carret des de valors controlats pel navegador.
Si existeix un clúster, prova cada node després de la correcció.
Verifica la persistència
Prova afegir, eliminar, canviar quantitat, enrere/endavant, login i checkout. El mateix carret ha de sobreviure i un altre navegador privat ha de rebre una sessió separada.
Confirma que no es comparteixen productes ni dades entre visitants.
El manteniment recurrent ha de vigilar errors d’escriptura i recórrer la persistència després de canvis de caché, domini o WooCommerce. La continuïtat del carret és un requisit transaccional, no cosmètic.