Есть ли способ, чтобы Wordpress отправлял мне электронное письмо при публикации страницы или сообщения?
источник
Есть ли способ, чтобы Wordpress отправлял мне электронное письмо при публикации страницы или сообщения?
Есть несколько плагинов, которые обрабатывают уведомления по электронной почте , но все они, похоже, действуют как сервис подписки для (всех) пользователей WordPress.
Чтобы уведомить только вас об опубликовании поста или страницы:
/**
* Send an email notification to the administrator when a post is published.
*
* @param string $new_status
* @param string $old_status
* @param object $post
*/
function wpse_19040_notify_admin_on_publish( $new_status, $old_status, $post ) {
if ( $new_status !== 'publish' || $old_status === 'publish' )
return;
if ( ! $post_type = get_post_type_object( $post->post_type ) )
return;
// Recipient, in this case the administrator email
$emailto = get_option( 'admin_email' );
// Email subject, "New {post_type_label}"
$subject = 'New ' . $post_type->labels->singular_name;
// Email body
$message = 'View it: ' . get_permalink( $post->ID ) . "\nEdit it: " . get_edit_post_link( $post->ID );
wp_mail( $emailto, $subject, $message );
}
add_action( 'transition_post_status', 'wpse_19040_notify_admin_on_publish', 10, 3 );
Вы можете либо удалить это в своей теме functions.php
, либо сохранить как плагин (что может быть более подходящим, так как оно не совсем связано с темой).
sha - он отвечает на вопрос, предоставляя информацию о том, что опубликованное решение работает не во всех случаях.
Через 24 часа я смогу обновить свои знания. Решение в этом месте ( Уведомить администратора, когда страница редактируется? ) Работает на сервере, где вышеприведенное решение не работает. Чтобы процитировать из потока с решением, которое работает лучше в двух контекстах, я попытался:
Оригинальный скрипт от wpcodex работает нормально:
add_action( 'save_post', 'my_project_updated_send_email' );
function my_project_updated_send_email( $post_id ) {
//verify post is not a revision
if ( !wp_is_post_revision( $post_id ) ) {
$post_title = get_the_title( $post_id );
$post_url = get_permalink( $post_id );
$subject = 'A post has been updated';
$message = "A post has been updated on your website:\n\n";
$message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n";
//send email to admin
wp_mail( get_option( 'admin_email' ), $subject, $message );
}
}
Конечно, вам нужно будет использовать соответствующий хук или хуки для пост-статусного переходаwp_mail()
.
В каталоге плагинов WordPress есть очень гибкий плагин под названием « Post Status Notifier ».
Вы можете определить собственные правила, когда уведомление должно быть отправлено. Вы можете выбрать получателя, Cc, Bcc, до и после статуса. И вы можете полностью настроить основной текст и тему (с заполнителями).
У меня отлично работает!
Если вы не хотите взламывать файл функций вашей темы, используйте такой плагин, как этот. Он отправляет уведомления администратору, когда участник отправляет сообщение на проверку, и отправляет уведомление по электронной почте участнику, когда сообщение публикуется.
https://wordpress.org/plugins/wpsite-post-status-notifications/
источник