contact form 수정을 하고싶습니다.

contact form을 두개를 사용을 합니다.

제 홈페이지를 보시면 우측 퀵메뉴에서 재휴신청 contact form / 접수신청 contact form 이렇게 두개를 사용을 하는데요

하단의 동의 부분에서

1.개인정보활용동의

2.제3자동의가

이렇게 있는데요

재휴신청은

1.개인정보활용동의

2.제3자동의가

이렇게 사용을 하고

 

접수신청은

1.개인정보활용동의

2.제3자동의

3.계약내용

 

이렇게 하고 싶습니다.

두 개의 conform 내용다르고 접수신청에 계약내용을 추가 하는 방법좀 알 수 있을가요?

 

아래는 소스코드로 앞전에 한번 수정을 해주신 부분입니다.

 

<?php
/*
Plugin Name: KBoard : elnara 기술지원
Plugin URI: https://www.cosmosfarm.com/products/kboard
Description: elnara.co.kr 웹사이트 기술지원 플러그인입니다.
Version: 1.0
Author: 코스모스팜 - Cosmosfarm
Author URI: https://www.cosmosfarm.com/
*/

if(!defined('ABSPATH')) exit;

add_filter('kboard_skin_file_path', 'elnara_kboard_skin_file_path', 10, 5);
function elnara_kboard_skin_file_path($current_file_path, $skin_name, $file, $vars, $skin){
 if($skin_name == 'ask-one' && $file == 'editor.php'){
  $current_file_path = dirname(__FILE__) . '/skin/ask-one/' . $file;
 }
 return $current_file_path;
}

add_filter('kboard_skin_fields', 'my_kboard_skin_fields', 10, 2);
function my_kboard_skin_fields($fields, $board){
 
 if(in_array($board->id, array('11', '12'))){ // 실제 적용될 게시판 ID 값으로 변경해주세요.
  
  if(!isset($fields['address'])){
   $fields['address'] = array(
    'field_type' => 'address',
    'field_label' => '주소',
    'class' => 'kboard-attr-text',
    'hidden' => '',
    'meta_key' => '',
    'field_name' => '',
    'permission' => '',
    'roles' => '',
    'default_value' => '',
    'placeholder' => '',
    'required' => '',
    'show_document' => '',
    'description' => '',
    'close_button' => 'yes'
   );
  }
  
  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'] == 'address'){
  
  // 페이지에 Daum 우편번호 서비스 자바스크립트 라이브러리를 추가합니다.
  wp_enqueue_script('daum-postcode', 'https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js', array(), '', true);
  
  ob_start();
  ?>
  <div class="kboard-attr-row">
   <label class="attr-name" for="kboard_option_postcode">우편번호/주소</label>
   <div class="attr-value">
    <input type="text" id="kboard_option_postcode" name="kboard_option_postcode" value="<?php echo $content->option->postcode?>" placeholder="우편번호..." style="width:100px">
    <input type="text" id="kboard_option_address" name="kboard_option_address" value="<?php echo $content->option->address?>" placeholder="주소...">
    <button type="button" class="kboard-default-button-small" onclick="kboard_postcode_address_search()">우편번호/주소 검색</button>
   </div>
  </div>
  <script>
  function kboard_postcode_address_search(){
   var width = 500;
   var height = 600;
   new daum.Postcode({
    width: width,
    height: height,
    oncomplete: function(data){
     jQuery('#kboard_option_postcode').val(data.zonecode);
     jQuery('#kboard_option_address').val(data.roadAddress);
     
     setTimeout(function(){
      jQuery('#kboard_option_address').focus();
     });
    }
   }).open({
    left: (screen.availWidth-width)*0.5,
    top: (screen.availHeight-height)*0.5
   });
  }
  </script>
  <?php
  $field_html = ob_get_clean();
 }
 
 if($field['field_type'] == 'agree_checkbox'){
  ob_start();
  ?>
  <div class="kboard-attr-row meta-key-<?php echo esc_attr($field['meta_key'])?>">
   <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: 20px 0 5px 0;">
    <div>
     <input type="hidden" class="" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="">
     <label><input type="checkbox" class="" name="kboard_option_<?php echo esc_attr($field['meta_key'])?>" value="1" onchange="check_agree2()" required> <strong>아래 사항에 모두 동의합니다.</strong></label>
    </div>
   </div>
   <hr />

              &nbsp;
   <div class="attr-value" style="margin:0;">
   
    <div>
     <input type="hidden" class="" name="kboard_option_agree_checkbox_1" value="">
     <label><input type="checkbox" class="" name="kboard_option_agree_checkbox_1" value="1" onchange="check_agree()" required><span style="color: #999999;"><strong>(필수)</strong></span><strong><a href="http://elnara.co.kr/privacy_policy/" target="_blank" rel="noopener"><span style="text-decoration: underline;">개인정보 제공 및 활용에 동의</span></a></strong></label>
    </div>
   </div>
   <div class="attr-value" style="margin:0;">
   
    <div>
     <input type="hidden" class="" name="kboard_option_agree_checkbox_2" value="">
     <label><input type="checkbox" class="" name="kboard_option_agree_checkbox_2" value="1" onchange="check_agree()" required><span style="color: #999999;"><strong>(필수)</strong></span><strong><a href="http://elnara.co.kr/user-privacy-third-automatic/" target="_blank" rel="noopener"><span style="text-decoration: underline;">개인정보 제3자 제공 동의</span></a></strong></label>
    </div>
   </div>
   
   
  </div>
  <script>
  function check_agree(){
   if(jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]:checked').length && jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]:checked').length){
    jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', true);
   }
   else{
    jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', false);
   }
  }
  function check_agree2(){
   if(jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]:checked').length){
    jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', true);
    jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', true);
   }
   else{
    jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', false);
    jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', false);
   }
  }
  </script>
  <?php
  $field_html = ob_get_clean();
 }
 
 return $field_html;
}

add_filter('kboard_document_add_option_value_field_html', 'my_kboard_document_add_option_value_field_html', 10, 4);
function my_kboard_document_add_option_value_field_html($value_html, $field, $content, $board){
 
 if($field['field_type'] == 'address'){
  $value_html = sprintf('<div class="kboard-document-add-option-value meta-key-%s"><span class="option-name">%s</span> : %s</div><hr>', $field['field_type'], $field['field_name'], "({$content->option->postcode}) {$content->option->address}");
 }
 
 return $value_html;
}

 

 

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

    코드를 올려주실 땐 에디터의 코드 스니펫 삽입 기능을 사용해서 올려주세요.

    특정 게시판에만 계약내용 체크박스를 추가하고 싶으신 건지요?

     

    올려주신 코드 중에서 아래의 코드를 찾아서

    <div class="attr-value" style="margin:0;">
    			
    	<div>
    		<input type="hidden" class="" name="kboard_option_agree_checkbox_2" value="">
    		<label><input type="checkbox" class="" name="kboard_option_agree_checkbox_2" value="1" onchange="check_agree()" required><span style="color: #999999;"><strong>(필수)</strong></span><strong><a href="http://elnara.co.kr/user-privacy-third-automatic/" target="_blank" rel="noopener"><span style="text-decoration: underline;">개인정보 제3자 제공 동의</span></a></strong></label>
    	</div>
    </div>

    찾은 코드 밑에 아래의 코드를 추가해보시겠어요?

    <?php if($board->id == '1'):?>
    <div class="attr-value" style="margin:0;">
    
    	<div>
    		<input type="hidden" class="" name="kboard_option_agree_checkbox_3" value="">
    		<label><input type="checkbox" class="" name="kboard_option_agree_checkbox_3" value="1" onchange="check_agree()" required><span style="color: #999999;"><strong>(필수)</strong></span><strong><a href="페이지주소" target="_blank" rel="noopener"><span style="text-decoration: underline;">계약내용</span></a></strong></label>
    	</div>
    </div>
    <?php endif?>

    위의 코드에서 $board->id == '1' 부분은 계약내용 필드를 추가할 게시판 id로 적용해보세요.

    페이지주소 부분은 실제 계약내용 쪽 페이지주소로 적용해보세요.

     

    아래의 코드를 찾아서

    <script>
    function check_agree(){
    	if(jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]:checked').length && jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', false);
    	}
    }
    function check_agree2(){
    	if(jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', true);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', false);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', false);
    	}
    }
    </script>

    아래의 코드로 교체해보세요.

    <?php if($board->id == '1'):?>
    <script>
    function check_agree(){
    	if(jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]:checked').length && jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]:checked').length && jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_3]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', false);
    	}
    }
    function check_agree2(){
    	if(jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', true);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', true);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_3]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', false);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', false);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_3]').prop('checked', false);
    	}
    }
    </script>
    <?php else:?>
    <script>
    function check_agree(){
    	if(jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]:checked').length && jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]').prop('checked', false);
    	}
    }
    function check_agree2(){
    	if(jQuery('input[type=checkbox][name=kboard_option_<?php echo esc_attr($field['meta_key'])?>]:checked').length){
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', true);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', true);
    	}
    	else{
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_1]').prop('checked', false);
    		jQuery('input[type=checkbox][name=kboard_option_agree_checkbox_2]').prop('checked', false);
    	}
    }
    </script>
    <?php endif?>

    위의 코드에서 $board->id == '1' 부분은 계약내용 필드를 추가할 게시판 id로 적용해보세요.

    고맙습니다.

  • 됩니다. 정말 감사합니다.

    다시 한번 정말 감사합니다.

     

    그런데 2가지문제가 남았습니다.

    제가 해보려고 했는데 아무리 해도 안되네요

    죄송하지만 답변을 좀 부탁드리겠습니다.

    글은 새로 올리겠습니다. 감사합니다.

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