[워드프레스] 우커머스에서 장바구니를 눌렀을 때 로그인 페이지로 이동시키기

워드프레스에서 쇼핑몰을 운영할 때 보통 우커머스(WooCommerce) 플러그인을 사용합니다. 우커머스에서는 비회원 결제를 활성화/비활성화하는 옵션이 제공됩니다. 비회원 결제를 비활성화하면 로그인해야 결제가 가능해집니다.

[ 이 글은 2022년 12월 2일에 최종 업데이트되었습니다. ]

비회원 결제 활성화/비활성화

워드프레스 관리자 페이지 » 우커머스 » 설정 » 계정 및 개인정보 » 비회원 결제 섹션에서 비회원(게스트) 결제를 활성화 또는 비활성화할 수 있습니다.

[워드프레스] 우커머스에서 장바구니를 눌렀을 때 로그인 페이지로 이동시키기 2

"고객이 계정 없이 주문할 수 있습니다" 체크란을 선택하면 비회원 결제가 활성화되어 비로그인 상태에서도 결제가 가능하게 됩니다. 등록 회원만 결제가 가능하도록 하려면 이 체크란의 선택을 해제하시기 바랍니다.

우커머스 상점에서 장바구니를 눌렀을 때 로그인 페이지로 이동시키기

개별 상품 페이지에서 비로그인 사용자(게스트)가 "장바구니" 버튼을 눌렀을 때 로그인 페이지로 이동하게 하고, 로그인 사용자가 "장바구니" 버튼을 누르면 "장바구니 보기" 페이지로 이동시키려는 경우, 다음과 같은 코드를 사용할 수 있습니다.

// 로그인 사용자는 장바구니 보기 페이지로 이동
// 비로그인 사용자는 로그인 페이지로 이동
// Redirects loginned users to the "View Cart" page and non-loginned users (guests) to the "Login" page when clicking on the "Add to Cart" button in WordPress. After filling in the login information, the users will be redirected to the previous WooCommerce product page again. You can also change the link which will be redirected as you wish.

add_filter ('add_to_cart_redirect', 'redirect_to_checkout');

function redirect_to_checkout() {
if ( is_user_logged_in() ) {
return get_permalink( wc_get_page_id( 'cart' ) );

}
else {
$redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode( $_SERVER['REQUEST_URI'] );
return $redirect;
}
}

위와 같은 코드를 사용하면, 비로그인 사용자는 로그인 페이지로 이동하게 되고, 로그인 후 다시 상품 페이지로 되돌아오게 됩니다.

만약 곧바로 결제 페이지로 이동시키고 싶은 경우에는 return 부분을 다음과 같이 수정하면 됩니다.

return WC()->cart->get_checkout_url(); // redirects to the Checkout page

쇼핑 페이지로 이동시키려면 다음 코드를 사용합니다.

return get_permalink( wc_get_page_id( 'shop' ) ); // redirects to the 'Shop' page

그리고 "장바구니" 텍스트를 바꾸려면 이 글에 나와 있는 "장바구니 텍스트 변경하기" 함수를 사용하도록 합니다. 이 경우 곧바로 결제(체크아웃) 페이지로 이동하도록 하면 "장바구니" 버튼을 "바로 구매" 버튼으로 변경할 수 있습니다.

워드프레스 바로 구매 버튼

위의 코드를 응용하면 사용자가 "장바구니" 버튼을 눌렀을 때 이동하는 페이지를 원하는 대로 바꿀 수 있습니다.

비로그인 사용자나 게스트 손님(비회원)이 장바구니에서 '결제하기' 버튼을 클릭했을 때 로그인/회원가입 페이지로 이동되도록 하려면 "우커머스 결제 시 로그인 페이지로 이동시키는 방법"을 참고해보시기 바랍니다.

추가: 참고로 Quick Buy라는 플러그인을 사용하면 "바로 구매" 버튼을 쉽게 추가할 수 있습니다. 이 플러그인을 사용하는 경우에도 위에 설명된 방법을 응용하여 "바로 구매" 버튼을 누르면 로그인 화면으로 이동하도록 만들 수 있습니다.

참고:


8개 댓글

    1. 특정 카테고리일 경우에만 바로 로그인 페이지로 이동하도록 코드를 수정해주셔야 할 것입니다.

      PHP의 기본 구문인 if ~ else ~를 사용하여

      if (특정 카테고리) {
      로그인 페이지로 이동
      }
      else {
      장바구니로 이동
      }

      위와 비슷한 로직으로 코드를 짜시면 될 것 같습니다.

    1. 안녕하세요?

      위의 코드에서 아래 부분을 수정하면 되지 않을까요?

      $redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode( $_SERVER['REQUEST_URI'] );

      1. 빠른답변 너무 감사합니다^^
        덕분에 바로 수정했네요. 근데 문제가 장바구니는 되는데, 바로구매를 클릭해 결제창으로 갔을때는 적용이 안되네요ㅠ 혹시 이건 방법이 없을까요..

      2. 안녕하세요?

        정확하게 어떤 상황인지 몰라 정확한 답변을 드릴 수가 없는 점 양해 바랍니다.
        원하는 기능의 플러그인이 있는지 검색해보시고, 없다면 전문가에게 의뢰하는 것도 검토해보시기 바랍니다.

        위의 글에서 다루고 있는 내용은 회원 가입한 사용자만 상품을 구매할 수 있도록 하는 방법을 별도의 플러그인을 사용하지 않고 간단한 코드로 구현한 것입니다.

        그리고 워드프레스와 우커머스가 비교적 빠르게 변화하는 시스템이기 때문에 이전에 잘 작동하던 방법이 새로운 버전에서는 잘 안 되는 경우도 많습니다.

댓글 남기기

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