2017-10-18 19 views
0

私はwoocommerceのカートに少し問題があります。問題のWoocommerce、カート、セッション

説明:

は私がログインしていますと言うが、私はカート内の3つの製品を持っています。私がログアウトすると、カートには0品目があります。私は製品を追加してログインし直しました。私はまだログアウトしている間に追加した製品を持っています。それはうまくいきます、あなたがナビゲートして、ちょうど決済時にログインすると、あなたは古いカートアイテムが突然現れないようにします。今、私がログアウトすると、私は突然あなたが誰にもなれず、新しいユーザーが引き継ぐと仮定できるので、0の製品もあります。しかし、空のカートで再びログインすると、前回の訪問時に1を持っていたのではなく、最初から3つの製品があります。

私が達成したいこと。既定では、上記のストーリーでは、woocommerceは1アイテムのカートを期待どおりに表示します。しかし、私が構築するテーマでは、カート全体をajax経由で読み込みます。

function sp_get_cart() { 
    $cart = WC()->cart->get_cart(); 
    wp_send_json($cart); 
} 
add_action('wp_ajax_get_cart', 'sp_get_cart'); 
add_action('wp_ajax_nopriv_get_cart', 'sp_get_cart'); 

は私もアヤックスでの作業全体サインオン/サインアウトの部分を持っている:私は基本的にはこれを行い、ほとんどの機能を持っています。私は、私が見逃している可能性のあるものについては、私は何も見つけられませんでした。サインオンやサインアウトを処理する際に何か具体的なことを行う必要がありますか?私はwoocommerceのセッションのデフォルト動作に頼っていると思ったが、何かが壊れているように見えた。カート内のアイテムでログインすると、新しいカートアイテムはデータベースに保存されたセッションに追加されない次のサインオンが発生し、前のバージョンがロードされています。どんな助けでも大歓迎です。

編集:ここでのログアウト機能は、私は明日の朝みますが、使用してwoocommerceされていない

function sp_logout() { 
    WC()->session->destroy_session(); 
    wp_logout(); 
    ob_clean(); 
    // $_SESSION = array(); 

    http_response_code(200); 
    wp_send_json(array('status' => 'OK')); 
    die(); 
} 
add_action('wp_ajax_logout', 'sp_logout'); 
add_action('wp_ajax_nopriv_logout', 'sp_logout'); 

答えて

0

があなたのログアウト機能に、 $_SESSION = array();

+0

を$ _SESSIONグローバル変数をクリアしてみていますセッション2.5のデータベースですか?私はすでにログアウト時にクッキーをクリアします。私はそれが役立つ場合、明日ログアウトajax関数を貼り付けることができます。 –

+0

運がよければ、投稿を編集してajaxログアウト機能を追加します。 –

関連する問題