Відповіді:
Існує кілька плагінів, які обробляють сповіщення електронною поштою , але вони, схоже, діють як послуга підписки для (усіх) користувачів 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 доступний дуже гнучкий плагін під назвою " Повідомлення про статус повідомлення ".
Ви можете визначити власні правила, коли повідомлення повинно надсилатися. Ви можете вибрати одержувача, Копію, Копію, до та після статусу. І ви можете повністю налаштувати текст і предмет (із заповненнями).
Для мене прекрасно працює!
Якщо ви не хочете зламати файл fucntions теми, використовуйте плагін, такий як цей. Він надсилає повідомлення адміністратору, коли дописувач надсилає публікацію на рецензію, та повідомлення електронною поштою учаснику, коли публікація публікується.
https://wordpress.org/plugins/wpsite-post-status-notifications/