Публикация в группе: Полезное для WordPress

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

add_action( 'save_post', 'send_mail_all_users');

function send_mail_all_users($post_id) {

 $args = array(
               'role' => '', //Если необходимо отправлять писима пользователям с определёнными ролями например подписчикам 'subscriber'.
			   'exclude' => '', //Указываем ID вользователей котором не будем отправлять сообщения. Например array(1,10,23).
			   'orderby'      => 'login', //Сортировать по: ('ID', 'login', 'nicename', 'email', 'url', 'registered', 'display_name', или 'post_count').
	           'order'        => 'ASC', //По возрастанию/убыванию. Значения ASC или DESC .
              );

 $users = get_users($args);

 if ( ! wp_is_post_revision( $post_id ) ) return;

	$post_title = get_the_title( $post_id );
	$post_url = get_permalink( $post_id );
	$subject = 'Запись обновлена';

	$message = "Мы обновили запись:" . PHP_EOL;
	$message .= "" . $post_title . "" . PHP_EOL;

	foreach( $users as $user ) {
	 @wp_mail( $user->user_email, $subject, $message ); //Подставлям на всякий случай костыль к функции wp_mail()
	}
}

Это самый простой вариант, на мой взгляд. То как будет выглядеть само письмо уже зависит от вашей фантазии и знания програмирования =) Юзайте и улыбайтесь, ребятки 😉

2

Автор публикации

не в сети 2 года

Максим Мартиросов

91
Разрабатываю, модернизирую сайты и плагины для Wordpress. А так же дополнительные модули для Woocommerce
Комментарии: 13Публикации: 2Регистрация: 16-08-2013Продаж/Покупок: 0/0