게시글 작성시 카테고리1에 현재 우커머스에 등록되어있는 모든 상품을 select박스로 넣고싶습니다.

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

kboard , 우커머스

 

2. 상세 내용

현재 우커머스 Q&A 넣는 방식으로 리뷰게시판을 kboard게시판으로 연동은 잡았습니다.

메뉴중에 리뷰게시판이라고 모든 리뷰게시글이 보이게 해뒀습니다.

각각 상품 single페이지에서 작성하는것 외에, 

"리뷰게시판" 이라는 페이지에서도 글작성을 유도하고있습니다.

카테고리1을 product id로 연동잡긴했는데, 

"전체 리뷰게시판 " 이라는 영역에서 글작성시

카테고리1이라는 곳에 또는 별도의 select box로 우커머스에 등록되어있는 모든 상품을 불러와 option 값으로 주고 싶습니다.

가능할까요? 

 

글작성자는 상품을 검색후 상품명을 넣고, (자동완성기능("autocomplete")으로 사용하는 것이 가장 좋음)

작성할 수 있었으면 좋겠습니다.

당연히 상품을 선택한 후에는 우커머스에 연동한 게시글에도 표시가 되어야 하고요.

 

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

 

 

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

 

 

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

    kboard_get_template_field_html 필터를 사용하면

    KBoard의 입력 필드들을 수정하실 수 있습니다.

     

    간단하게 예제 코드를 만들어보았습니다.

    아래의 코드를 테마 functions.php에 입력해보시겠어요?

    add_filter('kboard_get_template_field_html', 'kboard_get_template_field_html_1026', 10, 4);
    function kboard_get_template_field_html_1026($field_html, $field, $content, $board){
    	if($board->id == 1){ // 적용할 게시판의 id를 입력하세요
    		if($field['field_type'] == 'category1'){
    			$args = array(
    				'post_type'      => 'product',
    				'posts_per_page' => -1,
    			);
    			
    			$products = new WP_Query($args);
    			ob_start();
    			?>
    			<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" />
    			<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
    			
    			<div class="kboard-attr-row kboard-attr-category1">
    				<label class="attr-name" for="category1"><span class="field-name">카테고리1</span> <span class="attr-required-text">*</span></label>
    					<div class="attr-value">
    					<select id="category1" name="category1" class="select2">
    						<option value="">선택</option>
    						<?php foreach($products->posts as $product):?>
    							<option value="<?php echo $product->ID?>"><?php echo $product->post_title?></option>
    						<?php endforeach?>
    					</select>
    				</div>
    			</div>
    			
    			<script>
    				jQuery(document).ready(function($){
    					$('.select2').select2();
    				});
    			</script>
    			<?php
    			$field_html = ob_get_clean();
    		}
    	}
    	return $field_html;
    }

     

    상품이 과도하게 많을 경우

    페이지 로딩 속도가 느려질 수 있습니다.

     

    예제코드를 적절하게 수정하여 적용해보시겠어요?

    코드를 작성하기 어려우시다면

    프로젝트 의뢰에 자세한 내용을 남겨보세요.

    https://www.cosmosfarm.com/project

    고맙습니다.

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