woocommerce:start
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
woocommerce:start [2015/12/15 05:47] – 만듦 changwoo | woocommerce:start [2015/12/15 07:53] (현재) – [카트 (장바구니)에 대한 분석] changwoo | ||
---|---|---|---|
줄 15: | 줄 15: | ||
+ | ====== 세션에 대한 분석 ====== | ||
+ | ===== 서버 측 세션 ===== | ||
+ | 세션은 현재 로그인한 사용자가 로그인한 동안 가지게 되는 여러 상태에 대해 저장을 하는 값의 집합이다. 사용자가 로그아웃을 하면 세션 값은 파기되고, | ||
+ | |||
+ | 우커머스의 세션정보는 '' | ||
+ | |||
+ | 세션은 임시적인 값이므로 만기일이 지정되어 있다. 우커머스는 기본으로 세션을 만들게 되면 48시간 후에 만료되게 되어 있고 47시간 후에는 업데이트를 해야 함을 알리도록 디자인되어있다. 아래 코드는 '' | ||
+ | |||
+ | <code php> | ||
+ | public function set_session_expiration() { | ||
+ | $this-> | ||
+ | $this-> | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | 우커머스는 sesion_expiring 부분이 현재 시간 보다 이전이면 세션을 다시 업데이트하도록 처리했다. 이것은 '' | ||
+ | |||
+ | 이 세션 만기 값은 '' | ||
+ | |||
+ | ===== 클라이언트 측 세션 ===== | ||
+ | 클라이언트 측에서 세션에 대한 정보는 쿠키에서 관리한다. 우커머스에서 사용하는 세션에 대한 쿠키의 식별자는 '' | ||
+ | |||
+ | 쿠키의 값은 4개의 필드를 가지며 ' | ||
+ | |||
+ | - 해당 사이트의 유저 아이디 | ||
+ | - 세션 만기 직전 값 (47시간 짜리) | ||
+ | - 세션 만기 값 (48시간 짜리) | ||
+ | - 쿠키의 내용의 해시 (salt + md5). 내용이 변조되지 않았는지를 체크한다. | ||
+ | |||
+ | ====== 카트 (장바구니)에 대한 분석 ====== | ||
+ | 장바구니는 우선 사용자가 로그인되어 있을 경우 세션 정보로부터 읽어들인다. 그리고 해당 값은 별도의 user_meta 테이블에도 따로 기록된다. 세션 정보는 쿠폰 적용 등 사용자가 정말 마지막까지 운용중이었던 작업까지 기억하는 반면, user_meta 테이블에 별도로 저장되는 장바구니 정보에는 그러한 세세한 정보는 생략된다. | ||
+ | |||
+ | 세션 정보가 아닌 user_meta 테이블에 저장되는 값은 다음과 같은 구조를 가지고 있다. | ||
+ | |||
+ | * 키: _woocommerce_persistent_cart | ||
+ | * 값: 시리얼라이즈 된 값. 키의 종류는 '' | ||
+ | |||
+ | 아래는 한 예이다. | ||
+ | <code php> | ||
+ | array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ); | ||
+ | </ | ||
woocommerce/start.1450158471.txt.gz · 마지막으로 수정됨: 2015/12/15 05:47 저자 changwoo