Как автоматически извещать авторов, что их пост опубликован

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

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

Для этого откройте файл functions.php и добавьте в него следующий код:

function wpr_authorNotification($post_id) {
   global $wpdb;
   $post = get_post($post_id);
   $author = get_userdata($post->post_author);

   $message = "
      Приветствую, ".$author->display_name.",
      Ваш пост, ".$post->post_title." опубликован.
   ";
   wp_mail($author->user_email, "Ваш пост опубликован", $message);
}
add_action('publish_post', 'authorNotification');

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

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. denseven

    Приветствую!
    Подскажите, как в это сообщение добавить: пост опубликован в рубрике такой-то.
    И еще можно ли добавить список последних 5 записей.
    Спасибо.

    Ответить
    1. Ruslan

      У объекта $post наверняка есть рубрика.
      Ага, точно, вот ссылка: http://codex.wordpress.org/Function_Reference/get_post
      По аналогии думаю понятно, как получить категорию.
      А из категории можно вытянуть посты.

      Ответить
  2. denseven

    Приветствую всех!

    Подумал на досуге, а почему бы не сделать такую функцию:
    1) автоматическое извещение автора статьи о том, что его пост успешно добавлен (отредактирован) и ожидает проверки модератором;
    2) далее, если одобрен, то письмо автору со ссылкой на страницу его статьи; если наоборот, запись удалена, по разным причинам, то также письмо автору.
    3) например, статья написана хорошо, лаконично, но с ошибками и удалять ее не поднимается рука, модератор отправляет ее в «черновик», после чего автор статьи получает письмо, с просьбой отредактировать/поправить свою статью. После редактирования статьи автором уже пойдет алгоритм из пункта 1.

    Можно ли такое осуществить? Спасибо!

    Ответить
    1. Ruslan

      Если еще актуально, то можно попробовать добавить такую строчку:

      add_action('wp_trash_post ', 'authorNotification');

      И тогда при отправке поста в корзину будет вызвана функция authorNotification.

      Кстати тут походу опечатка в посте, должно быть

      function authorNotification($post_id) {

      Список всех действий, на которые можно повестить вызов функции доступен здесь: http://codex.wordpress.org/Plugin_API/Action_Reference

      Ответить
  3. Ruslan

    Кстати неплохо было бы анализировать роль пользователя, хозяина поста и статус поста.

    Ответить