게시판 별로 개인정보보호 정책 내용이 다를때

안녕하세요 수고 많으십니다.

궁금한점이 있어 질문드립니다.

 

현재 테마의 functions.php 에

아래 소스 (개인정보보호동의) 를 만들어 사용중입니다.

 

근데 각 게시판 마다 모두 똑같이 적용이 되버려서 문제입니다.

1번과 2번 게시판이 개인정보보호 내용이 다릅니다.

내용이 다르게 나올 수 있도록 하는 방법이 있을까요?

 

add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
function my_kboard_skin_fields($fields, $board){
    
    if($board->id == '65'){ // 실제 적용될 게시판 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:150px; background-color: #f2f2f2; overflow-y: auto; font-size: 16px;">
                    <p>개인정보보호</p>
                    <p>이곳이 개인정보 내용입니다. 게시판 별로 다른 내용이 가능할까요?</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"><font size="3px">&nbsp;&nbsp;위의 내용에 동의합니다.</font></label>
                </div>
            </div>
        </div>
        <?php
        $field_html = ob_get_clean();
    }
    
    return $field_html;
}

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요 위 소스좀 살펴봐주세요^^;;
    감사합니다.

  • 게시판이 46, 54 가  1번 내용

    65번이 2번 개인정보 내용이 나와야 할때 

    이렇게 하면 되나요?  오류가 나서요... 한번 봐주세요 소스 ㅜㅜ

    add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
    function my_kboard_skin_fields($fields, $board){
    if(in_array($board->id, array('46','54','65')){ // 실제 적용될 게시판 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'){
    if(in_array($board->id, array('46','54')){
    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:150px; background-color: #f2f2f2; overflow-y: auto; font-size: 16px;">
                        <p>1번 개인정보내용</p>
                        <p>1번 이곳이 개인정보 내용입니다. </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"><font size="3px">&nbsp;&nbsp;위의 내용에 동의합니다.</font></label>
                    </div>
                </div>
            </div>
    }
    else if($board->id == '65'){
    <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:150px; background-color: #f2f2f2; overflow-y: auto; font-size: 16px;">
                        <p>2번개인정보보호</p>
                        <p>2번 이곳이 개인정보 내용입니다. </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"><font size="3px">&nbsp;&nbsp;위의 내용에 동의합니다.</font></label>
                    </div>
                </div>
            </div>
    }
    <?php
            $field_html = ob_get_clean();
        }
        
        return $field_html;
    }

     

  • 안녕하세요~^^

    아래 참고할만한 링크를 남겨드릴테니 참고해서 코드를 수정해보시겠어요?

    다른 내용을 표시해야 할 때 사용하는 코드가 있습니다.

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

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요