<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[케이보드 글쓴이 포인트 지급 코드 오류 관련]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/55062</link>
		<description><![CDATA[<pre>
<code class="language-php">/**
    학원이 일반 이력서 조회 시 강사회원에게 2000 포인트 지급
*/


add_action('kboard_skin_header', 'my_kboard_skin_header', 10, 1);
function my_kboard_skin_header($board_builder){
    $board = $board_builder-&gt;board;
    $uid = kboard_uid();
    
    if($board_builder-&gt;mod == 'document' &amp;&amp; $board-&gt;id == '3'){ // 강사 이력서 게시판.
        if(function_exists('mycred_add')){
            if(!in_array($uid, $_SESSION['increased_document_uid'])){
                $content = new KBContent();
                $content-&gt;initWithUID($uid);
                
                if($content-&gt;member_uid != get_current_user_id()){
                    $log_args['user_id'] = $content-&gt;member_uid;
                    $log_args['ref'] = 'document_read_up_point';
                    $log_args['ref_id'] = $content-&gt;uid;
                    $log = new myCRED_Query_Log($log_args);
                    
                    if(!$log-&gt;have_entries()){
                        $add_point = 1000;
                        $balance = mycred_get_users_balance($content-&gt;member_uid);
                        $point = intval(get_user_meta($content-&gt;member_uid, 'kboard_document_mycred_point', true));
                        update_user_meta($content-&gt;member_uid, 'kboard_document_mycred_point', $point + $add_point);
                        
                        mycred_add('document_read_down_point', $content-&gt;member_uid, $add_point,'글읽기 증가 포인트', $content-&gt;uid);
                    }
                }
            }
        }
    }</code></pre>

<p>현재 테마의 functions.php 파일에 다른 유저가 게시판 글 조회 시 글쓴이에게  포인트를 지급하는 코드를 사용하고 있습니다.<br />
그런데 테스트 중 이 코드에 대해 심각한 이슈가 있어서 상담 요청드립니다. </p>

<p> </p>

<p>일단 글 조회 시 포인트 지급 기능 자체는 잘 작동합니다.</p>

<p>그런데 글읽기 포인트 차감 기능과 같이 동작할 때 오류가 나는 경우가 있습니다.</p>

<p> </p>

<p>유저에게 글을 읽을 포인트가 있는 경우에는 읽는 유저의 포인트가 잘 차감되고, 글쓴이에게 1000포인트가 잘 지급됩니다. (문제없음)</p>

<p>그런데 읽는 유저에게 글을 읽을 포인트가 부족할 경우, 조회를 시도한 유저에게는 포인트 부족 오류가 뜨고, 글쓴이에게 3000포인트가 지급되는 오류가 생기네요.</p>

<p>Mycred 로그상으로 1000포인트가 세번 지급됩니다. (실제로 게시물을 조회하지 못했는데도 말이죠)</p>

<p> </p>

<p>여러 테스트계정으로 테스트해봤는데 증상이 똑같습니다ㅠㅠㅠ</p>

<p>포인트 지급 부분이 웹사이트 핵심 기능이라 걱정이 많습니다.</p>

<p>해결 방법이 있을까요?</p>

<p> </p>

<p> </p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[
add_action('kboard_skin_header', 'my_kboard_skin_header', 10, 1);
function my_kboard_skin_header...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55071</link>
			<description><![CDATA[<pre>
<code>add_action('kboard_skin_header', 'my_kboard_skin_header', 10, 1);
function my_kboard_skin_header($board_builder){
    $board = $board_builder-&gt;board;
    $uid = kboard_uid();
    
    if($board_builder-&gt;mod == 'document' &amp;&amp; $board-&gt;id == '3'){ // 강사 이력서 게시판.
        if(function_exists('mycred_add')){
            if(!in_array($uid, $_SESSION['increased_document_uid'])){
                $content = new KBContent();
                $content-&gt;initWithUID($uid);
                
                if($content-&gt;member_uid != get_current_user_id()){
                    $log_args['user_id'] = $content-&gt;member_uid;
                    $log_args['ref'] = 'document_read_up_point';
                    $log_args['ref_id'] = $content-&gt;uid;
                    $log = new myCRED_Query_Log($log_args);
                    
                    if(!$log-&gt;have_entries()){

                        $balance = mycred_get_users_balance(get_current_user_id());
                        if($board-&gt;meta-&gt;document_read_down_point &gt; $balance){
                         
                        }

                    else{$add_point = 1000;
                      $balance = mycred_get_users_balance($content-&gt;member_uid);$point = intval(get_user_meta($content-&gt;member_uid, 'kboard_document_mycred_point', true));
                        update_user_meta($content-&gt;member_uid, 'kboard_document_mycred_point', $point + $add_point);
                        mycred_add('document_read_down_point', $content-&gt;member_uid, $add_point,'글읽기 증가 포인트', $content-&gt;uid);
                    }
                    }
                }
            }
        }
    }
}</code></pre>

<p>답변 고맙습니다. 저도 나름대로 방법을 찾아서, 해당 코드를 공유드립니다.</p>

<p> </p>

<p>질문을 올려놓고 저도 열심히 방법을 찾았는데요,</p>

<p>비슷한 코드를 찾던 중, 케이보드 플러그인 내에 있는 글읽기 차감 섹션 코드를 활용해서 처리했습니다.</p>

<p> </p>

<p>글읽기 차감 섹션은 If 조건문으로, 포인트 보유 유무를 먼저 파악한 후에</p>

<p>포인트를 보유했을 때만 글을 보여주고, 아닌 경우 에러를 보여주는 섹션이 있는데요,</p>

<p>이 중 포인트 보유 유무를 체크하는 섹션을, 1000포인트 지급코드 이전에 조건부 실행으로 넣어서 해결했습니다.</p>

<p> </p>

<p>다음 업데이트에 글읽기시 작성자에게 포인트 지급 부분을 아예 기본 기능으로 넣어주셔도 좋을 것 같습니다.</p>

<p>언제나 빠른 지원 고맙습니다.</p>]]></description>
			<author>드림스토리</author>
			<pubDate>Tue, 31 Aug 2021 10:44:18 +0000</pubDate>
			<category>KBoard</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

kboard_skin_header 액션에다가 코드를 추가해주셨는데요.

실행 순서 때문에 문제가 발...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/55068</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>kboard_skin_header 액션에다가 코드를 추가해주셨는데요.</p>

<p>실행 순서 때문에 문제가 발생되는 것 같습니다.</p>

<p>KBoardBuilder.class.php 파일에서 $content-&gt;increaseView(); 코드 아래쪽에 있는 액션이나 필터에 코드를 추가하셔야 할 것 같습니다.</p>

<p> </p>

<p>예를 들어 아래와 같이 kboard_content_paragraph_breaks 필터를 사용할 수 있습니다.</p>

<pre>
<code class="language-php">add_filter('kboard_content_paragraph_breaks', 'my_kboard_content_paragraph_breaks_20210831', 10, 2);
function my_kboard_content_paragraph_breaks_20210831($text, $board_builder){
	
	// 코드 삽입
	
	return $text;
}</code></pre>

<p> </p>

<p>또는 kboard_always_view_list 필터를 사용할 수도 있습니다.</p>

<pre>
<code class="language-php">add_filter('kboard_always_view_list', 'my_kboard_always_view_list_20210831', 10, 2);
function my_kboard_always_view_list_20210831($always_view_list, $board_builder){
	
	// 코드 삽입
	
	return $always_view_list;
}</code></pre>

<p> </p>

<p>필터의 원래의 목적과는 다르지만 이렇게 코드를 추가해서 활용할 수도 있겠습니다.</p>

<p>시도해보시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Tue, 31 Aug 2021 08:24:51 +0000</pubDate>
			<category>KBoard</category>
		</item>
			</channel>
</rss>