在OpenCart3中如何防止在$ this-> cart-> add(...)中添加额外的字符?

时间:2017-11-09 05:45:27

标签: opencart encode cart opencart-3

我正在自定义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

1 个答案:

答案 0 :(得分: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']);
    }
}