Автоматические email-уведомления о новых постах для зарегистрированных пользователей блога WordPress

Довольно удобный способ уведомления пользователей на почту о новых статьях без необходимости подключать какой-либо сервис типо feedburner или smartresponder.

Достаточно лишь того, что пользователь зарегистрирован у вас на блоге.

Никаких дополнительных плагинов не потребуется, достаточно вставить следующий код в functions.php:

function true_send_notification_mails($post_ID)  {
	$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++) {
		$user_emails[] = $users[$i]->user_email;
	} // endfor
	$user_emails = implode(",", $user_emails); // список емаилов через запятую
 
	$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') ." <no-reply@". ltrim(site_url(),'http://') .">\r\n"; // от
 
	mail($user_emails, $subject, $message, $headers );
	return $post_ID;
}
 
add_action('publish_post', 'true_send_notification_mails');

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

$message = get_the_content($post_ID);

По поводу картинок и прочего HTML из статьи не беспокойтесь — в письме это всё отобразится, но только без внешних CSS-стилей.

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Комментарии — 23

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.

Миша Рудрастых и WordPress

Полезности из мира WordPress и жизни студии.

Мой телеграм-канал