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

ショッピングカートなどのベースに新しいテーブルを作成し、そのテーブルの Chart クラスのすべてのアイテムとユーザー 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

ユーザーがアカウントを持っている場合、DB にデータを保存する必要があります。

ユーザーがアカウントを持っておらず、(ブラウザーに基づいて) 彼のチャートを保持したい場合、ユーザーがウィンドウを閉じたときにセッションを破棄する必要はありません。彼がチャートをクリアするまで、セッションを維持する必要があります。ファイルでできconfig.phpます。

于 2013-07-21T21:53:17.280 に答える