게시물 입력시 개인정보활용 동의 창 2개 띄우는 방법

게시물 입력창에 개인정보활용동의 창 띄우는 방법은 아래 블로그 보고 해결했는데요.

동의창을 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/

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

    정확한 내용 파악은 어려우나 같은 형태의 필드를 원하시는 게 맞다면

    agree_checkbox 부분을 agree_checkbox2 로 변경하여 아래와 같은 형태로 적용해보시겠어요?

    
    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'
    			);
    		}
    		if(!isset($fields['agree_checkbox2'])){
    			$fields['agree_checkbox2'] = array(
    				'field_type' => 'agree_checkbox2',
    				'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();
    		}
    	if($field['field_type'] == 'agree_checkbox2'){
    		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;
    }

    고맙습니다.

  • 답변 감사드립니다. 한 번에 2개의 동의는 가능하나 각각 따로 삽입하는 경우도 가능한가요?

    2개 동의 내용을 회원 등급별로 적용할 예정이라 각각 따로 등록해서 표시권한을 바꿀 수 있을까요?

  • 한 번에 2개의 동의는 가능하나 각각 따로 삽입하는 경우라는 것이

    어떤 것인지 정확한 내용 파악은 어려우나

    역할에 따라 다르게 표시하고자 하신다면 아래 관련 링크 참고해보시겠어요?

    https://www.cosmosfarm.com/threads/document/34112

    https://www.cosmosfarm.com/threads/document/34336

     

    추가로, User Role Editor 플러그인을 사용하시면

    워드프레스 역할을 더 늘리고 역할들의 권한도 편집할 수 있습니다.

    설치해서 활용해보시겠어요?

     

    워드프레스는 역할과 권한에 대한 자세한 내용은

    아래의 링크를 참고해주세요.

    https://codex.wordpress.org/Roles_and_Capabilities

    고맙습니다.

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