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

2 июн. 2011 г., 16:09:34
Просмотры: 22.6K
Голосов: 11

Есть ли способ настроить WordPress так, чтобы получать email-уведомления каждый раз, когда публикуется страница или запись?

0
Все ответы на вопрос 5
0
19

Существует несколько плагинов для уведомлений по email, но все они работают как сервис подписки для (всех) пользователей WordPress.

Чтобы получать уведомления только вам при публикации записи или страницы:

/**
 * Отправляет email-уведомление администратору при публикации записи.
 * 
 * @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;

    // Получатель - email администратора
    $emailto = get_option( 'admin_email' );

    // Тема письма: "Новая {тип_записи}"
    $subject = 'Новая ' . $post_type->labels->singular_name;

    // Тело письма
    $message = 'Посмотреть: ' . get_permalink( $post->ID ) . "\nРедактировать: " . 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 вашей темы или сохранить его как отдельный плагин (что может быть более правильным решением, так как функционал не относится напрямую к теме).

2 июн. 2011 г. 16:26:39
0

sha — это ответ на вопрос, вносящий знания о том, что опубликованное решение работает не во всех случаях.

Через 24 часа я могу обновить предоставленную информацию. Решение по этой ссылке (Уведомлять администратора при редактировании страницы?) работает на сервере, где приведённое выше решение не срабатывает. Цитирую из обсуждения с решением, которое лучше работает в двух контекстах, которые я тестировал:

Оригинальный скрипт из wpcodex работает отлично:

add_action( 'save_post', 'my_project_updated_send_email' ); 
function my_project_updated_send_email( $post_id ) { 
    //проверяем, что пост не является ревизией 
    if ( !wp_is_post_revision( $post_id ) ) { 
         $post_title = get_the_title( $post_id ); 
         $post_url = get_permalink( $post_id ); 
         $subject = 'Пост был обновлён'; 
         $message = "На вашем сайте был обновлён пост:\n\n";
         $message .= "<a href='". $post_url. "'>" .$post_title. "</a>\n\n"; 
         //отправляем email администратору 
         wp_mail( get_option( 'admin_email' ), $subject, $message ); 
   } 
}
12 апр. 2013 г. 01:27:07
0

Конечно, вам понадобится использовать соответствующий хук или хуки перехода статуса записи и функцию wp_mail().

2 июн. 2011 г. 16:21:42
1
-1

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

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

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

10 февр. 2014 г. 23:03:05
Комментарии

Рекомендации [tag:plugin-recommendations] не соответствуют теме. И рекомендация плагина без демонстрации соответствующих строк кода, решающих вопрос, считается низкокачественным ответом. Если плагин перестанет существовать, ответ станет бесполезным, а сайт пострадает от "битых" ссылок.

kaiser kaiser
11 февр. 2014 г. 00:35:21
2
-1

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

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

3 мая 2014 г. 00:00:06
Комментарии

Ответы должны быть больше, чем просто ссылки. Они должны действительно давать ответ, а не быть маршрутом, где кто-то возможно найдет ответ. Пожалуйста, помогите предотвратить ссылочный распад, [отредактируйте] ваш ответ и предоставьте необходимую информацию, которая поможет автору вопроса, а также будущим посетителям решить их проблему.

kaiser kaiser
3 мая 2014 г. 00:23:52

Думаю, вы немного неверно выразились. Вы никогда не будете "взламывать" файл функций. Он там для внесения изменений и реализации хуков.

Mike Mike
6 мая 2014 г. 17:12:40