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 필드가 보여집니다.
그런데 기업회원일 때 해당 필드가 삭제되지 않습니다. ㅠㅠ
회원가입 코드 관련해서 특별히 추가한 내용이 없는데.. 이상하네요...
한번만 더 도와주실 수 있을까요..? 감사합니다...