워드프레스 wp-members 에서 회원가입 폼에 이용약관 동의와 마케팅 동의 등 3가지 체크박스 필드를 만들었습니다.
그런데 회원가입을 할 때 체크박스를 체크한 후 가입을 해도 사용자 수정 페이지에서는 체크가 되어있지 않습니다
어떤 방법이 있을까요?
안녕하세요~^^
WP-Members 플러그인 필터를 활용해서 회원가입 페이지를 커스텀하셨는지요?
아래의 코드처럼 $toggle 값을 활용하시면 회원가입 페이지에만 코드를 적용하실 수 있습니다.
add_filter('wpmem_register_form_args', 'wpmem_register_form_args_20200604', 10, 2);
function wpmem_register_form_args_20200604($args, $toggle){
if($toggle == 'new'){
...
}
return $args;
}
add_filter('wpmem_register_form_rows', 'wpmem_register_form_rows_20200604', 10, 2);
function wpmem_register_form_rows_20200604($rows, $toggle){
if($toggle == 'new'){
...
}
return $rows;
}
add_filter('wpmem_register_form', 'wpmem_register_form_20200604', 10, 4);
function wpmem_register_form_20200604($form, $toggle, $rows, $hidden){
if($toggle == 'new'){
...
}
return $form;
}
또는 wp_get_current_user 함수와 get_user_meta 함수 등을 활용해서
현재 로그인한 사용자 정보에 값이 있으면 체크해주는 방법도 있습니다.
고맙습니다.
add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter13', 10, 2);
function my_register_form_rows_filter13($rows, $toggle){
// 이렇게 기존 입력필드 정보를 새로 작성할 수 있습니다.
$rows['tos03'] = array (
'order' =>1 ,
'type' => 'text',
'value' => '',
'row_before' => ' ',
'label' => '',
'field_before' => '',
'field' => '',
'field_after' => ' ',
'row_after' => '</div>'
);
return $rows;
}
이걸로 커스텀 했습니다..
이건 어떤식으로 풀어써야하나요?
올려주신 코드를 기준으로 $toggle을 체크하는 코드를 적용하시려면
아래의 코드를 활용해보시겠어요?
add_filter('wpmem_register_form_rows', 'my_register_form_rows_filter13', 10, 2);
function my_register_form_rows_filter13($rows, $toggle){
if($toggle == 'new'){
// 이렇게 기존 입력필드 정보를 새로 작성할 수 있습니다.
$rows['tos03'] = array (
'order' =>1 ,
'type' => 'text',
'value' => '',
'row_before' => ' ',
'label' => '',
'field_before' => '',
'field' => '',
'field_after' => ' ',
'row_after' => '</div>'
);
}
return $rows;
}
고맙습니다.