안녕하세요~^^
회원정보 편집 화면을 수정하시려면,
WP-Members 플러그인의 필터를 사용해서 코드를 편집해야 합니다.
wpmem_register_form_rows 이 필터를 사용하면 필드의 HTML 코드를 변경할 수 있습니다.
wpmem_register_fields_arr 이 필터를 사용하면 필드의 설정을 변경할 수 있습니다.
WP-Members 플러그인의 전체 액션과 필터 정보는 아래 링크된 페이지에서 확인 가능합니다.
https://rocketgeek.com/plugins/wp-members/docs/filter-hooks/
회원정보 입력 필드를 수정하지 못하게 하시려면
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에 functions.php 파일 하단에
아래의 코드를 활용해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
function my_register_form_rows($row, $toggle){
if($toggle == 'edit'){
$row['메타키']['field_before'] = '<div class="메타키_readonly">';
$row['메타키']['field_after'] = '</div>';
}
return $row;
}
위 코드에서 메타키 부분을 실제 사용 중인 필드의 Meta Key 값으로 변경해주세요.
Meta Key 값은 WP- Members 플러그인의 필드 관리 페이지에서 확인할 수 있습니다.
고맙습니다.
@스레드봇
안녕하세요, 스레드봇님. 알려주신 내용을 적용하여 보았으나 동작이 안되어 재문의드립니다. 아래와 같은 상황으로, 알려주신 코드를 어떻게 적용하면 회원정보 수정 시 닉네임 필드를 readonly로 출력할 수 있을까요? (회원가입시에는 입력이 가능해야 함)
회원정보 수정에서 닉네임 필드를 개발자 도구로 소스코드를 보면 #0와 같이 출력이 됩니다.
#0
<div class="div_text">
<input name="display_name" type="text" id="display_name" value="벨류" class="textbox" placeholder="" required>
</div>
알려주신 코드를 테마 펑션 파일에 적용하여 같은 회원정보 수정에서 닉네임 필드를 개발자 도구로 소스코드를 보면 아래 #1과 같이 바뀝니다. 다만 기능상에 있어 닉네임 필드가 readonly로 바뀌지는 않았습니다.
#1
<div class="display_name_readonly">
<input name="display_name" type="text" id="display_name" value="벨류값" class="textbox" placeholder="" required>
</div>
알려주신 코드 적용 전 테스트로 required 다음에 readonly 속성을 추가시키면 해당 닉네임 필드가 readonly로 동작합니다.
#3
<div class="div_text">
<input name="display_name" type="text" id="display_name" value="벨류" class="textbox" placeholder="" required readonly>
</div>
안녕하세요.
이전 댓글에 안내해드린 코드가 정상적으로 동작하지 않는다면
아래의 코드로 교체해서 확인해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows', 10, 2);
function my_register_form_rows($row, $toggle){
if($toggle == 'edit'){
$user = wp_get_current_user();
$row['display_name']['field'] = '<input name="display_name" type="text" id="display_name" value="'.$user->display_name.'" class="textbox" readonly>';
}
return $row;
}
고맙습니다.
@스레드봇 감사합니다. 잘 작동됩니다~