Функция wp_notify_moderator() уведомляет модератора сайта о новом комментарии, который ожидает проверки. Это важно для управления комментариями, требующими модерации, чтобы администраторы могли своевременно принимать меры.
wp_notify_moderator( $comment_id );Параметры
- $comment_id(int): Идентификатор комментария, который требуется проверить. Этот параметр обязателен.
Возвращаемое значение
Функция всегда возвращает true.
Примечания
- Функция уведомляет модератора по электронной почте только если в настройках включена опция: Настройки > Обсуждение > Отправить мне письмо, когда > Комментарий ожидает проверки.
- Функция не сработает, если эта опция не активирована.
- Если у автора записи нет прав редактировать комментарии, он не получит уведомление.
- Функция является pluggable, что означает, что её можно переопределить в плагинах. Функция будет доступна только после подключения всех плагинов, и её нельзя вызывать напрямую из кода плагина до этого. Рекомендуется использовать хук plugins_loadedили позднее, например,init, для вызова.
Хуки
Функция wp_notify_moderator() использует следующие хуки:
- notify_moderator: Позволяет изменить поведение уведомлений.
- comment_moderation_recipients: Фильтр для изменения списка получателей уведомлений.
- comment_moderation_text: Фильтр для изменения текста уведомления.
- comment_moderation_subject: Фильтр для изменения темы уведомления.
- comment_moderation_headers: Фильтр для изменения заголовков уведомления.
Пример 1: Изменение стандартной функции
Вы можете создать плагин для переопределения стандартной функции wp_notify_moderator(). Например:
<?php
/*
Plugin Name: Замена базовой функции wp_notify_moderator()
*/
if ( !function_exists('wp_notify_moderator') ) {
    function wp_notify_moderator($comment_id) {
        // Здесь можно изменить поведение функции по своему усмотрению.
        // Например, можно скопировать базовый код функции и изменить его.
        
        // Получаем информацию о комментарии
        $comment = get_comment( $comment_id );
        
        // Пример измененного кода уведомления
        $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
        $subject = sprintf('[%s] Новый комментарий на сайте', $blogname);
        $message = sprintf('Комментарий от %s: %s', $comment->comment_author, $comment->comment_content);
        
        // Отправляем уведомление
        wp_mail( get_option('admin_email'), $subject, $message );
        
        return true;
    }
}
?>
Пример 2: Уведомление модератора.
Предположим, вы хотите настроить уведомления модератору для новых комментариев на вашем сайте. Вот пример кода, который демонстрирует, как это сделать в функции, которая вызывается при добавлении нового комментария:
function notify_moderator_on_new_comment( $comment_id ) {
    // Получаем объект комментария по ID
    $comment = get_comment( $comment_id );
    
    // Проверяем, что комментарий требует модерации
    if ( '1' === $comment->comment_approved ) {
        // Отправляем уведомление модератору
        wp_notify_moderator( $comment_id );
    }
}
add_action( 'comment_post', 'notify_moderator_on_new_comment' );
В этом примере функция notify_moderator_on_new_comment проверяет, что комментарий требует модерации, и если это так, отправляет уведомление модератору с помощью wp_notify_moderator().
Заключение
Функция wp_notify_moderator() позволяет управлять модерацией комментариев более эффективно. Используя эту функцию, можно настроить автоматические уведомления для модераторов, что упрощает процесс управления комментариями на сайте.
