안녕하세요.워드프레스에서 로그인폼에 가입자의 등급을 갈라주는 라디오버튼을 만들고 그를 누르는데 따라 가입자의 권한을
규정해주는 기능을 만들고싶은데 이런건 어떻게 해야 하는지요.답변 부탁드립니다.
실례를 들면 라디오버튼이 두개 잇는데 하나는 일반가입자를 의미하는것이고 하나는 관리자를 의미하는것인데요.
제가 일반가입자라면 일반가입자버튼을 누르고 관리자라면 관리자버튼을 누른 다음 아이디와 암호를 입력하면 해당 가입자에 권한에 따르는
페지로 이동하게 하고싶어요.워드프레스가 처음이다나니 잘 몰라서 그러는데 도와주세요.구글링이랑 좀 햇는데 잘 모르겟어요.
실례사이트주소:https://www.spaceplan.com.hk/en/account/login/customer
우의 사이트와 같이 만들고싶어요.도와주세요.
안녕하세요~^^
워드프레스에서 지원하는 login_redirect 필터를 이용하시면
라디오 버튼을 따로 추가하지 않으셔도 로그인할 때 관리자인지 아닌지 판별하여
해당 가입자 권한에 따르는 페이지로 이동할 수 있습니다.
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보세요.
add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
function my_login_redirect($url, $query, $user){
if($user->roles[0] == 'administrator'){
return '관리자일 때 이동할 URL';
}
else{
return '관리자가 아닐 때 이동할 URL';
}
}
위 코드에서 관리자일 때 이동할 URL과 관리자가 아닐 때 이동할 URL을 사이트에 맞게 적절히 수정 후 적용해보세요.
워드프레스의 역할과 권한에 대한 내용은 아래의 링크를 참고해보세요.
https://codex.wordpress.org/Roles_and_Capabilities
고맙습니다.
감사합니다.그런데 말이세요.로그인폼에 단추를 만들자면 어떻게 해야 하는지요.
그리구 가입자들이 많은 경우에 매번 관리자인가,아닌가를 어떻게 식별해야 하는지요.
또 식별하려는 급수가 2개가 아니고 3개이상이라면 어떻게 되는지요.
db에 아이디와 이름은 레지스터폼을 통하여 등록하면 될가요? 이거 한번에 여러가지를 물어봐서 미안하네요.
부탁드립니다.고맙습니다.
로그인 전에는 유저식별이 불가능 하기 때문에 로그인 페이지에서는 기능 추가가 안될 듯합니다.
질문하신 것들을 구현하려면 PHP 프로그래밍 코드도 잘 알아야 가능할 듯합니다.
wp_get_current_user 함수와 is_user_logged_in 함수를 사용하시면 원하시는걸 구현할 수 있을 듯합니다.
단순한 예제를 남겨드립니다.
테마의 functions.php 파일에 추가해보세요.
if(is_user_logged_in()){
$current_user = wp_get_current_user();
if($current_user->roles[0] == 'administrator'){
echo 'administrator 역할';
}
else if($current_user->roles[0] == 'editor'){
echo 'editor 역할';
}
else{
echo '그외 역할';
}
}
else{
echo '비로그인';
}
사용하시는 플러그인 제작자에게도 문의해보세요.
가급적이면 PHP 프로그램을 추가하기보단 나와있는 플러그인을 사용하시는 게 편리합니다.
고맙습니다.
감사합니다.스레드봇님께서 저의 질문에 성의껏 답변하여주셔서 고맙습니다.
그런데 말이세요.만약 스레드봇님이 저의 경우라면, 즉 로그인폼과 레지스터폼에 식별버튼을 추가해야 한다면 어떻게 하시겟는지요.저희가 만들려는 사이트의 디자인이 그렇게 되잇어서 그럽니다.
로그인폼을 카스터마이즈하는 여러개의 플러그인들을 써봣는데 그것들은 그저 현재 폼에 잇는 요소들에 대해서만
설정이 가능하고 폼에 요소를 새로 추가하거나 삭제하는 기능은 없더라고요.
이런 경우에 혹시 폼을 그려주는 파일에 가서 직접 버튼을 만들어줘야 하는지요.
그런데 폼을 그려주는 파일은 어느것인지 아무리 찾아도 없더라고요.아직 제가 잘 몰라서 그러니 가르쳐주시길 바랍니다.감사합니다.