Дек
23
6

Email уведомления в WordPress при публикации/отклонении постов

Продолжаю тему «обратной связи» с авторами в WordPress блогах. В прошлом посте мы рассмотрели возможность отправки  Email сообщений из админки системы одному или нескольким авторам. Сегодня хочу представить вам еще один полезный хак — уведомления при публикации/отклонении постов, что автоматически приходят авторам на еmail.

После того как пользователь дописал свой пост, он отправляет его на проверку редактору. Тот просматривает статью, а затем публикует ее или отклоняет. Иногда нет возможности сразу просматривать посты в блоге, и процесс модерации затягивается на несколько дней. При этом некоторые авторы достаточно активно проверяют не появилась ли публикация. Если ничего не происходит, то они либо пишут письмо в редакцию через страницу контактов либо просто «забивают на это». Второе — совсем уж нехорошо, так как вряд ли этот автор продолжит написание статей для вашего сайта.

Дабы «облагородить» процесс проверки/публикации статей предлагаю добавить специальные уведомления на еmail авторам. Вот здесь найден отличный скрипт.

function authorNotification($post_id) {
   $post = get_post($post_id);
   $author = get_userdata($post->post_author);
 
   $message = "
      Hi ".$author->display_name.",
      Your post, ".$post->post_title." has just been published at ".get_permalink( $post_id ).". Well done!
   ";
   wp_mail($author->user_email, "Your article is online", $message);
}
add_action('publish_post', 'authorNotification');

Для реализации используется WordPress хук, который запускается сразу после публикации поста в блог. Добавить данный код нужно в файл functions.php. После того как все настроили, протестируйте правильность работы данного хака. Кроме того, следует заменить текст сообщения, что приходит в письме. За него отвечает переменная — $message. После публикации заметки автору придет письмо с темой «Your article is online». Текст письма следующий:

Hi имя_пользователя,
Your post, Название_статьи has just been published at ссылка_поста. Well done!

Здесь, параметры имя_пользователя, название_статьи и ссылка_поста заменяются соответствующими значениями.

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

function res_fromemail($email) {
$wpfrom = "no-reply@yourwebsite.com";
return $wpfrom;
}
 
function res_fromname($email){
$wpfrom = "Your Website";
return $wpfrom;
}
 
add_filter('wp_mail_from', 'res_fromemail');
add_filter('wp_mail_from_name', 'res_fromname');
 
/* PUBLISHED */
 
function authorNotification($post_id) {
global $wpdb;
$post = get_post($post_id);
$link = $post->guid;
$author = get_userdata($post->post_author);
$message = "
Hi ".$author->display_name.",
 
Well done! Your post, ".$post->post_title." has been reviewed and just been published. View here ".$link."
";
wp_mail($author->user_email, "Your article status", $message);
}
add_action('publish_post', 'authorNotification');
/* REJECTED */
 
function authorNotification2($post_id) {
global $wpdb;
$post = get_post($post_id);
$author = get_userdata($post->post_author);
$message = "
Hi ".$author->display_name.",
We are sorry to inform you that your article, ".$post->post_title." has been declined. Feel free to contact us via phone or email to find out more information on why.
";
wp_mail($author->user_email, "Your article status", $message);
}
add_action('trash_post', 'authorNotification2');

Здесь опять же нужно заменить все параметры на свои, например, вместо no-reply@yourwebsite.com и Your Website подставить почту и название вашего проекта. Также подправьте тексты с уведомлениями, параметр тот же — $message. Если вам сложно понять что за текст в коде нужно менять, потестируйте работу хака и посмотрите какие именно уведомления приходят на еmail при подтверждении/удалении поста.

Скрипт также проверил — рабочий. Вообще автоматизация реально рулит — вам не нужно тратить время на пояснения тому или иному автору почему статья не была опубликована. Или специально писать пользователям, что их творение наконец-то доступно по такой-то ссылке. Даже, если тексты на сайте вы проверяете ежедневно и публикуете их сразу, то отправка письма все равно пригодится. Это своего рода жест внимания, обратная связь с авторами, пусть и автоматическая.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 4, средний балл: 5,50 из 7)
Загрузка...

категория Категории: Хаки и секреты;
теги Теги: , , , , .

комментариев 6 к статье “Email уведомления в WordPress при публикации/отклонении постов”

  • Виталий   31.05.2016

    Добрый день!
    А можно ли как-то настроить оповещение о публикациях администратору, чтобы когда несколько авторов на сайте, только админу приходило сообщение, что на сайте была опубликована статья?
    Нужно для контроля авторов, чтобы никаких «лишних» публикаций не было.

  • Tod   01.06.2016

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

  • Александр Л.   18.06.2016

    Супер! Заработало! И главное — без плагинов! Ещё бы так о комментариях сообщать ))

  • Margar Hovhannisyan   10.07.2016

    Вот правилний код

    add_action(‘transition_post_status’, ‘authorNotification’, 10,3);
    function authorNotification($new_status, $old_status,$post_id) {
    if ( $new_status == ‘publish’ && $old_status != ‘publish’ ) {
    $post = get_post($post_id);
    $author = get_userdata($post->post_author);

    $message = »
    Здес будет писмо« «.$author->display_name.»,»;
    wp_mail($author->user_email, «Текст писма», $message);
    }
    }

    http://02blog.ru/wordpress-2/email-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-wordpress-%D0%B1%D0%B5%D0%B7-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0/

  • Артем   24.07.2018

    А как сделать тоже самое но не с обычными записями а с товарами woocommerce? например пользователь добавляет товар через форму во фронтенде а после того как админ меняет статус добавленного товара с «на одобрении» на «Одобрено» пользователю приходит сообщение

  • Tod   24.07.2018

    Артем, нужно поискать что-то среди плагинов, я к сожалению, не встречал подобного.

Оставить комментарий

(следующая статья)

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

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости