contact form 수정 부분 부탁합니다.

<?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>
			<?php if($board->id == '11'):?>
<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?>
			
			
		</div>
		<?php if($board->id == '11'):?>
<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?>

		
		
		
		
		<?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;
}

안녕하세요 코스모스팜에서 항상 도움을 받고 있는 사람입니다.

 

죄송하지만 두 가지만 질문을 올리겠습니다.

 

너무 죄송하지만 부탁드리겠습니다.

 

내용

현재 contact form이 id=11 / id=12 이렇게 두개가 있습니다.

그런데 id=11 / id=12 / id=13 이렇게 id = 13을 하나를 더 추가를 하고 싶습니다.

에를 들면

id=11은 지금 현 상태 그대로 사용을 하고

id=12는 현 상태 그대로 에서 보내기 버튼을 누르면 특정페이지로 이동

id=13는 현재 없으므로 id=13추가 / 동의 부분 내용 별개 / 보내기 버튼 누르면 특정페이지 이동

 

이렇게 하고 싶습니다. 혹시 이렇게도 가능할까요?

하는 방법만 알면 소스코드를 보고 제가 공부를 해서 나중에 계속 추가를 할 수 있을 것 같습니다.

 

진짜 죄송한데 도움 부탁드립니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    1. KBoard 플러그인에서 지원하는 kboard_after_executing_url 필터를 사용하시면

    게시글 작성 후 이동 페이지를 게시판별로 설정하실 수 있습니다.

     

    12번 게시판과 13번 게시판에서 게시글 작성 후 이동할 페이지를 각각 설정하시려면

    워드프레스 관리자 -> 외모(테마 디자인) -> 테마 편집기 페이지에서 functions.php 파일 하단에

    아래의 코드를 추가해보시겠어요?

    add_filter('kboard_after_executing_url', 'my_kboard_after_executing_url', 10, 3);
    function my_kboard_after_executing_url($next_page_url, $content_uid, $board_id){
    	if($board_id == '12'){
    		$next_page_url = '페이지주소1';
    	}
    	if($board_id == '13'){
    		$next_page_url = '페이지주소2';
    	}
    	return $next_page_url;
    }

    위의 코드에서 페이지주소1 부분과 페이지주소2 부분은 각 게시판에서 게시글 작성 후

    이동할 페이지 주소로 각각 설정해보세요.

     

    2. 올려주신 코드를 활용해서 13번 게시판에도 적용하고

    11번 게시판에 계약내용 필드를 추가한 것처럼 새로운 필드를 추가하시려면

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

    if(in_array($board->id, array('11','12'))){ // 실제 적용될 게시판 ID 값으로 변경해주세요.

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

    if(in_array($board->id, array('11','12','13'))){ // 실제 적용될 게시판 ID 값으로 변경해주세요.

     

    아래의 코드를 찾아서

    <?php if($board->id == '11'):?>
    <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?>

    찾은 코드 밑에 아래의 코드를 추가해보세요.

    <?php if($board->id == '13'):?>
    <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?>

     

    아래의 코드를 찾아서

    <?php if($board->id == '11'):?>
    <script>

    아래의 코드로 교체해보시겠어요?

    <?php if($board->id == '11' || $board->id == '13'):?>
    <script>

    고맙습니다.

  • 정말 감사합니다.

     

    덕분에 문제 해결했습니다.

     

    감사합니다.

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