답글이 있으면 댓글 삭제 안되게 하는 방법
어떻게 해야하나요?
내용 변경까지야 그렇다 쳐도 댓글 하나 지우면 밑에 답글이 다 지워진다는 게 좀 그렇네요.
워드프레스 게시판 KBoard 사용중입니다.
네 말씀하신 내용에 대해서 사용자분들로부터 개선 요청이 있었습니다.
그래서 현재 관련 기능을 개선하고 있습니다.
우선은 코드를 직접 추가해서 답글이 있으면 댓글이 삭제되지 않도록 하실 수 있습니다.
FTP로 접속해서 /wp-content/plugins/kboard-comments/class/KBCommentController.class.php 파일을 수정해주세요.
아래 굵게 표시된 코드를 추가해주시면 됩니다.
public function delete(){
header("Content-Type: text/html; charset=UTF-8");
$referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
$host = isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'';
if($referer){
$url = parse_url($referer);
$referer_host = $url['host'] . (isset($url['port'])&&$url['port']?':'.$url['port']:'');
}
else{
wp_die(__('This page is restricted from external access.', 'kboard-comments'));
}
if(!in_array($referer_host, array($host))) wp_die(__('This page is restricted from external access.', 'kboard-comments'));
$uid = isset($_GET['uid'])?intval($_GET['uid']):'';
$password = isset($_POST['password'])?sanitize_text_field($_POST['password']):'';
if(!$uid){
die("<script>alert('".__('uid is required.', 'kboard-comments')."');history.go(-1);</script>");
}
else if(!is_user_logged_in() && !$password){
die("<script>alert('".__('Please log in to continue.', 'kboard-comments')."');history.go(-1);</script>");
}
$comment = new KBComment();
$comment->initWithUID($uid);
if(!$comment->isEditor() && $comment->password != $password){
die("<script>alert('".__('You do not have permission.', 'kboard-comments')."');history.go(-1);</script>");
}
global $wpdb;
$count = $wpdb->get_var("SELECT COUNT(*) FROM `{$wpdb->prefix}kboard_comments` WHERE `parent_uid`='$comment->uid'");
if($count){
die("<script>alert('답글이 있는 댓글은 삭제하실 수 없습니다.');history.go(-1);</script>");
}
$comment->delete();
if($comment->password && $comment->password == $password){
// 팝업창으로 비밀번호 확인 후 opener 윈도우를 새로고침 한다.
echo '<script>';
echo 'opener.window.location.reload();';
echo 'window.close();';
echo '</script>';
}
else{
// 삭제권한이 있는 사용자일 경우 팝업창은 없기 때문에 페이지 이동한다.
wp_redirect($referer);
}
exit;
}
관련 기능을 빠른 시일 내에 정식으로 업데이트하도록 하겠습니다.
고맙습니다.