Beim WooCommerce-Shop eines Kunden, stellten wir fest, es war nicht möglich Positionen aus dem Warenkorb zu entfernen. Beim Klick auf „Position entfernen“ wurde der Warenkorb neugeladen und es gab keine Änderung.
Es kann verschiedene Ursachen haben. Oft ist es, ein falsch konfiguriertes Caching. Das war hier bei mir aber nicht der Fall. Das war auch meine erste Vermutung. Allerdings war hier nginx im Einsatz und wurde die Konfiguration, die im Server verwendet wurde, sah nicht so aus, wie von WordPress (https://wordpress.org/documentation/article/nginx/) bzw. nginx selbst (https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress/) empfohlen.
Lösung, wenn es sich um einen nginx-Fehler handelt
Der Abschnitt location / beim vhost muss wie folgt aussehen:
location / {
try_files $uri $uri/ /index.php?$args;
}
In dem Fall bei dem Kunden hatte bei dem Abschnitt ?$args gefehlt. Bei Änderungen an der nginx-Konfiguration einen Service-Reload nicht vergessen. Unter Ubuntu folgendes ausführen:
systemctl reload nginx
Lösung: Es handelt sich um ein Caching-Problem mit W3 Total Cache
Wird in der WordPress-Installation das Caching-Plugin W3 Total Cache eingesetzt, so ist es notwendig das Plugin so zu konfigurieren, damit die Seiten Warenkorb oder Kasse nicht gecacht werden. Andernfalls kann es zu Problemen führen.
Unter W3 Total Cache -> Page Cache -> Never cache the following pages folgende Einträge einfügen:

Hier nochmal die Werte zum Rauskopieren:
/cart*
/checkout*
oder
/warenkorb*
/kasse*
je nachdem ob die deutsche oder Englische Version von WooCommerce im Einsatz ist.