KBoard(케이보드) 게시판에 개인정보 동의 체크박스 만들기

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

케이보드 게시판

 

2. 상세 내용

https://blog.cosmosfarm.com/archives/506/kboard-%EA%B2%8C%EC%8B%9C%ED%8C%90%EC%97%90-%EA%B0%9C%EC%9D%B8%EC%A0%95%EB%B3%B4-%EB%8F%99%EC%9D%98-%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-%EB%A7%8C%EB%93%A4%EA%B8%B0/

위 링크 내용을 참고해 코드를 function.php 에 넣었는데, 이후 게시판관리에서 
권한설정, 입력필드,계층형카테고리와 같은 탭버튼이 눌리지 않는 문제가 생겼습니다. 

이것을 해결할 수 있는 방법이 있을까요?

 

 

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

 

 

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

아래는 function.php에 삽입한 코드 전문입니다.


add_filter('gettext', 'my_text_strings', 999, 3);
function my_text_strings($translated_text, $text, $domain){
	if($domain == 'kboard'){
		switch($translated_text){
			case 'KBoard 미디어 추가': $translated_text = '이미지 업로드'; break;
		}
	}
	return $translated_text;
}

//==================================k-board 게시글 목록의 공지사항을 원하는 문구로 변경
add_action('kboard_skin_header', 'kboard_skin_header_20211222', 10, 1);
function kboard_skin_header_20211222($builder){
	$board = $builder->board;
	if(kboard_builder_mod() == 'list' && $board->id == '1'){ // 실제 게시판 id로 적용.
		add_filter('gettext', 'gettext_20211222', 10, 3);
	}
}
	
function gettext_20211222($translated_text, $text, $domain){
	if($domain == 'kboard'){
		switch ($translated_text){
			case '공지사항': $translated_text = '※'; break;
		}
	}
	
	return $translated_text;
}
//=================================k-board‘글쓰기’시, 옵션의 공지사항을 원하는 글로 변경
add_filter('kboard_get_template_field_html', function($field_html, $field, $content, $board){
	if($board->id == '1'){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
		if($field['field_type'] == 'option'){
			ob_start();
			?>
			
			<div class="kboard-attr-row kboard-attr-option">
				<label class="attr-name" for="option"><span class="field-name">옵션</span></label>
				<div class="attr-value">
					<label class="attr-value-option"><input type="checkbox" name="secret" value="true" onchange="kboard_toggle_password_field(this)"> 비밀글</label>
					<label class="attr-value-option"><input type="checkbox" name="notice" value="true"> 중요공지</label>
				</div>
			</div>
			
			<?php
			return ob_get_clean();
		}
	}
	
	return $field_html;
}, 10, 4);


//==========게시판에 개인정보 동의 체크박스 만들기

add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
function my_kboard_skin_fields($fields, $board){
    
    if($board->id == '2'){ // 실제 적용될 게시판 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>⊙ 개인정보의 수집 및 이용목적
- 서비스 이용에 따른 본인식별, 실명확인, 가입의사 확인, 연령제한 서비스 이용
- 고지사항 전달, 불만처리 의사소통 경로 확보, 물품배송 시 정확한 배송지 정보 확보
- 신규 서비스 등 최신정보 안내 및 개인맞춤서비스 제공을 위한 자료
- 기타 원활한 양질의 서비스 제공 등</p>
                    <p>⊙ 수집하는 개인정보의 항목
- 이름, 이메일, 주소, 연락처, 핸드폰번호, 그 외 선택항목</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;
}

 

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