Wie Sie weiter unten sehen werden, tut woocommerce_cart_hash
nicht enthält die Produkte im Warenkorb, weil es eine dritte komplexere coockie ist im Zusammenhang mit WooCommerce Sitzungen DB-Tabelle.
Die Daten ist nicht im Cookie gespeichert sich aber in einem entsprechenden Referenz befindet sich in DB WooCommerce Sitzung (Details siehe unten) ...
Sie haben auch zu beachten, dass Wordpress einige lokale ermöglichen Datenspeicher.
Die folgenden Daten stammen aus einem realen Beispielfall, bei dem ein nicht angemeldeter Benutzer 2 Produkte in den Warenkorb legt.
1) WooCommerce Set 3 coockies, wenn ein nicht Benutzer etwas in den Warenkorb angemeldet:
woocommerce_cart_hash
=>44ffcb32800e5b20cfbb080753d48408
(Sicherheit/Integrität Hash)
woocommerce_items_in_cart
=>1
(1
wenn etwas im Warenkorb ist)
wp_woocommerce_session_3413758cad2ada414127ffee7347e40f
=>ac5f880c99503169574ad996f35f85c5%7C%7C1469492696%7C%7C1469489096%7C%7C17e565032403642121f5ad12cfa72c41
(vollständig im Zusammenhang mit wp_woocommerce_sessions
DB-Tabelle erstellt Sitzung zur gleichen Zeit, als diese Cookie)
2) und in DB-Tabelle wp_woocommerce_sessions
eine Sitzung bei der generierte gleichzeitig:
session_id
=>6
session_key
=>ac5f880c99503169574ad996f35f85c5
session_value
=>a:18:{s:4:"cart";s:600:"a:2:{s:32:"d82c8d1619ad8176d665453cfb2e55f0";a:9:{s:10:"product_id";i:53;s:12:"variation_id";i:0;s:9:"variation";a:0:{}s:8:"quantity";i:1;s:10:"line_total";d:35;s:8:"line_tax";i:0;s:13:"line_subtotal";i:35;s:17:"line_subtotal_tax";i:0;s:13:"line_tax_data";a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}}s:32:"a5bfc9e07964f8dddeb95fc584cd965d";a:9:{s:10:"product_id";i:37;s:12:"variation_id";i:0;s:9:"variation";a:0:{}s:8:"quantity";i:1;s:10:"line_total";d:18;s:8:"line_tax";i:0;s:13:"line_subtotal";i:18;s:17:"line_subtotal_tax";i:0;s:13:"line_tax_data";a:2:{s:5:"total";a:0:{}s:8:"subtotal";a:0:{}}}}";s:15:"applied_coupons";s:6:"a:0:{}";s:23:"coupon_discount_amounts";s:6:"a:0:{}";s:27:"coupon_discount_tax_amounts";s:6:"a:0:{}";s:21:"removed_cart_contents";s:6:"a:0:{}";s:19:"cart_contents_total";d:53;s:5:"total";d:53;s:8:"subtotal";i:53;s:15:"subtotal_ex_tax";i:53;s:9:"tax_total";i:0;s:5:"taxes";s:6:"a:0:{}";s:14:"shipping_taxes";s:6:"a:0:{}";s:13:"discount_cart";i:0;s:17:"discount_cart_tax";i:0;s:14:"shipping_total";N;s:18:"shipping_tax_total";i:0;s:9:"fee_total";i:0;s:4:"fees";s:6:"a:0:{}";}
session_expiry
=>1469492696
Ich kann nicht alle Kernprozesse erklären (denn das müssen Sie in PHP-Core-Dateien suchen).
Aber wenn Sie schauen, um wp_woocommerce_session_…
Cookie-Wert Sie werden sehen, dass Sie es mit %7C%7C
Teilzeichenfolge schneiden kann, so dass wir hier 4 Substrings für diesen Cookie-Wert:
ac5f880c99503169574ad996f35f85c5
(gleiche Referenz, die in der DB session_key
und session_value
von Tabelle wp_woocommerce_sessions
).
1469492696
(die DB session_expiry
von Tabelle wp_woocommerce_sessions
).
1469489096
(gleiche Sache oben).
17e565032403642121f5ad12cfa72c41
(???- Ich weiß nicht wirklich, was das ist für ...)
Wenn der Benutzer zurückkommen und ein Element in seinem Wagen löschen:
woocommerce_cart_hash
Cookie Wert ändert
woocommerce_items_in_cart
Cookie Wert ändert sich nicht, da ein Artikel im Warenkorb verbleibt.
wp_woocommerce_session_3413758cad2ada414127ffee7347e40f
Cookie Wert ändert sich nicht.
- DB
wp_woocommerce_sessions
TABLE, die Sitzungs-ID 6
wurde gelöscht/ersetzt durch eine neue erzeugt Sitzungs-ID ist, dass der Warenkorb spiegelt ändert (nur ein Produkt).
an dieser Stelle So können Sie die Beziehung zwischen Cookies und Session-DB-Tabelle wp_woocommerce_sessions
sehen, die alle Warenkorb Daten enthält eingeloggte User
im Zusammenhang mit nicht (in einem session_value
serialisierten multidimensionales Array oder Objekt).
Mit Class WC_Cart können Sie diese Daten erhalten.
Sie sollten auch WC()->cart
Syntax in Ihrem PHP-Code verwenden können ...
Mit Class WC_Session_Handler können Sie Sitzungen selbst bearbeiten.
Und zu Ende wird Class WC_Ajax für Warenkorbänderungen verwendet.
Referenzen:
Vielen Dank für Ihre ausführliche Antwort! – ABE
Der letzte Teil des Cookies "wp_woocommerce_session_ .." ist der Cookie-Hash. – lcssanches