우커머스 결제 시 로그인 페이지로 이동시키는 방법

워드프레스 우커머스 쇼핑몰에서 사용자가 결제하기 버튼을 클릭했을 때 비로그인 사용자 또는 비회원을 로그인 페이지로 이동시키고 싶은 경우가 있습니다. 우커머스 결제 시 비로그인 사용자를 로그인 페이지로 이동시키려면 이 글에서 설명하는 방법을 시도할 수 있습니다.

우커머스 결제 시 로그인 페이지로 이동시키는 방법

비로그인 사용자나 비회원이 결제하기 버튼을 클릭하면 로그인하거나 회원가입할 수 있는 페이지로 이동시키려면 "WooCommerce check and redirect to login before checkout" 글에서 소개하는 코드를 사용할 수 있습니다.

링크된 Stackoverflow 문서에는 여러 가지 코드가 제시되어 있는데요. 맨 아래에 있는 코드로 테스트해보니 원하는 대로 잘 작동하는 것 같습니다.

// Redirect to Login Page when the is not logged in and clicks on the Checkout button
// 비로그인 사용자가 결제하기 버튼을 클릭할 경우 로그인 페이지로 이동시키기
add_action('template_redirect','check_if_logged_in');
    function check_if_logged_in()
    {
        $pageid = 247; // your checkout page id, 결제 페이지 ID
        if(!is_user_logged_in() && is_page($pageid))
        {
            $url = add_query_arg(
                'redirect_to',
                get_permalink($pagid),
                site_url('/my-account/') // your my acount url, 내 계정 URL
            );
            wp_redirect($url);
            exit;
        }
        if(is_user_logged_in())
        {
        if(is_page(248))//my-account page id, 내 계정 페이지 ID
        {

            $redirect = $_GET['redirect_to'];
            if (isset($redirect)) {
            echo '<script>window.location.href = "'.$redirect.'";</script>';
            }

        }
        }
    }

위의 코드에서 몇 개 항목을 상황에 맞게 수정해야 합니다. 위의 코드를 적용하면 1) 비로그인 사용자가 장바구니 페이지에서 결제하기 버튼을 클릭했을 때 로그인/회원가입 페이지가 표시되며, 2) 로그인/회원가입을 하면 다시 결제 페이지로 되돌아갑니다.

'결제 페이지'와 '내 계정 페이지'의 ID는 워드프레스 알림판 > 페이지 > 모든 페이지에서 '결제 페이지'와 '내 계정 페이지' 위에 마우스를 올려서 확인이 가능합니다. 마우스를 페이지 이름 위에 올리면 브라우저 하단 표시줄에 페이지 ID가 표시됩니다.

워드프레스 페이지 ID 확인하는 방법
워드프레스 페이지 ID 확인하기.

위의 그림에서는 My Account (내 계정) 페이지 위에 마우스를 올렸을 때를 보여주는데요. 페이지 ID가 '3792'임을 알 수 있습니다.

그리고 'My Account' 페이지의 URL은 위의 그림에서 "빠른 편집"을 클릭하거나 "보기" 버튼을 클릭하여 쉽게 확인이 가능합니다. 보통은 'www.example.com/my-account/'입니다.

위에 제시된 코드에서 결제 페이지와 내 계정 페이지의 ID를 변경하고 내 계정 페이지 URL을 수정(해당 시)한 후에 사용 중인 테마의 함수 파일에 추가하도록 하도록 합니다. 추가 방법은 "사용자 코드는 어떻게 추가하나요?"를 참고해보세요. 가능하면 차일드 테마를 만들어 작업하시기 바랍니다.

코드를 테마 함수 파일(functions.php)에 추가하고 저장한 후에 테스트해보면 비로그인 상태에서 '결제하기' 버튼을 클릭할 경우 '내 계정 페이지'로 이동하게 됩니다.

우커머스 결제 시 로그인 페이지로 이동시키기

회원인 경우 로그인 섹션에서 사용자명과 비밀번호를 입력하여 로그인할 수 있고, 비회원인 경우 회원가입 섹션에서 회원 등록할 수 있습니다.

만약 회원가입하기 섹션이 표시되지 않으면 워드프레스 알림판 > 우커머스 > 설정 > 계정 및 개인정보 탭에서 고객이 "내 계정" 페이지에서 계정을 만들 수 있습니다 옵션을 체크하시기 바랍니다.

워드프레스 우커머스 내 계정 페이지에서 회원가입이 가능하도록 설정하기

참고로 비회원 결제 기능을 활성화하려면 워드프레스 알림판 > 우커머스 > 설정 > 계정 및 개인정보 탭의 비회원 결제란"고객이 계정 없이 주문할 수 있습니다" 옵션을 선택하도록 합니다. 우커머스가 업데이트되면서 이 기능이 "결제" 탭에서 "계정 및 개인정보" 탭으로 이동했습니다.

최신 워드프레스 버전에서 아바다 테마와 최신 우커머스 플러그인이 설치된 환경에서 테스트해보니 위의 코드가 잘 작동했습니다. 코드가 잘 작동하지 않으면 Stackoverflow 페이지에 제시된 다른 코드로 테스트해보시기 바랍니다.

참고:


댓글 남기기

* 이메일 주소는 공개되지 않습니다.