Последнее обновлене - 23 апреля 2023 в 06:36
Из этой заметки вы узнаете, как можно сообщить комментатору об ответе на его комментарий на сайте, работающем на CMS WordPress, без использования плагина. Уведомление комментатора об ответе на сайте является важной функцией, которая может улучшить взаимодействие между посетителями и администраторами сайта. Если вы используете CMS WordPress, то есть несколько способов реализации данной функции без использования плагина.
Первый способ — использование встроенных функций WordPress. Для этого необходимо открыть файл functions.php вашей рабочей темы и добавить следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function comment_reply_notification($comment_id, $reply_id){ $comment = get_comment($comment_id); $author_email = $comment->comment_author_email; $reply = get_comment($reply_id); $author = get_userdata($reply->user_id); $message = 'Здравствуйте, '.$comment->comment_author.'!'. "\r\n\r\n"; $message .= 'На сайте '.get_option('blogname').' появился ответ на ваш комментарий:'. "\r\n\r\n"; $message .= 'Ответ от '.$author->display_name.':'. "\r\n\r\n"; $message .= $reply->comment_content. "\r\n\r\n"; $message .= 'Ссылка на комментарий: '.get_comment_link($comment_id). "\r\n\r\n"; wp_mail($author_email, 'Ответ на комментарий', $message); } add_action('wp_insert_comment','comment_reply_notification',10,2); |
Этот код добавляет действие, которое будет выполнено при добавлении нового комментария. Функция comment_reply_notification получает ID комментария и ID ответа на комментарий, затем формирует текст уведомления и отправляет его на e-mail автора комментария.
Второй способ — использование хука comment_post. Для этого необходимо открыть файл functions.php вашей темы и добавить следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
function comment_post_notification($comment_id){ $comment = get_comment($comment_id); $parent_id = $comment->comment_parent; if($parent_id != 0){ $parent_comment = get_comment($parent_id); $author_email = $parent_comment->comment_author_email; $author = get_userdata($comment->user_id); $message = 'Здравствуйте, '.$parent_comment->comment_author.'!'. "\r\n\r\n"; $message .= 'На сайте '.get_option('blogname').' появился ответ на ваш комментарий:'. "\r\n\r\n"; $message .= 'Ответ от '.$author->display_name.':'. "\r\n\r\n"; $message .= $comment->comment_content. "\r\n\r\n"; $message .= 'Ссылка на комментарий: '.get_comment_link($parent_id). "\r\n\r\n"; wp_mail($author_email, 'Ответ на комментарий', $message); } } add_action('comment_post','comment_post_notification',10,1); |
Этот код добавляет действие, которое будет выполнено при добавлении нового комментария. Функция comment_post_notification получает ID комментария, затем проверяет, является ли комментарий ответом на другой комментарий. Если да, то формирует текст уведомления и отправляет его на e-mail автора комментария.
Оба способа позволяют уведомлять комментаторов об ответах на сайте без использования плагина. Выбор способа зависит от ваших потребностей и удобства использования.
Раньше я пользовался для этой цели плагинами. Но со временем, они переставали обновляться, видимо разработчики теряли к ним интерес и прекращали поддержку. Теперь это можно легко реализовать при помощи небольшой корректировки файла functions.php.
Всем WEB!
Нормальное решение, у меня сработало на сайте. Оба варианта рабочие, воспользовался вторым способом.
Отлично, рад, что материал оказался полезен!
Что-то у меня перестал работать второй способ. Попробую первый.
попробуем исправить.
Почему-то перестали приходить любые уведомления с сайта. Даже письма о том, что поступил комментарий к посту.
Возможно, надо проверять настройки сервера.