Как настроить автоматическую генерацию и отправку уведомлений о новых комментариях в Wordpress?
function notify_admin_on_comment( $comment_ID, $comment_approved ) {
if ( 1 === $comment_approved ) {
$comment = get_comment( $comment_ID );
$post_title = get_the_title( $comment->comment_post_ID );
$post_url = get_permalink( $comment->comment_post_ID );
$author_name = $comment->comment_author;
$author_email = $comment->comment_author_email;
$to = 'admin@example.com';
$subject = 'New comment on post: ' . $post_title;
$message = 'A new comment has been posted on the post "' . $post_title . '" by ' . $author_name . 'n';
$message .= 'You can view the comment at: ' . $post_url . '#comment-' . $comment_ID;
wp_mail( $to, $subject, $message );
}
}
add_action( 'comment_post', 'notify_admin_on_comment', 10, 2 );
Я не уверен, в чем именно ошибка, и как правильно настроить эту функцию. Буду очень признателен, если кто-то сможет помочь мне разобраться и решить эту проблему.
Заранее спасибо! Ответы:
Для настройки автоматической генерации и отправки уведомлений о новых комментариях в WordPress, вам понадобится добавить и настроить некоторый код в вашу тему WordPress.
Однако, в коде, который вы предоставили, я заметил некоторые проблемы, которые могут вызывать ошибки. Давайте вместе разберемся с этими проблемами и я расскажу вам, как правильно настроить эту функцию.
1. Во-первых, убедитесь, что вы используете код в правильном месте. Лучше всего добавить этот код в файл functions.php вашей темы WordPress. Вы можете найти этот файл в папке вашей темы, обычно расположенной по пути wp-content/themes/название_вашей_темы/functions.php.
2. В коде, который вы предоставили, есть несколько опечаток. Проверьте следующие строки кода:
- `$comment = get_comment( $comment_ID );` - убедитесь, что используете правильное имя переменной `$comment_id`, а не `$comment_ID`.
- `$post_title = get_the_title( $comment->comment_post_ID );` - убедитесь, что используете стрелку `->` вместо `>` для доступа к свойствам объекта.
- `$message .= 'You can view the comment at: ' . $post_url . '#comment-' . $comment_ID;` - убедитесь, что используете точку `.` для конкатенации строк.
3. Убедитесь, что добавили правильный email адрес в переменную `$to`. Вместо `'admin@example.com'` укажите свой собственный email адрес, на который вы хотите получать уведомления о новых комментариях.
4. Проверьте настройки вашей почты в WordPress. Убедитесь, что ваша учетная запись почты настроена правильно. Вам может понадобиться использовать плагин SMTP, чтобы гарантировать надежную доставку сообщений.
Вот исправленный код, который вы можете использовать:
function notify_admin_on_comment( $comment_id, $comment_approved ) {
if ( 1 === $comment_approved ) {
$comment = get_comment( $comment_id );
$post_title = get_the_title( $comment->comment_post_ID );
$post_url = get_permalink( $comment->comment_post_ID );
$author_name = $comment->comment_author;
$author_email = $comment->comment_author_email;
$to = 'your-email@example.com'; // Замените на свой email адрес
$subject = 'Новый комментарий на посте: ' . $post_title;
$message = 'На пост "' . $post_title . '" был оставлен новый комментарий от ' . $author_name . 'n';
$message .= 'Вы можете просмотреть комментарий по ссылке: ' . $post_url . '#comment-' . $comment_id;
wp_mail( $to, $subject, $message );
}
}
add_action( 'comment_post', 'notify_admin_on_comment', 10, 2 );
После внесения всех необходимых изменений, сохраните файл functions.php и перезагрузите свой сайт WordPress. Теперь вы должны получать уведомления на указанный email адрес при добавлении новых комментариев на вашем сайте.
Если у вас остались какие-либо вопросы, пожалуйста, не стесняйтесь задавать. Удачи!