안녕하세요 회원관리 관련해서 질문드립니다.
현재 원하는 방식은 회원가입할때 가입자가 직접 본인의 등급을 선택(wp-members에서 select나 checkbox선택을 통해)해서 가입을 했을때
자동으로 선택한 등급으로 회원가입 정보가 등록되는 방식입니다.
예: 가입자가 gold회원을 선택하여 가입하였을때 (따로 관리자가 지정하는 것 없이) 자동으로 그 가입자가 등급이 gold역할로 저장되는 방식
그래서 네이버 블로그에서 해당 내용을 서치해본 결과
add_filter('pre_option_default_role', 'my_default_registration_role'); function my_default_registration_role($default_role){ if(isset($_POST['phone1']) && $_POST['phone1'] == '01012345678'){ $default_role = 'contributor'; } return $default_role; }
이 예제코드를 function.php파일에 넣어 수정하는 방법을 찾았는데 제가 원하는 방식은 해당 값을 직접 텍스트로 입력하는게 아니라 선택하는 것인데, 코드변형에 어려움을 겪어서 질문 남깁니다.
해당 경우에 코드를 어떻게 변형하는지 알려주시면 감사하겠습니다.
안녕하세요~^^
셀렉트 박스로 적용 시에도 본문에 올려주신 코드처럼 적용해주시면 됩니다.
phone1 부분을 셀렉트 박스의 메타키로 적용해보시겠어요?
값을 체크하실 때는 필드 설정 중 Values 쪽의 Stored 값으로 체크해보시겠어요?
체크박스의 경우에는 multicheckbox로 설정하면 값이 배열로 넘어오기 때문에
PHP in_array 함수를 활용해주셔야 합니다.
https://www.php.net/manual/en/function.in-array.php
고맙습니다.
해결했습니다! 감사합니다.
혹시 PHP in_array 함수를 어떻게 활용해야하는지 다시 여쭤봐도 될까요?
지금 ㅁwhite회원 ㅁblue회원 ㅁgold회원 이런식으로 가입자가 한 항목을 체크해서 가입하게 하고싶은데 제가 php함수에 대해 지식이 없어서요.
체크박스가 아래처럼 적용되어 있을 때
choice_one 값을 선택한 경우
in_array 함수를 활용하는 방법을 안내해드리겠습니다.
아래의 코드를 활용해보시겠어요?
add_filter('pre_option_default_role', 'pre_option_default_role_20210219');
function pre_option_default_role_20210219($default_role){
if(isset($_POST['checkbox']) && in_array('choice_one', $_POST['checkbox'])){
$default_role = 'contributor';
}
return $default_role;
}
워드프레스는 PHP 기반으로 제작되었기 때문에
원하시는 대로 커스텀을 하시려면 PHP 코드에 대한 이해가 있어야 합니다.
고맙습니다.