안녕하세요. 워드프레스에 Kboard + myCred 연동을 하였습니다.
Kboard에 글쓰기를 할 경우, 관리자가 승인을 한 글에게만 포인트를 지급 하고 싶습니다.
(승인대기는 포인트 지급을 하지 않게. )
현재 확인 해보니, 승인대기시에도 포인트가 지급이 되는거 같습니다.
이 경우는 어떻게 설정을 해야 할까요?
안녕하세요~^^
KBoard 게시글 작성 시 승인대기일 때 포인트를 지급하지 않고
관리자가 승인대기 중인 글을 발행됨으로 변경할 때 포인트를 지급하고 싶다는 말씀이신지요?
위와 같이 적용하시려면 KBoard 기본 포인트 기능 대신
별도의 코드를 추가해주셔야 할 듯합니다.
아래의 코드를 활용해보시겠어요?
add_action('kboard_pre_content_list_update', 'kboard_pre_content_list_update_20201216', 10, 1);
function kboard_pre_content_list_update_20201216($content){
$board = $content->getBoard();
if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$status = isset($_POST['status'][$content->uid]) ? sanitize_text_field($_POST['status'][$content->uid]) : '';
if($content->status == 'pending_approval' && !$status){
mycred_add('kboard_document_insert', $content->member_uid, 100, 'KBoard 게시글 승인 포인트 증가');
}
else if($content->status == '' && $status == 'pending_approval'){
mycred_add('kboard_document_insert', $content->member_uid, -100, 'KBoard 게시글 승인대기 포인트 감소');
}
}
}
위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해보세요.
100 부분은 게시글 상태가 발행됨으로 변경될 때 지급할 포인트의 수입니다.
-100 부분은 발행된 게시글의 상태가 다시 승인 대기중일 때 차감될 포인트입니다.
테마의 functions.php 파일에 코드를 추가하거나 Code Snippets 플러그인을 사용해서 코드를 추가할 수 있습니다.
고맙습니다.
현재 사용 중이신 KBoard 플러그인의 버전은 어떻게 되시는지요?
kboard_pre_content_list_update 액션은 KBoard 5.8 이상 버전에서 정상 동작합니다.
최신 버전이 아니라면 최신 버전으로 업데이트 부탁드립니다.
고맙습니다.
버전을 체크 해보니, 5.9.2 버전입니다.
KBoard 버전
해결 하였습니다!!!! 감사 합니다. ^^