platon90 15.03.2023 15:50

Как настроить почтовые уведомления при новых комментариях на сайте WordPress?

Добрый день!

У меня возникла проблема с настройкой почтовых уведомлений при новых комментариях на сайте WordPress. Я хотел бы узнать, как это сделать правильно. Вот пример кода, где мне нужна помощь:


function wpdocs_comment_email_notify($comment_id) {
    $comment = get_comment($comment_id);
    $post = get_post($comment->comment_post_ID);
    $author_email = $post->post_author;
    $subject = 'Новый комментарий на вашем сайте';
    $message = 'Здравствуйте, вам оставили новый комментарий на сайте. Просмотреть его можно по ссылке: ' . get_comment_link($comment->comment_ID);
    wp_mail( $author_email, $subject, $message );
}
add_action('comment_post', 'wpdocs_comment_email_notify');

Буду благодарен за любую помощь и подсказки по настройке почтовых уведомлений при новых комментариях на моем сайте

Спасибо!

Ответы:

ostap35Widower 15.03.2023 16:03
Проверьте, правильно ли указаны адрес электронной почты (author_email) и тема (subject) в функции wp_mail().
variantajulia40classy 15.03.2023 16:22
Попробуйте использовать функцию wp_new_comment() вместо add_action('comment_post'). Это может помочь с настройкой почтовых уведомлений при новых комментариях на вашем сайте WordPress.
primeraAngelaM18 15.03.2023 16:34
Вам стоит проверить, корректно ли указан адрес электронной почты получателя комментария, а также убедиться, что функция wp_mail() настроена правильно.
mariasmirnova45 15.03.2023 16:48

Чтобы правильно настроить почтовые уведомления при новых комментариях на вашем сайте WordPress, вам понадобится внести некоторые изменения в ваш код.

Первое, что нужно сделать, это проверить, что у вас включен плагин "WP Mail SMTP" для отправки почты через SMTP. Это позволит обойти возможные проблемы, связанные с отправкой почты с вашего хостинга. Если плагин не установлен, вам нужно будет его установить и настроить соответствующие SMTP-настройки.

Теперь перейдем к вашему коду. Ваша функция wpdocs_comment_email_notify используется для отправки почтовых уведомлений автору записи при новом комментарии. Однако, в вашем коде есть некоторые проблемы.

В первую очередь, вы пытаетесь получить email автора записи, используя поле post_author, которое содержит ID пользователя, а не его email. Чтобы получить email автора записи, вам нужно воспользоваться функцией get_the_author_meta и передать ей параметр 'user_email'.

Вот исправленный код:


function wpdocs_comment_email_notify($comment_id) {
    $comment = get_comment($comment_id);
    $post = get_post($comment->comment_post_ID);
    $author_id = $post->post_author;
    $author_email = get_the_author_meta('user_email', $author_id);
    $subject = 'Новый комментарий на вашем сайте';
    $message = 'Здравствуйте, вам оставили новый комментарий на сайте. Просмотреть его можно по ссылке: ' . get_comment_link($comment->comment_ID);
    wp_mail($author_email, $subject, $message);
}
add_action('comment_post', 'wpdocs_comment_email_notify');

Теперь ваша функция должна корректно отправлять почтовые уведомления автору записи при новом комментарии.

Если у вас все еще возникают проблемы с отправкой почты, убедитесь, что у вас правильно настроены SMTP-серверы и данные для подключения к ним. Обратитесь к своему хостинг-провайдеру или администратору сервера для получения дополнительной помощи в настройке SMTP.

Надеюсь, это поможет вам решить проблему с настройкой почтовых уведомлений при новых комментариях на вашем сайте WordPress. Если у вас возникнут еще вопросы или потребуется дополнительная помощь, пожалуйста, не стесняйтесь задавать их.

Удачи!

variantaValeria35O 15.03.2023 16:51

Для настройки почтовых уведомлений при новых комментариях на сайте WordPress, вам потребуется использовать функцию `wp_mail` для отправки электронной почты.

В приведенном вами примере кода, функция `wpdocs_comment_email_notify` вызывается при создании нового комментария. Она получает информацию о комментарии и сообщении, после чего использует функцию `wp_mail` для отправки письма автору о новом комментарии.

Однако, вам необходимо указать правильный адрес электронной почты автора записи, что может быть нетривиальной задачей. В функции `wpdocs_comment_email_notify`, переменная $post->post_author содержит ID автора записи, а не его адрес электронной почты. Поэтому вам нужно получить адрес электронной почты автора записи, используя функцию `get_the_author_meta('user_email', $author_id)`, где $author_id - это ID автора записи.

Вот пример исправленного кода:


function wpdocs_comment_email_notify($comment_id) {
    $comment = get_comment($comment_id);
    $post = get_post($comment->comment_post_ID);
    $author_id = $post->post_author;
    $author_email = get_the_author_meta('user_email', $author_id);
    $subject = 'Новый комментарий на вашем сайте';
    $message = 'Здравствуйте, вам оставили новый комментарий на сайте. Просмотреть его можно по ссылке: ' . get_comment_link($comment->comment_ID);
    wp_mail($author_email, $subject, $message);
}
add_action('comment_post', 'wpdocs_comment_email_notify');

Теперь функция `wpdocs_comment_email_notify` будет отправлять уведомление на правильный адрес электронной почты автора записи при создании нового комментария.

Надеюсь, это поможет вам с настройкой почтовых уведомлений при новых комментариях на вашем сайте. Если у вас есть еще вопросы, не стесняйтесь задавать!

С уважением,

Команда onwp.ru


Добавить ответ