우커머스 상품에 KBoard 게시판 연결하기

안녕하세요?

KBoard팁에 나와있는데로 우커머스 상품에 KBoard 게시판 연결하기 하여 잘 활용하였습니다.

그런데 어떤 사이트에서는 똑같이 1. 게시판 생성하고 2. 테마의 functions.php 파일에 코드 추가하고 3. 게시판글쓰기 페이지 스킨파일을 수정해주었습니다.

실제로 1. 게시판 번호는 26번이고  2. 코드를 아래와 같이하고

//상품리뷰게시판
add_filter('woocommerce_product_tabs', 'kboard_new_product_tab_26');
function kboard_new_product_tab_26($tabs){
    
    $tabs['kboard_new_product_tab_26']['title'] = 'Q&A'; // 탭 이름입니다.
    $tabs['kboard_new_product_tab_26']['priority'] = 91;
    $tabs['kboard_new_product_tab_26']['callback'] = 'kboard_new_product_tab_content_26';
    
    return $tabs;
}

function kboard_new_product_tab_content_26(){
    global $product;
    
    echo '<h2></h2>'; // 탭 화면의 제목을 출력합니다.
    
    $board_id = 26; // 새로 만든 게시판의 ID값으로 수정해주세요.
    $iframe_id = uniqid();
    $product_id = $product->get_id();
    
    $url = new KBUrl();
    $_SESSION['kboard_board_id'] = $board_id;
    
    echo '<iframe id="kboard-iframe-' . $iframe_id . '" class="kboard-iframe kboard-iframe-' . $board_id . '" src="' . $url->set('kboard_id', $board_id)->set('category1', $product_id)->set('iframe_id', $iframe_id)->toString() . '" style="width:100%" scrolling="no" frameborder="0"></iframe>';
}

3. 게시판 글쓰기 스킨 파일 코드는

<input type="hidden" name="category1" value="<?php echo $content->category1?$content->category1:kboard_category1()?>">

를 추가하였는데 어떤변화가 하나도 없습니다.

이때까지 다른 사이트에서는 이 방법으로 해서 잘 활용하고 있었습니다.

그런데 이 사이트를 멀티사이트로 제작해서 그렇치 않을까 하는 생각이 들었습니다. 

멀티사이트로 사이트 구성하였을때는 혹시 코드를 다르게 해야 하는지요?

그리고   YITH WooCommerce Multi Vendor Premium,  YITH WooCommerce Badge Management Premium, YITH Live Chat Premium,  YITH Booking and Appointment for WooCommerce Premium  등의 플러그인에서도 상품 상세 설명 탭에 추가로 탭을 생성하는데  혹시 이러한 플러그인에서 영향 받아서 그런지 않은가 싶기도 합니다.

이 코드를 어떻게 수정 해야 이 문제를 해결할 수 있는지요? 

감사합니다. 

 

 

 

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

    우커머스 상품에 KBoard 게시판 연동 시

    멀티 사이트에서 정상적으로 동작하지 않을 수도 있습니다.

    저희도 좋은 방법이 있을지 연구해보겠습니다.

    고맙습니다.

  • 예 감사합니다.

    그런데 멀티사이트로 사이트를 만들고 게시판을 만들었을때  다른사이트에서 만든 게시판을 사용하고 싶으면 사이트 아이디와 게시판 아이디를 같이 지정하면 사용할 수 있던데요.

    혹시 사이트 아이디를 지정하여 사용할 수 있는 방법이 없을까요?

    여기서 사이트 아이디를 지정하는 코드를 첨가하면 혹시 가능할 수도 있지 않을까요?

     

  • 안녕하세요.

    기존에 추가하신 코드 대신

    아래의 코드를 활용해보시겠어요?

    add_filter('woocommerce_product_tabs', 'kboard_new_product_tab_1');
    function kboard_new_product_tab_1($tabs){
    	$tabs['kboard_new_product_tab_1']['title'] = 'Q&A'; // 탭 이름입니다.
    	$tabs['kboard_new_product_tab_1']['priority'] = 91;
    	$tabs['kboard_new_product_tab_1']['callback'] = 'kboard_new_product_tab_content_1';
    	
    	return $tabs;
    }
    
    function kboard_new_product_tab_content_1(){
    	global $product;
    	
    	echo '<h2>Q&A</h2>'; // 탭 화면의 제목을 출력합니다.
    	
    	$board_id = 1; // 새로 만든 게시판의 ID값으로 수정해주세요.
    	$iframe_id = uniqid();
    	$product_id = $product->get_id();
    	
    	$url = new KBUrl();
    	$_SESSION['kboard_board_id'] = $board_id;
    	
    	echo '<iframe id="kboard-iframe-' . $iframe_id . '" class="kboard-iframe kboard-iframe-' . $board_id . '" src="' . $url->set('kboard_id', $board_id)->set('category1', $product_id)->set('iframe_id', $iframe_id)->toString() . '" style="width:100%" scrolling="no" frameborder="0"></iframe>';
    }
    
    add_action('init', 'init_2020_03_24');
    function init_2020_03_24(){
    	$kboard_id = isset($_GET['kboard_id']) ? sanitize_text_field($_GET['kboard_id']) : '';
    	$iframe_id = isset($_GET['iframe_id']) ? sanitize_text_field($_GET['iframe_id']) : '';
    	
    	if($kboard_id == '1' && $iframe_id){ // 실제 게시판 id로 적용해주세요.
    		switch_to_blog(1); // 게시판이 설치된 blog_id로 적용해주세요.
    	}
    }

    위의 코드에서 $board_id = '1' 부분과 $kboard_id == '1' 부분은

    실제 우커머스 상품 쪽에 추가한 게시판 id로 적용해보세요.

    switch_to_blog(1) 부분은 실제 게시판이 설치된 blog id로 적용해보세요.

    위의 코드는 예제 코드이기 때문에 버그가 있을 수 있습니다.

    코드를 적용하신 후 충분히 테스트해보시겠어요?

    고맙습니다.

  • 정말 감사합니다.

    그런데 원래 세번째 단계에서 했던 글쓰기 페이지 스킨파일인

    /wp-content/plugins/kboard/skin/사용중인스킨/editor.php 에 추가하는 

    <input type="hidden" name="category1" value="<?php echo $content->category1?$content->category1:kboard_category1()?>">

    이 코드는 변경없이 그냥 사용하는지요?

    2단계는 변경된 코드 사용하고 3단계 그냥사용하니 에러도 나지않고  변화가 없습니다. 될듯말듯한게 애태웁니다. 

     

  • 안녕하세요.

    KBoard 카테고리에 우커머스 상품 ID를 저장하기 때문에

    editor.php 에 추가하는 코드는 그대로 적용해주셔야 합니다.

    고맙습니다.

이미지 사진은 imgur에 업로드한 뒤 링크 걸어주세요.
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기