고생하십니다
내정보수정 페이지에서 이메일을 고정시킨 상태로 유지시키고 싶어서
$meta_value = get_user_meta(get_current_user_id(), user_email, true);
$rows['user_email'] = array (
'order' => 1,
'type' => 'email',
'value' => '',
'row_before' => '',
'label' => '',
'field_before' => '<div class="register_row">',
'field' => '<input name="user_email" type="email" id="user_email" value="'.$meta_value.'" class="textbox" readonly/>',
'field_after' => '</div>',
'row_after' => ''
);
이 코드와
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = 'user-email';
if($toggle == 'edit' && isset($rows[$meta_key])){
$meta_value = get_user_meta(get_current_user_id(), $meta_key, true);
$rows[$meta_key]['field'] = '<input name="'.$meta_key.'" type="text" id="'.$meta_key.'" value="'.$meta_value.'" class="textbox" readonly>';
}
return $rows;
}
이 코드 둘 다 사용해봤는데..
일단 둘 다 기존에 입력되어 있던 이메일을 불러오지를 못하네요
무엇이 문제일까요..
안녕하세요~^^
올려주신 코드 중 두 번째 코드만 활용하시면 될 듯합니다.
기존의 코드 대신 아래의 코드를 활용해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 999, 2);
function my_register_form_rows($rows, $toggle){
$meta_key = 'user_email';
if($toggle == 'edit' && isset($rows[$meta_key])){
$user = wp_get_current_user();
$rows[$meta_key]['field'] = '<input name="'.$meta_key.'" type="text" id="'.$meta_key.'" value="'.$user->user_email.'" class="textbox" readonly>';
}
return $rows;
}
바뀐 부분은 메타키와 사용자 메일을 불러오는 함수 쪽 입니다.
사용자 메일은 메타 정보에 등록되지 않기 때문에
wp_get_current_user 함수를 활용해주셔야 합니다.
사용자 기본 정보는 데이터베이스(DB) users 테이블에 저장되며
사용자 메타 정보는 usermeta 테이블에 저장됩니다.
users 테이블에 저장된 정보는 wp_get_current_user 함수를 활용해주세요.
자세한 내용은 아래의 링크를 참고해보세요.
https://developer.wordpress.org/reference/functions/wp_get_current_user/
고맙습니다.
아하 이해했습니다 감사합니다!