안녕하세요.
워드프레스 게시판 KBoard(케이보드) 사용중입니다.
댓글 작성 시 비밀글 체크하기 (관리자만 볼 수 있도록) 기능을 넣을 수 있을까요?
관련 코드 안내해주시면 감사하겠습니다!
비밀댓글 작성 시 관리자, 게시글 작성자, 댓글 작성자에게만 보이게 하시려면
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;
}
고맙습니다.
안녕하세요.
해당 코드를 적용하면 비회원 사용자이거나
로그인 사용자일 경우 본인이 쓴 댓글이 아닐 경우에 '관리자만 볼 수 있습니다.'라고 표시됩니다.
로그인 사용자의 경우 구분 가능한 ID가 있지만
비회원의 경우에는 자신이 쓴 글인지 확인하려면 ip 등으로 체크를 해야 할 듯합니다.
하지만, ip의 경우 동적 ip를 사용한다면
자신이 쓴 글이어도 식별이 불가능할 수도 있습니다.
비회원 댓글 작성 관련해서 ip를 활용한 방법 외에 식별이 가능한 방법이 있을지 연구해보겠습니다.
고맙습니다.
안녕하세요~^^
최신 버전의 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 필터를 활용해서 댓글 내용을 관리자가 확인할 수 있고
로그인 사용자가 쓴 비밀 댓글이라면 본인은 확인 가능하도록 하는 코드입니다.
고맙습니다.
여기에 추가로 문의 드립니다
관리자 및 댓글 쓴 사람과 게시물 작성자가 모두 비밀 댓글을 보게 하려면 어떻게 해야할까요?
요즘 많이 질문하네요 죄송하고 감사합니다 !!
안녕하세요, 말씀하신 대로 코드를 넣었으나 관리자에겐 보이지만 댓글작성자와 글작성자에게 모두 보이지 않습니다.
이것은 로그인을 하지 않은 유저들을 대상으로 하는 익명게시판에 한해서입니다. 현재 익명댓글로 만들어놨고 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 = '관리자만 볼 수 있습니다.';
}
}
감사합니다 ^^
네, 저 같은 경우 익명게시판의 취지가 로그인을 하지 않고 남길수 있는것이고 그렇기 때문에 로그인을 하지 않은 유저들끼리도 DM 을 통한 소통이 가능했으면 좋겠습니다. 연구해보신다니 정말 감사합니다! 기다리고 있겠습니다!
감사합니다 ^^