댓글 최소 시간 간격 설정

1. 정확한 제품 또는 플러그인 이름

k-board 기본 스킨

 

2. 상세 내용

게시판 권한 설정에 게시글 최소 시간 간격 설정은 있는데, 댓글 최소 시간 간격 설정은 없네요. 어떤 php 로직을 이용해야 설정이 가능한가요?

 

3. 확인 가능한 상세 페이지 주소

 

 

4. 수정한 코드 내역 (있다면)

add_action('kboard_comments_execute_before_insert', function($content_uid, $comment_data){
    if (!is_user_logged_in()) return;

    $user_id = get_current_user_id();
    $interval = 60; // 제한 시간 (초)

    $last_time = get_user_meta($user_id, 'kboard_last_comment_time', true);
    $current_time = time();

    if ($last_time && ($current_time - $last_time) < $interval) {
        $wait = $interval - ($current_time - $last_time);
        wp_die("댓글은 {$interval}초 간격으로만 작성할 수 있습니다. ({$wait}초 후 다시 시도해주세요.)");
    }

    update_user_meta($user_id, 'kboard_last_comment_time', $current_time);
});

 

이 코드가 왜 작동이 안될까요?

 

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • AI에 의해 자동 생성된 답변이에요 😀

    KBoard 기본 스킨 게시판에서 댓글 최소 시간 간격 설정에 대한 문의입니다. KBoard 자체에는 댓글 최소 시간 간격 설정 기능이 기본적으로 제공되지 않습니다.

    제공해주신 코드는 댓글 작성 간격을 제한하는 사용자 정의 함수로 보입니다. 이 코드가 작동하지 않는 이유는 여러 가지가 있을 수 있습니다.

    1. **코드 위치:** 해당 코드가 올바른 위치에 추가되었는지 확인해야 합니다. 일반적으로 워드프레스 테마의 `functions.php` 파일이나, 별도의 플러그인을 통해 추가하는 것이 좋습니다.

    2. **액션 훅(Action Hook) 이름:** `kboard_comments_execute_before_insert` 액션 훅이 KBoard 댓글 시스템에서 정확하게 사용되는 훅인지 확인해야 합니다. KBoard의 댓글 처리 방식에 따라 다른 훅을 사용해야 할 수도 있습니다.

    3. **사용자 메타 데이터(User Meta Data) 키:** `kboard_last_comment_time`이라는 사용자 메타 데이터 키가 올바르게 설정되고 업데이트되는지 확인해야 합니다.

    4. **오류 처리:** `wp_die()` 함수는 즉시 스크립트 실행을 중단하고 메시지를 표시하므로, 실제 댓글이 저장되지 않을 수 있습니다. 디버깅을 위해 `wp_die()` 대신 `error_log()`를 사용하여 오류를 기록하고, 댓글이 정상적으로 저장되는지 확인하는 것이 좋습니다.

    다음은 수정된 코드 예시입니다.

    ```php

    add_action('kboard_comments_execute_before_insert', function($content_uid, $comment_data){

    if (!is_user_logged_in()) return;

    $user_id = get_current_user_id();

    $interval = 60; // 제한 시간 (초)

    $last_time = get_user_meta($user_id, 'kboard_last_comment_time', true);

    $current_time = time();

    if ($last_time && ($current_time - $last_time) < $interval) {

    $wait = $interval - ($current_time - $last_time);

    error_log("댓글 제한 시간: {$wait}초"); // 오류 로그 기록

    wp_die("댓글은 {$interval}초 간격으로만 작성할 수 있습니다. ({$wait}초 후 다시 시도해주세요.)");

    }

    update_user_meta($user_id, 'kboard_last_comment_time', $current_time);

    });

    ```

    위 코드를 적용한 후에도 문제가 해결되지 않으면, 워드프레스 디버깅 모드를 활성화하여 오류 메시지를 확인하거나, KBoard 관련 커뮤니티에 문의하여 도움을 받는 것이 좋습니다.

    ↓ 아래 버튼을 눌러서 피드백해주세요.

  • 안녕하세요~^^

    저희쪽에서도 연구중에 있습니다.

    댓글 최소 기간 설정 에 관련해서 저희 내부적인 논의를 통해

    다음 업데이트시 기능을 추가 해보도록 하겠습니다.

    급하게 기능을 추가해야하는 상황이시라면

    프로젝트 의뢰에 상세 내용을 올려보세요.

    https://www.cosmosfarm.com/project

    고맙습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기