levmakarov29 18.01.2023 23:08

Как настроить автоматическую генерацию и отправку уведомлений о новых комментариях в Wordpress?

Добрый день! У меня есть небольшая проблема с настройкой автоматической генерации и отправки уведомлений о новых комментариях в WordPress. Я хотел бы, чтобы каждый раз, когда кто-то оставляет комментарий на моем сайте, я получал уведомление на почту об этом. Я уже просмотрел документацию WordPress и попытался найти решение для этого, но безуспешно. Я был бы благодарен, если кто-то мог бы помочь мне с настройкой этой функции. Я понимаю, что для этого, вероятно, потребуется некоторый код. Вот пример кода, который я пытался использовать, но что-то пошло не так:

function notify_admin_on_comment( $comment_ID, $comment_approved ) {
    if ( 1 === $comment_approved ) {
        $comment = get_comment( $comment_ID );
        $post_title = get_the_title( $comment->comment_post_ID );
        $post_url = get_permalink( $comment->comment_post_ID );
        $author_name = $comment->comment_author;
        $author_email = $comment->comment_author_email;
        
        $to = 'admin@example.com';
        $subject = 'New comment on post: ' . $post_title;
        $message = 'A new comment has been posted on the post "' . $post_title . '" by ' . $author_name . 'n';
        $message .= 'You can view the comment at: ' . $post_url . '#comment-' . $comment_ID;
        
        wp_mail( $to, $subject, $message );
    }
}
add_action( 'comment_post', 'notify_admin_on_comment', 10, 2 );
Я не уверен, в чем именно ошибка, и как правильно настроить эту функцию. Буду очень признателен, если кто-то сможет помочь мне разобраться и решить эту проблему. Заранее спасибо!

Ответы:

Anton1980 18.01.2023 23:32
Для настройки автоматической генерации и отправки уведомлений о новых комментариях в WordPress, вам понадобится добавить и настроить некоторый код в вашу тему WordPress. Однако, в коде, который вы предоставили, я заметил некоторые проблемы, которые могут вызывать ошибки. Давайте вместе разберемся с этими проблемами и я расскажу вам, как правильно настроить эту функцию. 1. Во-первых, убедитесь, что вы используете код в правильном месте. Лучше всего добавить этот код в файл functions.php вашей темы WordPress. Вы можете найти этот файл в папке вашей темы, обычно расположенной по пути wp-content/themes/название_вашей_темы/functions.php. 2. В коде, который вы предоставили, есть несколько опечаток. Проверьте следующие строки кода: - `$comment = get_comment( $comment_ID );` - убедитесь, что используете правильное имя переменной `$comment_id`, а не `$comment_ID`. - `$post_title = get_the_title( $comment->comment_post_ID );` - убедитесь, что используете стрелку `->` вместо `>` для доступа к свойствам объекта. - `$message .= 'You can view the comment at: ' . $post_url . '#comment-' . $comment_ID;` - убедитесь, что используете точку `.` для конкатенации строк. 3. Убедитесь, что добавили правильный email адрес в переменную `$to`. Вместо `'admin@example.com'` укажите свой собственный email адрес, на который вы хотите получать уведомления о новых комментариях. 4. Проверьте настройки вашей почты в WordPress. Убедитесь, что ваша учетная запись почты настроена правильно. Вам может понадобиться использовать плагин SMTP, чтобы гарантировать надежную доставку сообщений. Вот исправленный код, который вы можете использовать:

function notify_admin_on_comment( $comment_id, $comment_approved ) {
    if ( 1 === $comment_approved ) {
        $comment = get_comment( $comment_id );
        $post_title = get_the_title( $comment->comment_post_ID );
        $post_url = get_permalink( $comment->comment_post_ID );
        $author_name = $comment->comment_author;
        $author_email = $comment->comment_author_email;
        
        $to = 'your-email@example.com'; // Замените на свой email адрес
        $subject = 'Новый комментарий на посте: ' . $post_title;
        $message = 'На пост "' . $post_title . '" был оставлен новый комментарий от ' . $author_name . 'n';
        $message .= 'Вы можете просмотреть комментарий по ссылке: ' . $post_url . '#comment-' . $comment_id;
        
        wp_mail( $to, $subject, $message );
    }
}
add_action( 'comment_post', 'notify_admin_on_comment', 10, 2 );
После внесения всех необходимых изменений, сохраните файл functions.php и перезагрузите свой сайт WordPress. Теперь вы должны получать уведомления на указанный email адрес при добавлении новых комментариев на вашем сайте. Если у вас остались какие-либо вопросы, пожалуйста, не стесняйтесь задавать. Удачи!

Добавить ответ