Почему не работает wp_new_user_notification?

Ссылка скопирована
1 ответ

Все началось с того, что у меня не уходят письма о новых регистрациях на админский ящик. Начал издеваться над функцией wp_new_user_notification, путем тупой вставки адреса куда слать письмо, удаление проверок и тд. Ничего не приводило к каким либо изменения. Дошло до того что я тупо вырезал функцию, а почта всеравно ушла как и раньше. В гугле прочитал? что может помочь настройка smtp. Установил плагин WP Mail SMTP и попробовал настроить отправку писем через гугл, яндекс и хостинг(ionos). Ничего из этого не сработало, коректность введенных данных проверял тысячу раз.

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

Дополнительные вопросы

Уже ж рассказывал .

Ответы на вопрос 0

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Сергей Миронов Ответ

Если вы меняете wp_new_user_notification, а письма всё равно уходят «как раньше», значит вы редактируете не тот участок или вашу функцию вообще не использует текущий процесс. В WordPress письма о регистрации могут отправлять ядро, тема, плагин регистрации, WooCommerce, membership-плагин, SMTP-плагин или кастомный код.

Первое правило: не правьте core-функцию напрямую. Её нужно переопределять через pluggable-механизм или отключать конкретные hooks, но сначала нужно понять источник письма.

Проверьте так:

  1. Поставьте логирование всех вызовов wp_mail.
  2. Посмотрите тему письма, получателя, headers и стек вызовов.
  3. Отключите по очереди плагины регистрации/профилей на копии сайта.
  4. Проверьте, не используется ли WooCommerce email notification.

Минимальный лог для диагностики:

add_filter('wp_mail', function ($args) {
    error_log('WP_MAIL_TO: ' . print_r($args['to'], true));
    error_log('WP_MAIL_SUBJECT: ' . $args['subject']);
    error_log(wp_debug_backtrace_summary());
    return $args;
});

add_filter('wp_mail', function ($args) { error_log('WP_MAIL_TO: ' . print_r($args['to'], true)); error_log('WP_MAIL_SUBJECT: ' . $args['subject']); error_log(wp_debug_backtrace_summary()); return $args; });

После регистрации нового пользователя откройте wp-content/debug.log. В backtrace будет видно, кто вызвал отправку письма. Это быстрее, чем наугад менять функции.

Если нужно отключить стандартное уведомление администратору о новом пользователе, в новых версиях WordPress можно использовать фильтр:

add_filter('wp_send_new_user_notification_to_admin', '__return_false');

add_filter('wp_send_new_user_notification_to_admin', '__return_false');

Если нужно отключить письмо пользователю:

add_filter('wp_send_new_user_notification_to_user', '__return_false');

add_filter('wp_send_new_user_notification_to_user', '__return_false');

SMTP здесь решает только доставку письма, но не источник его отправки. Если письмо создаётся другим плагином, настройка SMTP не отменит его.

Вывод: сначала найдите источник через лог wp_mail. После этого станет понятно, отключать ли стандартный фильтр WordPress, email WooCommerce, hook плагина регистрации или кастомный код темы.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно