1

我们正在建立一个基于 Codeigniter 的网上商店。在 Codeigniters 的购物车类的帮助下,产品被保存在购物车中。

当访问者使用其帐户登录时,已在其购物车中的所有产品都将被删除,因为用户登录时会启动一个新会话。

此时我们如何才能将产品保留在购物车中?

if($query->num_rows() == 1)
    {
        $user = $query->row_array();
        $data = array(
                'userid' => $user['id'],
                'email' => $user['email'],
                'validated' => true
                );
        $this->session->set_userdata($data);

        return true;
    }
4

2 回答 2

1

您必须在基础中创建新表,例如购物车,并传递该表中该图表类的所有项目和用户 ID,然后当用户登录时,只需使用他的 ID 和行 ID 查询该表,现在您就获得了所有产品。但是当用户再见时,只需删除基础中的行并取消设置购物车类

  $data = array(
                   'id'      => 'sku_123ABC',
                   'qty'     => 1,
                   'price'   => 39.95,
                   'name'    => 'T-Shirt',
                   'options' => array('Size' => 'L', 'Color' => 'Red'
                   'user_id  => '45')
                );

    $this->cart->insert($data);
    $chart = $this->cart->contents();
    $this->db->insert('shoppingcarts',$chart);

这只是一个简单的例子,如何做到这一点:)

于 2013-07-21T21:25:49.470 回答
1

如果用户有帐户,您需要将数据保存在数据库中。

如果用户没有帐户并且您想保留他的图表(基于浏览器),那么您不需要在用户关闭窗口时销毁会话。您需要保持会话状态,直到他清除图表。你可以在config.php文件上做。

于 2013-07-21T21:53:17.280 回答