Подскажите, есть ли готовое решение для оповещения исполнителей о новом задании? Планируется отправлять до 100 исполнителям на одно задание по одной категории.
Например, поступил заказ по электрике. Необходимо моментально или в течении 5 минут сделать рассылку писем на почту по категории электриков. Мастеров будет от 5 до 100 пользователей на одну категорию. Биржа на данный момент будет работать по одному городу и пользователей не будет так много.
Хотелось бы, чтобы рассылка велась через мой сайт, без каких-либо сервисов рассылки. Возможна отправка через сервисы, если там бесплатный лимит на письма или подписчиков.
Подскажите какие-либо решения. Платные и бесплатные. Возможно можно как то доработать или написать дополнение для этой функции. Рассмотрю любые варианты.
Требуемый вам функционал вызывает много вопросов.
Первый - а каким образом пользователи будут прикрепляться к категории заданий? Тогда пользователи должны тоже делиться на какие то категории.
Затем - а каким именно пользователям должны отправляться эти письма, жесткого деления на исполнителей и мастеров в системе нет.
В третьих, вам разве не потребуется возможность хоть какого то управления подписками? Все ваши письма рано или поздно полетят в спам, если выясниться, что пользователи не давали прямого согласия на отправку писем или в ваших письмах нет ссылки на отписку от рассылки, письма не будут иметь уникальную подпись и шифрование, т.е. не будет настроен SMTP на сервере.
На мой взгляд первый и второй пункт лишние. Пользователь должен просто иметь возможность подписаться на то, что ему требуется и отписаться когда потребуется.
По хорошему, для организации такого функционала надо привлекать специалиста, но можно попробовать решить своими силами.
В первую очередь, я бы обратил внимание на уже готовые плагины под эту задачу, в репозитории wordpress их большое количество, например, вот что выводится по запросу 'newsletter'
Можно попробовать поискать по другим релевантным запросам.
Можно также рассмотреть предлагаемые небольшие скрипты для рассылки писем при публикации записей какого либо типа на других сайтах, эти скрипты при желании можно доработать под свою задачу взяв за основу, например
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');
Также можно обратить внимание на рассылку другого вида - push-уведомления, под эту задачу также есть плагины и различные сервисы.
Вопрос организации рассылок сложный, каждый решает его по разному и под конкретную задачу, например, для организации рассылки на этом сервисе был написан свой функционал, это было сделано давно, но я до сих пор не могу распространять его как готовое решение, это большая ответственность и слишком много нюансов в этом вопросе.
1) Подписывается он выбрав один из типа аккаунта
Можно сделать выбор несколько подписок, например, сантехник и электрик. Вместо Заказчик, можно сделать Не выбрано.
Когда пользователь оставляет заявку, выбирает тему задания
По этой теме и делается рассылка.
2) Мастер и исполнитель в моей понимании это одно лицо.
3) Когда мне (администратору) приходит письмо о регистрации нового пользователя и о новом задании, то внизу письма есть кнопка Отписаться от рассылки. Они подписываются, указывая тип аккаунта. В каждом письме внизу текста, можно отправлять сообщение о том, как перестать получать оповещения. Для этого просто установить тип аккаунта на Не выбрано или нажать на кнопку снизу Отписаться. У меня на сайте настроена почта для бизнеса от Маил.ру
Это можно решить также отправкой сообщения в чат от Автобота. Например, исполнитель является электриком, приходит заявка на электрику. Автобот делает рассылку сообщений по электрикам со ссылкой на задание, а электрики получают на почту оповещение о том, что им написали в чате. В письме выводить полный текст от Автобота, чтобы электрики могли попасть на задание с письма.
Можно ли это как то решить за доп плату?
Когда мне (администратору) приходит письмо о регистрации нового пользователя и о новом задании, то внизу письма есть кнопка Отписаться от рассылки
вордпресс не выводит в письме о регистрации ссылку "Отписаться от рассылки"
- не вводите в заблуждение.
Дружаев Владимир (Otshelnik-Fm) сказал(а)
Когда мне (администратору) приходит письмо о регистрации нового пользователя и о новом задании, то внизу письма есть кнопка Отписаться от рассылки
вордпресс не выводит в письме о регистрации ссылку "Отписаться от рассылки"
Вы не можете просматривать опубликованные ссылки- не вводите в заблуждение.
У меня всё отображается по отписке. Поэтому и написал.
Пробуйте этот код разместить в файле functions.php вашей темы
add_action('update_post_rcl', 'fng_send_notification_mails', 10, 3); function fng_send_notification_mails($post_id, $postdata, $update) { if($postdata['post_type'] != 'task' || $update) return false; //получаем темы задания $term_list = wp_get_post_terms( $post_id, 'task-subject' ); if(!$term_list) return false; foreach($term_list as $term){ //получаем исполнителей по конкретной теме $users = get_users( array( 'meta_query'=> array( array( 'key' => 'fng-specialization', 'value' => $term->name ) ) ) ); if(!$users) continue; foreach($users as $user){ //тема $subject = "На сайте " . get_bloginfo('name'). " новое задание!"; //сообщение $message = "Для того, чтобы прочитать задание, перейдите по ссылке <a href='" . get_permalink($post_id) . "'>" . get_permalink($post_id) . "</a>"; //отправляем письмо исполнителю rcl_mail($user->user_email, $subject, $message ); } } }
он будет срабатывать после публикации нового задания через форму публикации во фронтенде, текст письма можете изменить под себя.
Дружаев Владимир (Otshelnik-Fm) сказал(а)
Vladimir сказал(а)
У меня всё отображается по отписке.Оффтопэту надпись добавляет ваш почтовый клиент. В рассылке вордпресс нет возможности отписаться админу от своего же сайта.
Да, все верно. Отписка не возможна. Нажав на кнопку, она пропадает, но позже сообщения также приходят.
Андрей CS сказал(а)
Пробуйте этот код разместить в файле functions.php вашей темы
add_action('update_post_rcl', 'fng_send_notification_mails', 10, 3); function fng_send_notification_mails($post_id, $postdata, $update) { if($postdata['post_type'] != 'task' || $update) return false; //получаем темы задания $term_list = wp_get_post_terms( $post_id, 'task-subject' ); if(!$term_list) return false; foreach($term_list as $term){ //получаем исполнителей по конкретной теме $users = get_users( array( 'meta_query'=> array( array( 'key' => 'fng-specialization', 'value' => $term->name ) ) ) ); if(!$users) continue; foreach($users as $user){ //тема $subject = "На сайте " . get_bloginfo('name'). " новое задание!"; //сообщение $message = "Для того, чтобы прочитать задание, перейдите по ссылке <a href='" . get_permalink($post_id) . "'>" . get_permalink($post_id) . "</a>"; //отправляем письмо исполнителю rcl_mail($user->user_email, $subject, $message ); } } }
он будет срабатывать после публикации нового задания через форму публикации во фронтенде, текст письма можете изменить под себя.
К сожалению, не работает. Администратору сразу приходит оповещение, что пользователь добавил публикацию, а исполнителям так и не пришло оповещение. Создавал задание сантехникам. У меня 2 тестовых аккаунта на маил ру и яндекс почте