티스토리 뷰

반응형

 

예제 화면

 

관리자 > kboard > 게시판생성 

- default, contact-for 등 스킨 선택

 

kboard/skine/ 해당스킨 / 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(!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" for="agree_checkbox" style="display:none">
                <span class="field-name"><?php echo esc_html($field['field_name'] ? $field['field_name'] : $field['field_label'])?></span>
            </label>
            <div class="attr-value" style="margin:0;">
                <div style="margin: 20px 0; padding: 10px; height: 100px; background-color: #f2f2f2; overflow-y: auto;">
                    <p>정보통신망법 규정에 따라 OOO에 회원가입 신청하시는 분께 수집하는 개인정보의 항목, 개인정보의 수집 및 이용목적, 개인정보의 보유 및 이용기간을 안내 드리오니 자세히 읽은 후 동의하여 주시기 바랍니다.</p>
                    <p>1. 수집하는 개인정보</p>
                    <p>2. 수집한 개인정보의 이용</p>
                    <p>3. 개인정보의 파기</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_filter('kboard_skin_fields', 'my_kboard_skin_fields1', 10, 2);
function my_kboard_skin_fields1($fields, $board){
    $builder_mod = kboard_builder_mod();
    $parent_uid = kboard_parent_uid();
   
    if($board->id == '2' && $builder_mod == 'editor'){
        if($parent_uid){
            foreach($fields as $key => $field){
                // 답글일 때 지울 필드의 메타키로 교체해주세요.
                if(in_array($field['meta_key'], array('5c3c38cfcf21c', '5c3c38fbcf21d', '5c3c3918cf21e'))){
                    unset($fields[$key]);
                }
               
                if(in_array($field['meta_key'], array('attach'))){
                    $fields[$key]['field_name'] = '파일';
                }
            }
        }
        else{
            foreach($fields as $key => $field){
                // 답글이 아닐 때 지울 필드의 메타키로 교체해주세요.
                if(in_array($field['meta_key'], array('5c3c38cfcf21c'))){
                    unset($fields[$key]);
                }
            }
        }
    }
   
    return $fields;
}

코드를 삽입하고 

kboard를 선택 > 해당필드  탭 선택

아래와 같이 필드가 선택된것을 확인 할수 있습니다.

 

 

정말 편리하게 만들어 놨네요 !!!!!

 

반응형