Тонкая настройка E-mail оповещения о комментариях в WordPress

Доброго времени суток, друзья и товарищи.
Данная тема будет всецело посвящена комментариям, в частности оповещениям о них на электронную почту.
Содержание:
- Почему дублируются E-mail оповещения о комментариях в WordPress?
- Как отключить дублирование оповещений на E-mail о комментариях
- Как полностью отключить оповещения на E-Mail об оставленных комментариях
- Задать отправку оповещений на совершенно сторонний E-mail адрес
- Краткий итог
Почему дублируются E-mail оповещения о комментариях в WordPress?
Дабы понять причину, стоит немного углубиться в принципы, которым руководствуется движок WordPress. Если мы зайдём в Настройки –> Общие, то увидим там вписанный электронный адрес, который используется в целях администрирования.
На этот адрес отправляется всё, что связанно с работой сайта, включая оповещения о новых оставленных комментариях. Данный адрес принадлежит создателю сайта.
Однако роль «Создатель сайта» присвоить участнику нельзя, потому вы закономерно зарегистрировались в качестве администратора.
И если вы размещаете посты со своей учётной записи администратора, то на вписанный в ваш профиль (Пользователи -> Ваш профиль) электронный адрес приходят все оповещения об оставленных комментариях.
В конечном итоге мы имеем следующее: оповещения приходят на электронный адрес, что вписан в вашем личном профиле, а также на адрес, который используется в целях администрирования.
Вот мы и выяснили причины дублирования E-mail оповещений о комментариях.
Как отключить дублирование оповещений на E-mail о комментариях
Самое простое – установить единый электронный адрес. Однако в целях безопасности так делать не рекомендуется. Мы пойдём другим путём.
Отключаем оповещения о оставленных комментариях автору материала
Для отключения отправки оповещений о комментариях на электронный адрес пользователя, который является автором размещённого материала, необходимо сделать следующее:
В файле functions.php используемой вами темы вписать этот небольшой код.
function comment_notification( $emails, $comment_id ) { $emails = array( get_option( 'admin_email' ) ); return $emails; } add_filter( 'comment_moderation_recipients', 'comment_notification', 11, 2 ); add_filter( 'comment_notification_recipients', 'comment_notification', 11, 2 );
После того, как вы его впишите, оповещения о составленных комментариях к материалам будут приходить только на адрес создателя сайта.
Отключаем оповещения о оставленных комментариях создателю сайта
Случается, что возникает и обратная ситуация. Необходимо отправлять оповещение исключительно автору, который этот самый пост разместил, не беспокоя при этом «лишним» оповещением создателя сайта.
Сделать это не менее сложно, чем и в предыдущем варианте. Просто разместите данный код в файле functions.php темы, что используется на вашем WordPress сайте.
function comment_notification( $emails, $comment_id ) { $comment = get_comment( $comment_id ); $post = get_post( $comment->comment_post_ID ); $user = get_user_by( 'id', $post->post_author ); if ( user_can( $user->ID, 'edit_published_posts' ) && ! empty( $user->user_email ) ) { $emails = array( $user->user_email ); } return $emails; } add_filter( 'comment_moderation_recipients', 'comment_notification', 11, 2 ); add_filter( 'comment_notification_recipients', 'comment_notification', 11, 2 );
Теперь оповещения о комментариях будут приходить на почту только автору поста, не беспокоя электронный ящик создателя сайта.
Как полностью отключить оповещения на E-Mail об оставленных комментариях
Если же вы и вовсе желаете отключить отправку оповещений как создателю сайта, так автору поста, то для этого используется следующий код.
function comment_notification( $emails, $comment_id ) { $emails = array(); return $emails; } add_filter( 'comment_moderation_recipients', 'comment_notification', 11, 2 ); add_filter( 'comment_notification_recipients', 'comment_notification', 11, 2 );
Всё. Более E-mail сообщения о комментариях никого не побеспокоят.
Задать отправку оповещений на совершенно сторонний E-mail адрес
Существует также возможность указать отдельный электронный ящик, на который будут приходить оповещения обо всех оставленных комментариях к материалам на сайте.
За данный функционал отвечает приведённый ниже код, только не забудьте изменить электронный адрес sample@mail.ru на свой.
function comment_notification( $emails, $comment_id ) { $emails = array( 'sample@mail.ru' ); return $emails; } add_filter( 'comment_moderation_recipients', 'comment_notification', 11, 2 ); add_filter( 'comment_notification_recipients', 'comment_notification', 11, 2 );
Вписав данный код с адресом, все оповещения будут приходить именно на него, электронные ящик автора поста и администратора не будут подвергаться беспокойству.
Краткий итог
Теперь вы знаете, почему возникает дублирование оповещений о комментариях, и как можно тонко настроить оповещения об оставленных\требующих одобрения комментариях в движке Вордпресс.
А у меня на этом всё. Ежели остались вопросы, то стоит их изложить в комментариях к материалу.