0

我正在定制 OpenCart3。由于某些原因,我必须cart在会话中保存表的内容,然后将它们重新插入,但是在使用$this->cart->add(...)额外代码添加会话数据时,会添加到我不知道如何防止的选项中。

foreach($this->session->data['in_cart']['rows'] as $key => $row){
    if ($row['store_id'] != $this->session->data['cart_store_id']) {
        $this->cart->add($row['product_id'], $row['quantity'], $row['option'],  $row['recurring_id'], $row['store_id']);
    }
}

最初的选项应该像这样保存:

{"90":["263"],"89":["260"]}

但他们被保存为:

"{\"142\":[\"494\"],\"141\":[\"492\"]}"

感谢您的任何帮助,但不是down voting

4

1 回答 1

0

我通过将保存的字符串解码为数组来解决问题,然后添加它:

foreach($this->session->data['in_cart_total_products_all_stores']['rows'] as $key => $row){
    if ($row['store_id'] != $this->session->data['cart_store_id']) {
        $options = json_decode($row['option']);
        $this->cart->add($row['product_id'], $row['quantity'], $options,  $row['recurring_id'], $row['store_id']);
    }
}
于 2017-11-09T06:44:43.260 回答