@Alexkld
Онлайн маркетолог

Уведомления пользователей на email о новых постах Wordpress?

Здравствуйте. Подскажите, через какой плагин можно включить уведомление пользователей (зарегистрированных) на email, о размещении нового поста на сайте вордпресс?

PS. Сейчас используется такой код в function.php

function true_send_notification_mails($post_ID)  {
	$subject = "блаблабла" . get_bloginfo('name'); // тема
	$message = "блаблабла <a href='" . get_permalink($post_ID) . "'>" . get_permalink($post_ID) . "</a>"; // сообщение
	$headers = "Content-type: text/html; charset=utf-8 \r\n"; // кодировка

	$headers .= "From: ". get_bloginfo('name') ." <бла@блаточкаком". ltrim(site_url(),'блаточкаком') .">\r\n"; // от
 
	$wp_user_search = new WP_User_Query( array( 'fields' => array('user_email') ) );
	$users = $wp_user_search->get_results();
	$user_emails = array();
	for ($i = 0; $i < count($users); $i++) {
		mail($users[$i]->user_email, $subject, $message, $headers );
	} // endfor
 
	return $post_ID;
}
 
add_action('publish_post', 'true_send_notification_mails');


Но его проблема в том (хотя работает уведомление и без плагина) - что почему то по 2 раза присылает на почту одинаковое сообщение о новом посте.
  • Вопрос задан
  • 194 просмотра
Решения вопроса 1
cesnokov
@cesnokov
<head>&nbsp;</head>
Одинаковые сообщения приходят потому, что хук publish_post срабатывает несколько раз, так как пост при сохранении меняет несколько состояний "новый" > "драфт" > "опубликованный". Есть несколько способов как это решить:
  • Привязка действия не к publish_post, а на пример к transition_post_status;
  • Создать поле (post_meta) и записывать в него состояния отправки писем (mail_sent=TRUE);
  • Или поставить плугин которых множество, ключевое слово для поиска: email notification
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы