Wie können wir helfen?
Woocommerce Caching Probleme mit nginx Proxy
Symptom
- Woocommerce “Add to basket” / “Zum Warenkorb hinzufügen” funktioniert nicht
- Kommentare in WordPress hinzufügen funktioniert nicht
- Woocommerce Produkte aus dem Warenkorb entfernen funktioniert nicht
Ursache
Wenn Sie WordPress und Woocommerce zusammen auf einem Webserver mit aktiviertem nginx Proxy einsetzen, werden die Cookies nicht neutral gespeichert und jeder Websitebenutzer erhält eventuell kein Cookie bzw. kein persönliches.
Lösung
- Wenden Sie sich bei Woocommerce Hosting Lösungen an einen Partner, der sich damit auskennt
- Nutzen Sie nginx vorerst nur, wenn Sie die Leistung tatsächlich in absehbarer Zeit benötigen
- Fügen Sie folgende Code Snippets in ihre nginx Konfiguration ein, bitte seien Sie damit vorsichtig!
Skip Cache auf woocommerce Seiten
if ($request_uri ~* "/store.*|/cart.*|/my-account.*|/checkout.*|/addons.*") {
set $skip_cache 1;
}
Skip Cache für woocommerce Query String
if ( $arg_add-to-cart != "" ) {
set $skip_cache 1;
}
Skip Cache wenn der Warenkorb nicht leer ist
if ( $cookie_woocommerce_items_in_cart != "0" ) {
set $skip_cache 1;
}
Fastcgi Cache Problem
Voraussetzung ist, dass Sie einwandfreie Apache und nginx Konfigurationen einsetzen. Sollte es zu mehreren Fehlern im Caching kommen, müssen zuvor die anderen Probleme behoben werden.
Suchen Sie nach diesem Konfigurationsabschnitt:
location ~ \.php$ {
try_files $uri =404;
und ersetzen diesen mit folgendem Code:
location ~ \.php$ {
set $rt_session "";
if ($http_cookie ~* "wc_session_cookie_[^=]*=([^%]+)%7C") {
set $rt_session wc_session_cookie_$1;
}
if ($skip_cache = 0 ) {
more_clear_headers "Set-Cookie*";
set $rt_session "";
}
fastcgi_cache_key "$scheme$request_method$host$request_uri$rt_session";
try_files $uri =404;