안녕하세요.
워드프레스 게시판 KBoard(케이보드) 사용중입니다.
댓글 작성 시 비밀글 체크하기 (관리자만 볼 수 있도록) 기능을 넣을 수 있을까요?
관련 코드 안내해주시면 감사하겠습니다!
안녕하세요~^^
최신 버전의 KBoard 게시판 플러그인과 댓글 플러그인에서 동작하는
댓글 비밀글 예제 코드를 작성해봤습니다.
테마 쪽 functions.php 파일 하단에
아래의 코드를 추가해서 확인해보시겠어요?
add_action('kboard_comments_field', 'my_kboard_comments_field', 10, 4);
function my_kboard_comments_field($field_html, $board, $content_uid, $commentBuilder){
if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
?>
<input type="checkbox" id="comment_option_secret" name="comment_option_secret" value="true">
<label for="comment_option_secret">비밀댓글</label>
<?php
}
}
add_filter('kboard_comments_content', 'my_kboard_comments_content', 10, 3);
function my_kboard_comments_content($content, $comment_uid, $content_uid){
$comment = new KBComment();
$comment->initWithUID($comment_uid);
$board = $comment->getBoard();
if(!$board->isAdmin() && $comment->option->secret && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
$user_id = get_current_user_id();
if(!$user_id || $user_id != $comment->user_uid){
$content = '관리자만 볼 수 있습니다.';
}
}
return $content;
}
kboard_comments_field 액션을 활용해서 댓글 입력 필드 뒤에 HTML 코드를 추가하고
kboard_comments_content 필터를 활용해서 댓글 내용을 관리자가 확인할 수 있고
로그인 사용자가 쓴 비밀 댓글이라면 본인은 확인 가능하도록 하는 코드입니다.
고맙습니다.
여기에 추가로 문의 드립니다
관리자 및 댓글 쓴 사람과 게시물 작성자가 모두 비밀 댓글을 보게 하려면 어떻게 해야할까요?
요즘 많이 질문하네요 죄송하고 감사합니다 !!
비밀댓글 작성 시 관리자, 게시글 작성자, 댓글 작성자에게만 보이게 하시려면
kboard_comments_content 필터 쪽 코드를
아래의 코드로 교체해보시겠어요?
add_filter('kboard_comments_content', 'my_kboard_comments_content', 10, 3);
function my_kboard_comments_content($content, $comment_uid, $content_uid){
$comment = new KBComment();
$comment->initWithUID($comment_uid);
$board = $comment->getBoard();
$user_id = get_current_user_id();
if(!$board->isAdmin() && !$board->isEditor($user_id) && $comment->option->secret && $board->id == '1'){ // 실제 게시판 id로 적용해주세요.
if(!$user_id || $user_id != $comment->user_uid){
$content = '관리자만 볼 수 있습니다.';
}
}
return $content;
}
고맙습니다.
안녕하세요, 말씀하신 대로 코드를 넣었으나 관리자에겐 보이지만 댓글작성자와 글작성자에게 모두 보이지 않습니다.
이것은 로그인을 하지 않은 유저들을 대상으로 하는 익명게시판에 한해서입니다. 현재 익명댓글로 만들어놨고 author & password 칸도 비활성화 해놓은 상태입니다. 더 자세한 정보가 필요하시다면 labamboo.com에서 보시는게 더 빠를듯 싶습니다.
해당 코드를 살짝 수정해서 다음과 같이 만들었지만, 바뀌는건 없습니다:
if(!$board->isAdmin() && !$board->isEditor($user_id) && $comment->option->secret && $board->id == '1' && $content->member_uid !== get_current_user_id()){ // 실제 게시판 id로 적용해주세요.
if(!$user_id ||$user_id != $comment->user_uid){
$content = '관리자만 볼 수 있습니다.';
}
}
감사합니다 ^^
안녕하세요.
해당 코드를 적용하면 비회원 사용자이거나
로그인 사용자일 경우 본인이 쓴 댓글이 아닐 경우에 '관리자만 볼 수 있습니다.'라고 표시됩니다.
로그인 사용자의 경우 구분 가능한 ID가 있지만
비회원의 경우에는 자신이 쓴 글인지 확인하려면 ip 등으로 체크를 해야 할 듯합니다.
하지만, ip의 경우 동적 ip를 사용한다면
자신이 쓴 글이어도 식별이 불가능할 수도 있습니다.
비회원 댓글 작성 관련해서 ip를 활용한 방법 외에 식별이 가능한 방법이 있을지 연구해보겠습니다.
고맙습니다.
네, 저 같은 경우 익명게시판의 취지가 로그인을 하지 않고 남길수 있는것이고 그렇기 때문에 로그인을 하지 않은 유저들끼리도 DM 을 통한 소통이 가능했으면 좋겠습니다. 연구해보신다니 정말 감사합니다! 기다리고 있겠습니다!
감사합니다 ^^