답글이 있으면 댓글 삭제 안되게 하는 방법

답글이 있으면 댓글 삭제 안되게 하는 방법

어떻게 해야하나요?

내용 변경까지야 그렇다 쳐도 댓글 하나 지우면 밑에 답글이 다 지워진다는 게 좀 그렇네요.

워드프레스 게시판 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;
    }

     

    관련 기능을 빠른 시일 내에 정식으로 업데이트하도록 하겠습니다.

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요