Автоматические 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 rn"; // кодировка
    $headers .= "From: ". get_bloginfo('name') ." <no-reply@". ltrim(site_url(),'http://') .">rn"; // от
 
    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-стилей.

Источник: misha.blog

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

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

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

%d такие блоггеры, как: