회원가입 플러그인 기업/개인 회원 분리하기

https://www.cosmosfarm.com/threads/document/27796

위 링크대로 테스트해보았는데 필드가 달라져 보이지 않습니다. ㅠㅠ

현재도 그대로 사용해도 되는 코드가 맞을까요?
확인 부탁드립니다. 

항상 도움주셔서 감사합니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    올려주신 링크의 코드는 현재도 정상적으로 동작합니다.

    메타키1, 메타키2는 실제 WP-Members 필드의 메타키로 설정하셨는지요?

     

    해당 링크에 안내되어 있는 코드 중

    wpmem_register_form_before 필터와 wpmem_register_form_rows 필터에 대한 자세한 내용은

    아래의 링크들을 참고해보세요.

    https://rocketgeek.com/plugins/wp-members/docs/filter-hooks/wpmem_register_form_before/

    https://rocketgeek.com/plugins/wp-members/docs/filter-hooks/wpmem_register_form_rows/

    고맙습니다.

  • 아래 페이지에서 테스트 해보았으나 정상작동 하지 않아 도움 요청드립니다 ㅠㅠ

    http://tjwebtemplate19.cafe24.com/?page_id=1093

     

    현재 billing_phone 이 메타키의 필드를 개인회원에게 표시되지 않게 세팅 하였는데,
    기업회원을 클릭해도 동일하게 보입니다.....

  • 페이지만 봐서는 원인을 파악하기 어렵습니다.

    현재 메타키가 billing_phone 필드가 모두 보이지 않습니다.

    어떤 코드를 추가하셨는지요?

    에디터의 코드 스니펫 삽입 기능을 사용해서 추가하신 코드를 올려주시겠어요?

    고맙습니다.

  • /* 회원가입 분리기능 */
    add_filter('wpmem_register_form_before', 'my_function', 10, 1);
    function my_function($str){
    	$str = '<div class="cosmosfarm-members-form" style="text-align: center; overflow: hidden;">';
    	$str .= '<div style="float: left; width: 50%;"><a href="/?page_id=1093/?members_type=type1" style="display:block; line-height: 40px; background-color: #444444; border: 1px solid #444444; color: white;">개인회원</a></div>';
    	$str .= '<div style="float: left; width: 50%;"><a href="/?page_id=1093/?members_type=type2" style="display:block; line-height: 40px; border: 1px solid #d1d1d1; color: #444444;">기업회원</a></div>';
    	$str .= '<p></p></div>';
    	return $str;
    }
    
    add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter', 10, 2);
    function my_register_form_rows_filter($rows, $toggle){
    	if(isset($_GET['members_type'])&&$_GET['members_type']=='type1'){
    		// 기업회원에게는 표시되지 않습니다.
    		unset($rows['']);
    	}
    	else{
    		// 개인회원에게는 표시되지 않습니다.
    		unset($rows['billing_phone']);
    	}
    	
    	return $rows;
    }

    위의 코드를 추가했습니다~

  • 필드 메타키가 billing_phone인 필드가 표시되지 않고 있습니다.

    WP-Members 플러그인 필드 설정에서 해당 필드의 표시 설정을 활성화해보시겠어요?

    워드프레스 관리자 -> 설정 -> WP-Members -> 필드 탭에서 설정하실 수 있습니다.

     

    필드의 표시 설정을 활성화해주셔야 페이지에 표시가 되며

    wpmem_register_form_rows 필터의 unset($rows['billing_phone']); 코드를 활용해서

    주소 형식에 따라 필드를 안 보이게 하실 수 있습니다.

    고맙습니다.

  • https://imgur.com/1IC4MUN

    wp-members 필드관리 설정에서 해당 필드가 "표시?"부분에 체크되어있는 상태입니다 ㅠㅠ
    코드에는 문제가 없는건가요?

    위 코드에서 billing_phone 부분을 지우면 다시 해당 필드가 개인가입창과 기업가입창에 모두 보입니다..

  • 기존 wpmem_register_form_rows 필터 쪽의 코드를

    아래의 코드로 교체해서도 확인해보시겠어요?

    add_filter('wpmem_register_form_rows', 'wpmem_register_form_rows_20201020', 10, 2);
    function wpmem_register_form_rows_20201020($rows, $toggle){
    	$members_type = isset($_GET['members_type']) ? sanitize_text_field($_GET['members_type']) : '';
    	if(!$members_type || $members_type == 'type1'){
    		// 개인회원일 때 실행됩니다.
    	}
    	else{
    		// 기업회원일 때 billing_phone 필드 삭제합니다.
    		unset($rows['billing_phone']);
    	}
    	
    	return $rows;
    }

    위의 코드로도 해결되지 않는다면

    회원가입 페이지 관련 코드가 다른 쪽에 추가되어 있는지도 확인해보셔야 할 듯합니다.

    고맙습니다.

  • 보내주신 코드로 수정해보았는데 이제 phone 필드가 보여집니다.
    그런데 기업회원일 때 해당 필드가 삭제되지 않습니다. ㅠㅠ

    회원가입 코드 관련해서 특별히 추가한 내용이 없는데.. 이상하네요...

    한번만 더 도와주실 수 있을까요..? 감사합니다...

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요