회원정보 수정시 인증절차 추가

1. 정확한 제품 또는 플러그인 이름

코스모스팜 회원관리 3.4

 

2. 상세 내용

회원정보를 수정할때 비밀번호 입력과 같은 추가 인증 절차가 없습니다.

https://imgur.com/oMZL09S

 

보안측면에서 이런 기능이 있으면 좋을것 같은데,

혹시 도움을 받을 수 있을까요?

 

3. 확인 가능한 상세 페이지 주소

 

 

4. 수정한 코드 내역 (있다면)

 

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^ 

    저희 쪽에서 한번 확인해 보고 

    빠른 시일 내에 업데이트할 수 있도록 하겠습니다 

    급하게 필요하시다면 

    프로젝트 의뢰에 상세 내용을 올려보시겠어요?

    https://www.cosmosfarm.com/project

    고맙습니다.

  • 답변 감사합니다!

  • <?php 
    
    // function_exists('ray') && ray('', );
    
    function get_redirect_url_of_profile_edit_page() {
        $account_page_id = get_option('cosmosfarm_members_account_page_id', '');
        $account_page_url = get_option('cosmosfarm_members_account_page_url', '');
    
        $redirect_url = home_url();
    
        if (intval($account_page_id) > 0) {
            $redirect_url = get_permalink( $account_page_id );
        } else if ($account_page_url) {
            $redirect_url = $account_page_url;
        }
    
        return $redirect_url . '&a=edit';
    }
    
    add_filter('wpmem_register_fields_arr', function($fields, $tag) {
        global $wpmem;
    
        if ($tag !== 'edit') {
            return $fields;
        }
    
        $original_fields = $wpmem->fields;
        if (!isset($original_fields['password'])) {
            $wpmem->forms->load_fields('edit');
            $original_fields = $wpmem->fields;
        }
    
        $fields['password'] = $original_fields['password'];
    
        $wpmem->fields = $original_fields; // 다시 되돌리기
    
        return $fields;
    }, 2, 10000);
    
    add_action( 'wpmem_pre_update_data', function($fields) {
        if (!isset($fields['password'])) {
            return;
        }
    
        $user_id = get_current_user_id();
        $current_password = get_the_author_meta( 'user_pass', $user_id );
        
        if ( !wp_check_password( $fields['password'], $current_password, $user_id ) ) {
            $redirect_url = get_redirect_url_of_profile_edit_page();
            $redirect_url = add_query_arg( 'profile_update_error_message', '비밀번호를 다시 확인해주세요', $redirect_url );
            wp_safe_redirect( $redirect_url );
            exit;
        }
    } );
    
    add_action('wp_footer', function() {
        if (!isset($_REQUEST['profile_update_error_message'])) {
            return;
        }
    
        $error_message = $_REQUEST['profile_update_error_message']; ?>
        <script>
            (() => {
                const message = "<?php echo $error_message; ?>";
                alert(message);
            })();
        </script> <?php
    });
    

    코드 공유합니다!!

     

     

     

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기