Разрешаем пользователю прокомментировать запись только один раз

29.02.2020

Разрешаем пользователю прокомментировать запись только один раз – например, это нужно для кастомного типа записи, в котором под комментарием подразумевается отзыв с оценкой.

При этом комментировать может только зарегистрированный пользователь.

Данный код является частью кода в файле comments.php:

global $current_user, $post;

if ( !is_user_logged_in() ) {
    echo '<p>You must be logged in to post comments.</p>';
} else { 
    $usercomment = get_comments( array (
        'user_id' => $current_user->ID,
        'post_id' => $post->ID,
    ) );

    if ( $usercomment ) {
        echo '<p>You have already commented this article.</p>';
    } else {
        comment_form();
    }
}

Проверяем, если юзер незалогинен, то показываем сообщение, что для отправки комментариев, нужно залогиниться, так же нужно оставить ссылку на страницу авторизации.

Если юзер залогинен, то получаем его комментарии к данной записи, если комментарии уже есть, тогда показываем сообщение, что данный пост уже прокомментирован. Если же комментариев нет, тогда для пользователя доступна форма с возможностью комментирования.

Рекомендую к прочтению:

Оставить комментарий