wp-members 필드 체크박스 문의

워드프레스 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;
    } 

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요