Как сделать уведомления по емейл пользователей о новых записях в новом типе поста?
Всем привет!
Подскажите, пожалуйста, есть следующая задача:
Сделать по емейл раз в день (или при публикации новой записи) рассылку пользователям подписанным на категорию о новых записях.
У меня создан новый тип поста, в нем публикуются записи. Как мне уведомить пользователей о новых записях?
Может есть плагины для этого, которые работают не только с блогами, но и новыми типами постов?
Спасибо
Дополнительно:
Ответы:
если вы знаете плагин который работает с постами, его не сложно завести на работу с кастом пост тайпом
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Уведомлять пользователей о новых записях в custom post type можно, но сначала нужно определить модель подписки: пользователь подписан на рубрику/термин, на автора, на весь CPT или на конкретную тему. От этого зависит структура хранения подписок.
Если нужно “раз в день прислать новые записи по категориям”, лучше делать дайджест через cron, а не отправлять письмо при каждой публикации. Так меньше риск попасть в спам и не будет сотен писем при массовой публикации.
Схема:
Пример выборки новых записей CPT:
$posts = get_posts([ 'post_type' => 'my_cpt', 'post_status' => 'publish', 'date_query' => [ [ 'after' => '1 day ago', ], ], 'posts_per_page' => 50, ]);
Отправка письма:
wp_mail( $user_email, 'Новые материалы за день', $message, ['Content-Type: text/html; charset=UTF-8'] );
Если хотите отправлять сразу при публикации, используйте hook
transition_post_status, чтобы не слать письмо при каждом обновлении:add_action('transition_post_status', function ($new, $old, $post) { if ($post->post_type !== 'my_cpt') { return; } if ($new === 'publish' && $old !== 'publish') { // отправить уведомления } }, 10, 3);
Для продакшена важно: отправлять через SMTP/почтовый сервис, добавить отписку, не слать письма без согласия, логировать отправки и не запускать массовую рассылку в обычном веб-запросе. Для больших объёмов лучше очередь: Action Scheduler, WP Background Processing или внешний сервис.
Если нужен готовый путь, посмотрите плагины подписок/уведомлений, но кастомная логика по CPT и категориям часто всё равно требует доработки.