안녕하세요. 코스모스팜 회원관리 플러그인 사용중에 문의드립니다.
마이페이지에서 회원정보를 수정할 때 select 필드값을 disabled 상태로 둬서
일반회원들은 변경이 불가능하도록 설정하고 싶습니다.
어떻게 설정할 수 있는지 문의드립니다.
그리고, 회원가입 양식을 일반, 사업자와 같이 2가지 타입으로 제작해서
2가지 등급의 회원가입을 받을 수 있을까요?
안녕하세요~^^
코스모스팜 회원관리 플러그인에서 회원정보 수정 시
기존 셀렉트 박스에 저장된 값을 변경하지 못하게 하시려면
워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 추가해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
function my_register_form_rows($row, $toggle){
if($toggle == 'edit'){
$user_id = get_current_user_id();
$meta_key = '메타키';
$user_type = get_user_meta($user_id, $meta_key, true);
if($user_type){
$row[$meta_key]['field'] = '<input type="text" name="'.$meta_key.'" id="'.$meta_key.'" value="'.$user_type.'" readonly>';
}
}
return $row;
}
위 코드에서 메타키 부분을 실제 사용 중인 필드의 Meta Key 값으로 변경해주세요.
Meta Key 값은 WP- Members 플러그인의 필드 관리 페이지에서 확인할 수 있습니다.
셀렉트 박스에 disabled 속성을 추가하면 프로필 업데이트 시
기존 저장된 값이 지워질 수 있기 때문에 input 태그 readonly 속성을 활용했습니다.
일반회원, 사업자회원을 나누어서 가입하는 방법은
아래의 링크를 참고해주세요.
https://www.cosmosfarm.com/threads/document/27796
고맙습니다.
혹시 메타키값이 아닌 display name 으로 보여지게 하는건 가능할까요?
예를 들면 메타키값이 subscriber 라면 display name은 일반회원인데,
위 세팅이면 메타키값이 보여지게 되는군요.
셀렉트 박스 필드로 적용하신 건지요?
WP-Members 플러그인 필드 편집 페이지에서
Values (Displayed|Stored) 입력 필드에는 어떻게 입력하셨는지도 알려주시겠어요?
고맙습니다.
셀렉트 박스 필드로 적용하였고,
레이블은 값은 회원유형,
메타키값은 members_grade
필드값은 아래와 같이 설정하였습니다.
회원 유형을 선택하세요.,
개인회원|subscriber,
관장회원|author
안녕하세요.
가장 간단한 방법으로는 셀렉트 박스 필드의 Values 입력 필드에
아래처럼 적용해보시겠어요?
개인회원|개인회원,
관장회원|개인회원
만약, 저장되는 값을 영어로 적용해야 된다면
위의 방법은 적용하지 마시고
기존의 코드 대신 아래의 코드로 교체해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
function my_register_form_rows($row, $toggle){
if($toggle == 'edit'){
$user_id = get_current_user_id();
$meta_key = 'members_grade';
$user_type = get_user_meta($user_id, $meta_key, true);
$display = '';
if($user_type == 'subscriber'){
$display = '개인회원';
}
else if($user_type == 'author'){
$display = '관장회원';
}
if($user_type){
$row[$meta_key]['field'] = '<input type="text" name="'.$meta_key.'" id="'.$meta_key.'" value="'.$display.'" readonly>';
}
}
return $row;
}
고맙습니다.
정상적으로 보여집니다.
역시~! 빠른 답변 감사드립니다.
감사합니다.