본인인증 활성화 후, WP-Members에서 3가지 필드 추가 하면
회원정보 페이지에서요, 3가지 입력칸이 추가되는데요,
회원에게도 공개되는 것인가요?
본인인증 이름*, 본인인증 성별*, 본인인증 생일*
원래 본인인증 하면, 회원정보 페이지에는 3가지 필드는 안나오고,
다날 관리자 페이지에서 3가지 포함 및 다른 정보들도 확인할 수 있는 걸로 알고 있거든요.
안녕하세요~^^
필드를 추가해서 해당 필드에
받아온 정보를 입력하기 때문에 회원들에게도 공개됩니다.
본인인증 기능을 사용하시려면 최소한 하나의 필드는 있어야 됩니다.
사이트에 다른 저장 필드를 사용하지 않으시려면
워드프레스 관리자 -> 회원가입관리 -> 본인인증 페이지에서
해당 필드를 사용안함으로 설정해보시겠어요?
고맙습니다.
사이트에는 저장이 안되고, 다날 관리자 페이지에서는 확인 가능할까요?
다날 관리자 페이지에서 이름, 성별, 생일 등의 정보는 확인할 수 없는 듯합니다.
또, 워드프레스 사용자와 1:1 매칭하려면 휴대폰 정보 같은 건 따로 저장을 해두셔야 할 듯합니다.
1:1 확인할 필요 없다면 회원가입 시에만 필드 보여주고, 회원정보 페이지에서는 필드 안 보이게 적용하시면 될 듯합니다.
회원정보 페이지에서 해당 필드를 안 보이게 하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일 하단에
아래의 코드를 활용해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = '메타키';
if($toggle == 'edit' && isset($rows[$meta_key])){
$meta = get_user_meta(get_current_user_id(), $meta_key, true);
$rows[$meta_key]['label'] = '';
$rows[$meta_key]['field'] = '<input type="hidden" name="'.$meta_key.'" value="'.$meta.'">';
}
return $rows;
}
위 코드에서 메타키 부분을 실제 추천인 필드의 Meta Key 값으로 변경해주세요.
Meta Key 값은 WP-Members 플러그인의 필드 관리 페이지에 나와있습니다.
추가로 말씀드리면 실제 api 로 정보 불러오는건 아임포트에 저장된 정보를 가져옵니다.
아임포트 쪽에도 문의를 해보시겠어요?
고맙습니다.
예를 들어 메타키가 다음과 같을 때
이름은 name, 성별 gender, 생일 birth
3가지 코드를 추가해야 되나요?
수정은
$meta_key = '메타키';
에서 '메타기'만 수정하면 될까요? 다른 부분은 수정 안해도 되나요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = 'name';
if($toggle == 'edit' && isset($rows[$meta_key])){
$meta = get_user_meta(get_current_user_id(), $meta_key, true);
$rows[$meta_key]['label'] = '';
$rows[$meta_key]['field'] = '<input type="hidden" name="'.$meta_key.'" value="'.$meta.'">';
}
return $rows;
}
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = 'gender';
if($toggle == 'edit' && isset($rows[$meta_key])){
$meta = get_user_meta(get_current_user_id(), $meta_key, true);
$rows[$meta_key]['label'] = '';
$rows[$meta_key]['field'] = '<input type="hidden" name="'.$meta_key.'" value="'.$meta.'">';
}
return $rows;
}
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = 'birth';
if($toggle == 'edit' && isset($rows[$meta_key])){
$meta = get_user_meta(get_current_user_id(), $meta_key, true);
$rows[$meta_key]['label'] = '';
$rows[$meta_key]['field'] = '<input type="hidden" name="'.$meta_key.'" value="'.$meta.'">';
}
return $rows;
}
안녕하세요.
필터는 여러 개 중복해서 사용하셔도 문제없지만 PHP에서 같은 함수명을 중복해서 사용할 수는 없습니다.
올려주신 코드 대신 아래의 코드를 활용해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$name = 'name';
$gender = 'gender';
$birth = 'birth';
if($toggle == 'edit'){
if(isset($rows[$name])){
$name_meta = get_user_meta(get_current_user_id(), $name, true);
$rows[$name]['label'] = '';
$rows[$name]['field'] = '<input type="hidden" name="'.$name.'" value="'.$name_meta.'">';
}
else if(isset($rows[$gender])){
$gender_meta = get_user_meta(get_current_user_id(), $gender, true);
$rows[$gender]['label'] = '';
$rows[$gender]['field'] = '<input type="hidden" name="'.$gender.'" value="'.$gender_meta.'">';
}
else if(isset($rows[$birth])){
$birth_meta = get_user_meta(get_current_user_id(), $birth, true);
$rows[$birth]['label'] = '';
$rows[$birth]['field'] = '<input type="hidden" name="'.$birth.'" value="'.$birth_meta.'">';
}
}
return $rows;
}
고맙습니다.
3가지 메타키의 변수 중 1개인
$name = 'name';
에서요
$name과 'name'에서 name을 각각 서로 다르게 적어줘도 되나요?
예를들어
$name1 = 'name2'
로 해도 되나요?
그리고 $name1로 바꿨기 때문에 앞에
$name가 사용된 곳을 모두 $name1로 바꿔줘야할 것 같은데 맞나요?
name을 각각 서로 다르게 바뀔 수 있다면,
$gender = 'gender';
와
$birth = 'birth';
도 각각 서로 다른 이름으로 수정하려고 합니다.
안녕하세요.
$name = 'name'; 코드를 기준으로 설명을 드리자면
뒤에 있는 'name'은 실제 필드의 메타키입니다.
따라서 다른 이름으로 수정하신다면 정상적으로 작동하지 않습니다.
$name1 = 'name' 이런 식으로 변경하신 후 기존의 $name을 $name1로 변경하시면 됩니다.
이전에 안내해드린 코드는 아래의 코드와 같습니다.
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
if($toggle == 'edit'){
if(isset($rows['name'])){
$name_meta = get_user_meta(get_current_user_id(), 'name', true);
$rows['name']['label'] = '';
$rows['name']['field'] = '<input type="hidden" name="name" value="'.$name_meta.'">';
}
else if(isset($rows['gender'])){
$gender_meta = get_user_meta(get_current_user_id(), 'gender', true);
$rows['gender']['label'] = '';
$rows['gender']['field'] = '<input type="hidden" name="gender" value="'.$gender_meta.'">';
}
else if(isset($rows['birth'])){
$birth_meta = get_user_meta(get_current_user_id(), 'birth', true);
$rows['birth']['label'] = '';
$rows['birth']['field'] = '<input type="hidden" name="birth" value="'.$birth_meta.'">';
}
}
return $rows;
}
아래의 링크를 참고해보시면 도움이 되실 듯합니다.
http://php.net/manual/kr/language.variables.basics.php
고맙습니다.