회원정보 수정화면에서 select 선택 비활성화 방법문의

안녕하세요. 코스모스팜 회원관리 플러그인 사용중에 문의드립니다.

마이페이지에서 회원정보를 수정할 때 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;
    }

    고맙습니다.

  • 정상적으로 보여집니다.

    역시~! 빠른 답변 감사드립니다.

    감사합니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기