Столкнулся с проблемой: не приходил пароль на почту клиента при регистрации на сайте стоит: WordPress 6+ и WooCommerce 6+
Поиск решения занял более часа. Кликанье по галочкам в настройках «Аккаунты и приватность» плагина WooCommerce 6+ НЕ ДАЛО результата. (((
Почта может не уходить по разным причинам, таким как: запрещено хостингом; несуществующий отправитель; сервера в черных списках; не настроены или настроены неправильно SPF, DMARC, DKIM и т.д. и т.п.
Проверил вначале восстановление пароля, из Личного кабинета клиента — НЕ РАБОТАЕТ! Проверил из кабинета админа сайта — РАБОТАЕТ!
Значит где то собака зарыта в ПЕРВОЙ регистрации. Поиск дал результат: Замена кода в коде файла Вашсайт/wp-content/plugins/woocommerce/templates/emails/customer-new-account.php
Дело в том, что с версии WooCommerce 6+ удалено из кода оповещение клиента о созданном автоматического пароля, интересно и как теперь узнать о новом сгенерированном пароле? Кто знает подскажите в комментах! Подсказку нашел здесь translated.turbopages.org/proxy_u/en-ru.ru
Анализ кода файла customer-new-account.php:
Старый код версии «6-«:
‘ . esc_html( $user_login ) . », make_clickable( esc_url( wc_get_page_permalink( ‘myaccount’ ) ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
‘ . esc_html( $user_pass ) . » ); ?>
<?php
/**
- Show user-defined additional content — this is set in each email’s settings.
*/
if ( $additional_content ) {
echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
}
do_action( ‘woocommerce_email_footer’, $email );
Новый код версии «6+»:
‘ . esc_html( $user_login ) . », make_clickable( esc_url( wc_get_page_permalink( ‘myaccount’ ) ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
<?php
/**
- Show user-defined additional content — this is set in each email’s settings.
*/
if ( $additional_content ) {
echo wp_kses_post( wpautop( wptexturize( $additional_content ) ) );
}
do_action( ‘woocommerce_email_footer’, $email );
Скопировал старый файл на сайт с переводом фразы «Your password has been automatically generated» на фразу «Для вас сгенерирован пароль ( рекомендуем его сразу сменить):» — ЗАРАБОТАЛО! Новый пароль стал приходить на почту в виде:
Далее обнаружил, что не на все почтовые сервисы приходят оповещения с сайта! Например нет уведомления на почту вида ivanov@mail.ru . Оказывается подобное было и ранее почти всегда в WordPress! Необходимо поставить плагин с настройками SMTP, например такой Easy WP SMTP — WordPress Email SMTP Plugin или SMTP Email или Gmail SMTP. У меня почта на Яндексе ( с нее заходу в Веб мастер Яндекса), поэтому поставил плагин Yandex Mail SMTP в некоторых случаях лучше использовать Post SMTP.
Проверяем регистрацией нового пользователя на почту 89150970797@mail.ru — сюда можно присылать ваши вопросы!
Проблема регистрации и оповещения клиентов с почтой MAIL.RU осталась — вообще письма не уходят с сайта! …. решаю, кто уже решил? Поделитесь!
10-11-2023 Решение пришло с использованием плагина Post SMTP