코스모스팜 스레드

(완료) 컨택트폼- 개인정보동의서 재활용 이슈

답변을 부탁드립니다.

https://www.cosmosfarm.com/threads/document/32858?page=2

ps. 너무 피곤해서 자세한 내용은 생략드립니다.

해당되는 코드는 차일드 테마의 function.php 에 입력되어 있으며,

아래와 같습니다.

 

/* 개인정보 활용 동의 */
add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
function my_kboard_skin_fields($fields, $board){
/*    if($board->id == '1'){ // 실제 적용될 게시판 ID 값으로 변경해주세요. */
     if(in_array($board->id, array('1','2','3','4','5','6','7'))){        // 게시판이 여러 개일 경우... 
        if(!isset($fields['agree_checkbox'])){
            $fields['agree_checkbox'] = array(
                'field_type' => 'agree_checkbox',
                'field_label' => '개인정보 제공 및 활용 동의서',
                'class' => 'kboard-attr-checkbox',
                'hidden' => '',
                'meta_key' => '',
                'field_name' => '',
                'permission' => '',
                'roles' => '',
                'default_value' => '',
                'placeholder' => '',
                'required' => '',
                'show_document' => '',
                'description' => '',
                'close_button' => 'yes'
            );
        }
    }
    
    return $fields;
}

/* 동의서 양식  */
add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
function my_kboard_get_template_field_html($field_html, $field, $content, $board){
    if($field['field_type'] == 'agree_checkbox'){
        ob_start();
        ?>
        <div class="kboard-attr-row meta-key-<?php echo esc_attr($field['meta_key'])?> required">
            <label class="attr-name agree-title" for="agree_checkbox">
                <p class="field-name"><?php echo esc_html($field['field_name'] ? $field['field_name'] : $field['field_label'])?></p>
            </label>
            <div class="attr-value agree-content" style="margin:0;">
                <div class="privacy-announce" style="margin: 0; padding: 18px 20px 5px 10px; height: auto; line-height: 20px; background-color: #f2f2f2; overflow-y: auto;">
                    <ol>
                        <li><strong>수집 목적</strong> : 회원가입 및 서비스 신청 등과 관련된 상담안내</li>
                        <li><strong>수집 항목</strong> : 이름 ,전화번호, IP (자동수집)</li>
                        <li><strong>보유 및 이용기간</strong> : 상담 및 해당 업무 종료 후 1년 이내 파기</li>
                    </ol>
                    <p style="font-size: 14px; padding-left: 20px; padding-bottom: 12px; line-height: 20px; color: #1d9dee;">※ 개인정보 수집 및 이용에 대해서 거부할 수 있으며, 거부 시에는 가입 및 상담 등의 안내 서비스를 받으실 수 없습니다.</p>
                </div>
                <div style="text-align:center;">
                    <input type="hidden" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1">
                    <label><input type="checkbox" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1"> 개인정보이용 동의</label>
                </div>
            </div>
        </div>
        <?php
        $field_html = ob_get_clean();
    }
    return $field_html;
}

 

 

