채택완료

로그인 시 장바구니 세션 유지하지 않기

2021-03-04 (목) 11:48:20 2,649

[code]

// cart id 설정
function set_cart_id($direct)
{
    global $g5, $default, $member;

    if ($direct) {
        $tmp_cart_id = get_session('ss_cart_direct');
        if(!$tmp_cart_id) {
            $tmp_cart_id = get_uniqid();
            set_session('ss_cart_direct', $tmp_cart_id);
        }
    } else {
        // 비회원장바구니 cart id 쿠키설정
        if($default['de_guest_cart_use']) {
            $tmp_cart_id = preg_replace('/[^a-z0-9_\-]/i', '', get_cookie('ck_guest_cart_id'));
            if($tmp_cart_id) {
                set_session('ss_cart_id', $tmp_cart_id);
                //set_cookie('ck_guest_cart_id', $tmp_cart_id, ($default['de_cart_keep_term'] * 86400));
            } else {
                $tmp_cart_id = get_uniqid();
                set_session('ss_cart_id', $tmp_cart_id);
                set_cookie('ck_guest_cart_id', $tmp_cart_id, ($default['de_cart_keep_term'] * 86400));
            }
        } else {
            $tmp_cart_id = get_session('ss_cart_id');
            if(!$tmp_cart_id) {
                $tmp_cart_id = get_uniqid();
                set_session('ss_cart_id', $tmp_cart_id);
            }
        }

        // 보관된 회원장바구니 자료 cart id 변경
        if($member['mb_id'] && $tmp_cart_id) {
            $sql = " update {$g5['g5_shop_cart_table']}
                        set od_id = '$tmp_cart_id'
                        where mb_id = '{$member['mb_id']}'
                          and ct_direct = '0'
                          and ct_status = '쇼핑' ";
            sql_query($sql);
        }
    }
}
[code]

비회원으로 있다가 로그인 시 장바구니 세션이 유지되지 않고 초기화되길 원하는데요

위 소스에서 어딜 수정해야 할까요?

답변 2개

채택된 답변
+20 포인트

set_cookie('ck_guest_cart_id', '', 0);
ck_guest_cart_id 쿠키를 로그인, 로그아웃 시 초기화 해주면 됩니다.

그런데 커스텀 된게 아니라면, 영카트에서 장바구니는 ss_on_uid 키 아니었던가요?;; 가물가물하지만;;

먼저 글에서 답변드린것처럼 login_check.php 에서 

unset($_SESSION['ss_on_uid']);

도 한번 해보셔요~

답변을 작성하려면 로그인이 필요합니다.