2017-04-04 4 views
-1

私はCodeigniterでカートセッションを使用しています。私の問題は、買い手がログアウトするとカートセッションが破棄されることです。戻ってきて再度ログインした顧客のためにまだ処理されていないカートデータを保持するにはどうすればよいですか?ユーザーがログアウトしたときにカートのデータを保存する方法はありますか?

+0

foreach ($this->cart->contents() as $items){ $this->db->from('temp_cart'); $this->db->set('id_user', LOGGED USER ID); $this->db->set('cart_row', json_encode($items)); $this->db->insert(); } 

を、私は私の答えを削除しました私は[ShadowElf](http://stackoverflow.com/users/7821496/shadowelf)が正しいと思います。 –

+0

from CI docs:カートのライブラリは廃止されており、使用しないでください。現在、下位互換性のためにのみ保持されています。 https://www.codeigniter.com/userguide3/libraries/cart.html#shopping-cart-class – Vickel

答えて

1

データベースにデータを保存するには、ログアウト時に手順を追加する必要があります。

ログイン時にデータベースから取り出してカートに追加します。

唯一の解決策であるか、カート全体のコードを書き直す必要があります。

私の解決策:データベースカート、およびクッキー:)あなたがログインしているかどうかに関わらず。また、カートに入っているものを管理者として見ることができます。

あなたがログアウトしないとき...あなたはこのような何かを追加する必要があります。それはそのことについて申し訳ありません、正しい答えではありませんので、あなたがログインしてたときに

$this->db->select('*'); 
$this->db->from('temp_cart'); 
$this->db->where('id_user', LOGGED USER ID); 
$res=$this->db->get(); 
foreach($res->result_array() as $row{ 
    $row=json_decode($row, TRUE); 
    $this->cart->insert($row); 
} 

$this->db->from('temp_cart'); 
$this->db->where('id_user', LOGGED USER ID); 
$this->db->delete(); 
+0

本当に分かりませんが、参考リンクやチュートリアルを教えていただけますか? – devitamnda

関連する問題