也许这很简单,但是我无法理解。
我希望能够从产品中删除选件,如果该产品不再具有选件,请从购物车中删除该产品。
我已经查看了会话值,但看不到那里的可能性:
2014-03-14 15:18:30 - Session Object
(
[data] => Array
(
[language] => nl
[currency] => EUR
[cart] => Array
(
[63:YToxOntpOjI7YTozOntpOjA7czoxOiIyIjtpOjE7czoyOiI0MSI7aToyO3M6MjoiODAiO319:YTozOntpOjI7YToxOntpOjA7czoxOiIxIjt9aTo0MTthOjE6e2k6MDtzOjE6IjIiO31pOjgwO2E6MTp7aTowO3M6MToiMSI7fX0=] => 1
)
[captcha] => dc9c56
[customer_id] => 1
)
)
我也看不到数据库中可以轻松操作的数据。
我查看了该library/cart.php
文件,但似乎不可能...
(其中的代码:)
public function remove($key) {
if (isset($this->session->data['cart'][$key])) {
unset($this->session->data['cart'][$key]);
}
$this->data = array();
}
那么,有人知道如何做这件事的方法(好还是坏,不在乎)?也许收到每个产品并删除一个产品然后插入?
这
[63:YToxOntpOjI7YTozOntpOjA7czoxOiIyIjtpOjE7czoyOiI0MSI7aToyO3M6MjoiODAiO319:YTozOntpOjI7YToxOntpOjA7czoxOiIxIjt9aTo0MTthOjE6e2k6MDtzOjE6IjIiO31pOjgwO2E6MTp7aTowO3M6MToiMSI7fX0=] => 1
是product_id(63),后跟表示产品选项的序列化base64_encoded字符串。
您可以对此进行解码并将其反序列化为数组,然后删除相关选项,检查是否还有剩余空间,等等。
Cart的getProducts()方法对此序列进行反序列化和解码。以下是相关代码:
foreach ($_SESSION['cart'] as $key => $quantity) {
$is_on_special = 0;
$product = explode(':', $key);
$product_id = $product[0];
$stock = true;
// Options
if (isset($product[1])) {
$options = unserialize(base64_decode($product[1]));
} else {
$options = array();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句