EC-CUBEをログイン状態にする

EC-CUBEをログイン状態にする(2.11系)

他のシステムでログイン中のユーザーが
連動したEC-CUBEにログイン状態を維持する場合などに利用。

data/class/CS_Customer.php
186行目付近

function isLoginSuccess($dont_check_email_mobile = false) {
// ログイン時のメールアドレスとDBのメールアドレスが一致している場合
if (isset($_SESSION['customer']['customer_id'])
	&& SC_Utils_Ex::sfIsInt($_SESSION['customer']['customer_id'])
) {
	$objQuery =& SC_Query_Ex::getSingletonInstance();
	$email = $objQuery->get('email', 'dtb_customer', 'customer_id = ?', array($_SESSION['customer']['customer_id']));
	if ($email == $_SESSION['customer']['email']) {
	// モバイルサイトの場合は携帯のメールアドレスが登録されていることもチェックする。
	// ただし $dont_check_email_mobile が true の場合はチェックしない。
	if (SC_Display_Ex::detectDevice() == DEVICE_TYPE_MOBILE && !$dont_check_email_mobile) {
		$email_mobile = $objQuery->get('email_mobile', 'dtb_customer', 'customer_id = ?', array($_SESSION['customer']['customer_id']));
		return isset($email_mobile);
	}
	return true;
	}
}
return false;
}

上をコメントアウトして、下のように希望のコードに変える。
この処理でログイン状態にはなるが、擬似ログインとも言える。
決済に必要な情報がセッションにあるかどうかは、確認し適宜補填すること。

下の例は、他のシステムにログインしていると「$_SESSION[‘member_id’]」がNULLでない。
その場合、EC-CUBEでもログイン状態と認めるケース。

function isLoginSuccess() {
	if($_SESSION['member_id'] != ''){
		return true;
	}else{
		return false;
	}
}

コメントを残す