안녕하세요 회원관리 관련해서 질문드립니다.
현재 원하는 방식은 회원가입할때 가입자가 직접 본인의 등급을 선택(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파일에 넣어 수정하는 방법을 찾았는데 제가 원하는 방식은 해당 값을 직접 텍스트로 입력하는게 아니라 선택하는 것인데, 코드변형에 어려움을 겪어서 질문 남깁니다.
해당 경우에 코드를 어떻게 변형하는지 알려주시면 감사하겠습니다.
체크박스가 아래처럼 적용되어 있을 때
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 코드에 대한 이해가 있어야 합니다.
고맙습니다.
혹시 PHP in_array 함수를 어떻게 활용해야하는지 다시 여쭤봐도 될까요?
지금 ㅁwhite회원 ㅁblue회원 ㅁgold회원 이런식으로 가입자가 한 항목을 체크해서 가입하게 하고싶은데 제가 php함수에 대해 지식이 없어서요.
해결했습니다! 감사합니다.
안녕하세요~^^
셀렉트 박스로 적용 시에도 본문에 올려주신 코드처럼 적용해주시면 됩니다.
phone1 부분을 셀렉트 박스의 메타키로 적용해보시겠어요?
값을 체크하실 때는 필드 설정 중 Values 쪽의 Stored 값으로 체크해보시겠어요?
체크박스의 경우에는 multicheckbox로 설정하면 값이 배열로 넘어오기 때문에
PHP in_array 함수를 활용해주셔야 합니다.
https://www.php.net/manual/en/function.in-array.php
고맙습니다.