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

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 필드가 보여집니다.
    그런데 기업회원일 때 해당 필드가 삭제되지 않습니다. ㅠㅠ

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

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

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