위의 그림은 KOTRA 회원 가입 화면입니다. 위와 같이 회원 가입을 클릭하면 기업회원과 개인회원 중에서 해당 회원 유형을 선택하도록 하여 기업회원과 개인회원에 대하여 별도의 등록 양식을 만들어야 하는 경우가 발생할 수 있습니다. 실제 이런 질문이 워드프레스 커뮤니티에 올라온 적이 있었습니다. 보통은 워드프레스 코어 파일을 수정하거나 하여 별도의 회원 등급을 추가하고 가입 폼을 구성하려고 시도할 것입니다. 하지만 어떤 경우에든 워드프레스 코어 파일을 수정하는 것은 매우 바람직하지 않습니다. (추후에 워드프레스가 업데이트될 때마다 애를 먹이게 될 것입니다.) 또는 유료 플러그인을 사용하면 이와 비슷한 기능을 하는 플러그인을 찾을 수 있을 것입니다.
이 글에서는 간단한 함수를 통해 별도의 회원등급(Role)별로 별도의 등록 폼을 만들고, 입력한 회원 정보가 개인 Profile 페이지에도 등록되도록 하는 방법을 살펴볼 예정입니다.
본격적으로 시작하기 전에 먼저 새로운 회원등급(역할)을 만들고, 회원가입 페이지에 기업회원과 개인회원을 분리하는 페이지를 만들어야 합니다.
이 글에 이어 Part 2를 계획했지만 Part 2는 무슨 이유인지 기억이 나지 않지만 작성되지 않았습니다. 직접 코딩으로 이 기능을 구현하고 싶은 경우 기본적으로 "Separate registration and login for different roles" 글을 참고하여 응용해보시기 바랍니다. 당시에 stackexchange 글을 참고하여 이 기능을 구현했지만, 너무 오래되어 어떻게 했는지 기억이 나지 않네요. 코딩 지식이 부족한 경우 플러그인을 사용하는 방법을 이용해보시기 바랍니다("워드프레스 회원가입 시 사용자가 회원등급을 선택할 수 있도록 허용하기" 참고).
새로운 회원등급(역할) 생성하기
새로운 회원 등급으로 corporate(기업)와 individual(개인)을 만들도록 합니다. 이 작업은 수동으로 해도 되겠지만 간편하게 User Role Editor를 사용하도록 합니다. 자세한 사항은 여기를 클릭하여 이 글에 소개된 방법에 따라 새로운 역할을 만들도록 합니다.
여기에서는 기업(corporate) 역할과 개인(individual) 역할을 생성했습니다. 판매자(seller), 구매자(buyer) 등 원하는 회원 역할을 만들도록 합니다.
기업회원과 개인회원 등록 페이지로 분리시키는 회원가입 페이지 만들기
다음으로 할 일은 회원가입 혹은 회원등록 링크를 눌렀을 때 기업회원과 개인회원 중에서 선택하도록 하는 화면을 만들도록 합니다. 맨 위의 그림처럼 만들어도 되고 원하는 레이아웃으로 만들도록 합니다.
워드프레스 관리자 화면에서 페이지 > 새 페이지 추가를 선택하여 새로운 페이지를 만듭니다(예: registration). 링크는 다음과 같이 설정하도록 합니다.
- 기업용 회원 등록 페이지 URL: http://www.example.com/wp-login.php?action=register&role=corporate
- 개인용 회원 등록 페이지 URL: http://www.example.com/wp-login.php?action=register&role=individual
물론 role=corporate와 role=individual 부분은 상황에 따라 적절히 수정하도록 합니다(예: role=seller, role=buyer).
"등록하기" 링크 변경하기
위에서 새로운 회원 역할과 회원 가입용 페이지를 만들었습니다. 하지만 워드프레스에서 "등록하기" 메뉴를 누르면 워드프레스의 기본 등록 폼으로 이동하게 됩니다. 그러므로 "등록하기" 혹은 "회원 가입" 메뉴를 눌렀을 때 위에서 만든 회원가입 페이지(예: registration 페이지)로 이동하도록 만들어야 합니다. 이 경우 단순히 메뉴에 registration 페이지를 추가하는 것도 가능하겠지만, 그 방법보다는 이 글에 설명되어 있는 방법에 따라 "등록하기"를 누르면 새로운 회원가입 페이지(위에서 만든 회원 등급을 선택할 수 있는 페이지)로 이동시키도록 합니다.
이것으로 준비가 완료되었습니다. 이제 "등록하기"를 누르면 회원 등급(기업 또는 개인)을 선택할 수 있는 회원가입 페이지가 표시됩니다. 다음 글에서는 기업회원용 가입 폼과 개인회원용 가입 폼을 구성하고, 대시보드의 사용자 프로필에 그러한 정보가 등록되도록 하는 방법에 대해 살펴보겠습니다.
PART 2를 계획하고 있었는데 깜박하고 있었네요.
참고로 인기 플러그인 중 하나인 UserPro(https://1.envato.market/4AWR3 )에서 "Conditional Fields"(조건부 필드) 기능을 추가했다고 합니다. UserPro의 조건부 필드 기능을 사용하면 위에서 다룬 내용을 쉽게 구현할 수 있을 것 같습니다. 아래 글을 참고해보세요.
https://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%ED%94%84%EB%A1%9C%ED%95%84-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-userpro-%EC%A1%B0%EA%B1%B4%EB%B6%80-%ED%95%84%EB%93%9C/
다음 글에서는 기업회원용 가입 폼과 개인회원용 가입 폼을 구성하고, 대시보드의 사용자 프로필에 그러한 정보가 등록되도록 하는 방법에 대해 살펴보겠습니다.>> 이 내용 업데이트 계획은 아직 없은신가요?