무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)
  • 게시판 1번과 2번에 위와 같이 '개인정보 제공 및 활용동의서'를 넣는 것은 성공했습니다.

    참고로 게시판 1번과 2번은 동일한 내용이  아니고 약간 다르게 구성되어 있습니다.

    아래에 해당 링크가 있습니다.

    (게시판 1) http://tellnumber.co.kr/

    (게시판2) http://tellnumber.co.kr/sejong/?wdt_column_filter%5B1%5D=%EC%84%B8%EC%A2%85%ED%85%94%EB%A0%88%EC%BD%A4&wdt_column_filter%5B2%5D=1688

     

    * 문의사항 요지 *

    게시판 1번은 정상적으로 작동되는데, 게시판 2번에서는 '보내기 버튼'을 누르면 정상적으로 발송은 되는데....

    로그인 하셔야 합니다라는 경고 박스가 뜨면서, 홈페이지 로그인 화면으로 갑니다.

     

    -----------------------

     

    위 내용 말씀이신가요?

    로그인 하셔야 합니다 라는 메세지가 나온다면 추가하신 코드의 문제라기보단 권한설정 문제같습니다.

    Contact Form 문의하기 양식 적용하기 내용을 참고해보시겠어요?

    글 쓴 후 이동 화면 설정을 확인해보세요.

    고맙습니다.

  • 아래 내용은 본 건과 관련된 전체 코드입니다.

    해당 게시판의 권한설정과 관련하여 다양하게 시도해 보았으나 결과는 마찬가지입니다.

    정확한 해결책을 문의드립니다.

    이와 관련하여 차라리 유료 서비스라도 받고 싶습니다.

     

    /* 개인정보 활용 동의 */
    add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
    function my_kboard_skin_fields($fields, $board){
    /*    if($board->id == '1'){ // 실제 적용될 게시판 ID 값으로 변경해주세요. */
         if(in_array($board->id, array('1','2','3','4','5','6','7'))){        // 게시판이 여러 개일 경우... 
            if(!isset($fields['agree_checkbox'])){
                $fields['agree_checkbox'] = array(
                    'field_type' => 'agree_checkbox',
                    'field_label' => '개인정보 제공 및 활용 동의서',
                    'class' => 'kboard-attr-checkbox',
                    'hidden' => '',
                    'meta_key' => '',
                    'field_name' => '',
                    'permission' => '',
                    'roles' => '',
                    'default_value' => '',
                    'placeholder' => '',
                    'required' => '',
                    'show_document' => '',
                    'description' => '',
                    'close_button' => 'yes'
                );
            }
        }
        
        return $fields;
    }

    /* 동의서 양식  */
    add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html', 10, 4);
    function my_kboard_get_template_field_html($field_html, $field, $content, $board){
        if($field['field_type'] == 'agree_checkbox'){
            ob_start();
            ?>
            <div class="kboard-attr-row meta-key-<?php echo esc_attr($field['meta_key'])?> required">
                <label class="attr-name agree-title" for="agree_checkbox">
                    <p class="field-name"><?php echo esc_html($field['field_name'] ? $field['field_name'] : $field['field_label'])?></p>
                </label>
                <div class="attr-value agree-content" style="margin:0;">
                    <div class="privacy-announce" style="margin: 0; padding: 18px 20px 5px 10px; height: auto; line-height: 20px; background-color: #f2f2f2; overflow-y: auto;">
                        <ol>
                            <li><strong>수집 목적</strong> : 회원가입 및 서비스 신청 등과 관련된 상담안내</li>
                            <li><strong>수집 항목</strong> : 이름 ,전화번호, IP (자동수집)</li>
                            <li><strong>보유 및 이용기간</strong> : 상담 및 해당 업무 종료 후 1년 이내 파기</li>
                        </ol>
                        <p style="font-size: 14px; padding-left: 20px; padding-bottom: 12px; line-height: 20px; color: #1d9dee;">※ 개인정보 수집 및 이용에 대해서 거부할 수 있으며, 거부 시에는 가입 및 상담 등의 안내 서비스를 받으실 수 없습니다.</p>
                    </div>
                    <div style="text-align:center;">
                        <input type="hidden" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1">
                        <label><input type="checkbox" class="required" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1"> 개인정보이용 동의</label>
                    </div>
                </div>
            </div>
            <?php
            $field_html = ob_get_clean();
        }
        return $field_html;
    }

    /* 휴대폰에 문자 발송하는 기능 */

    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($content_uid, $board_id, $content, $board){
        if($board_id == '1'){
            $phone = '010-0000-0000';        // 전화번호는 실제 전화번호로 입력함.
            $phone2 = '010-0000-0000';        // 전화번호는 실제 전화번호로 입력함.
            $message = "제목 : {$content->title}\n";
            $message .= "신청자 : {$content->member_display}\n";
            $message .= "연락처 : {$content->option->{'5cbafcc67e241'}}\n";
            $message .= "신청국번 : ".implode(', ', $content->option->{'5cbd676d5bd75'})."\n";
            $message .= "신청번호 : {$content->option->{'5cbd5d1c1ee24'}}\n";
            $message .= "전달사항 : {$content->content}\n";
            cosmosfarm_members_sms_send($phone, $message);
            cosmosfarm_members_sms_send($phone2, $message);
        }
    }
     

  • 스레드봇님, 해결되었습니다.

    권한설정 문제가 아니고, 고급설정에서 아래 2가지

    - 아이프레임으로 보기 : 활성화

    _ 글 쓴 후 이동 화면 : 글쓰기 화면

    으로 세팅하니 정상적으로 동작합니다.

     

    제가 급하게 작업하다 보니 기본적인 체크사항을 망각했네요.

    해결에 도움을 주셔서 매우 감사합니다.

     

    ps. 제가 완료되었다는 답변을 다는 사이에 스레드봇님께서
    아래와 추가적인 답변을 주셨네요.
    관심갖고 끝까지 챙겨주셔서 스레드봇님께 감사한 마음입니다.

    저도 도움이 될 날이 조만간 있겠지요^^

     

  • 안녕하세요.

    게시글 작성 후 로그인 안내 창을 표시하고 로그인 페이지로 이동하는 건

    올려주신 코드와는 관련이 없습니다.

    KBoard 권한설정과 고급설정 쪽을 확인해보셔야 할 듯합니다.

    워드프레스 관리자 -> KBoard -> 게시판 목록 -> 게시판 선택 -> 권한설정 탭에서

    읽기권한은 어떻게 되어 있는지요?

     

    고급설정 탭에서

    글 쓴 후 이동 화면 설정은 어떻게 되어 있는지요?

     

    만약, 읽기권한이 최고 관리자로 되어있고

    글 쓴 후 이동 화면 설정이 작성된 글 화면으로 되어있다면

    게시글 작성 후 본문 페이지로 이동합니다.

    그렇기 때문에 읽기권한이 없어서 로그인 페이지로 이동하는 건 아닌지 확인해보시겠어요?

    고맙습니다.

  • ^^

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
무제한으로 웹사이트를 만드세요. (코스모스팜 무제한 라이센스)