Оповещение по электронной почте при изменении любой публикации или страницы

11

Есть ли способ, чтобы Wordpress отправлял мне электронное письмо при публикации страницы или сообщения?

GavinR
источник

Ответы:

19

Есть несколько плагинов, которые обрабатывают уведомления по электронной почте , но все они, похоже, действуют как сервис подписки для (всех) пользователей 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, либо сохранить как плагин (что может быть более подходящим, так как оно не совсем связано с темой).

TheDeadMedic
источник
3

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 ); 
   } 
} 
Doorwhey
источник
-1

В каталоге плагинов WordPress есть очень гибкий плагин под названием « Post Status Notifier ».

Вы можете определить собственные правила, когда уведомление должно быть отправлено. Вы можете выбрать получателя, Cc, Bcc, до и после статуса. И вы можете полностью настроить основной текст и тему (с заполнителями).

У меня отлично работает!

mikeST
источник
рекомендации плагинов не по теме. И рекомендовать плагин, не показывая соответствующие строки, которые решают вопрос, считается низким качеством. Если плагин ушел, ответ не имеет смысла, и сайт страдает от гниения ссылок.
Кайзер
-1

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

https://wordpress.org/plugins/wpsite-post-status-notifications/

CreativeDev
источник
2
Ответы должны быть не просто ссылками . На самом деле это должен быть ответ, а не маршрут, по которому кто-то может найти ответ. Пожалуйста, помогите предотвратить гниение ссылок, отредактируйте свой ответ и предоставьте необходимую информацию, которая поможет ОП, а также последующим посетителям решить их проблему.
Кайзер
Я думаю, что вы немного ошиблись. Вы никогда не будете "взламывать" файл функций. Он там для внесения изменений и реализации хуков.
Майк