Alert Email ketika Pos atau Halaman diubah

11

Apakah ada cara untuk mengirim email ke Wordpress setiap kali Halaman atau Posting Diterbitkan?

GavinR
sumber

Jawaban:

19

Ada beberapa plugin yang menangani pemberitahuan email , tetapi semuanya tampaknya bertindak seperti layanan berlangganan untuk (semua) pengguna WordPress.

Untuk memberi tahu Anda hanya ketika sebuah posting atau halaman diterbitkan:

/**
 * 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 );

Anda bisa menjatuhkan ini di tema Anda functions.php, atau menyimpannya sebagai plugin (yang mungkin lebih tepat, karena itu tidak terkait 'tema').

TheDeadMedic
sumber
3

sha - itu menjawab pertanyaan dengan berkontribusi pengetahuan bahwa solusi yang diposting tidak bekerja di semua contoh.

Setelah 24 jam, saya dapat memperbarui pengetahuan yang saya berkontribusi. Solusi di lokasi ini ( Beri tahu admin saat laman diedit? ) Berfungsi di server tempat solusi yang diposting di atas tidak. Mengutip dari utas dengan solusi yang bekerja lebih baik dalam dua konteks saya mencoba:

Script asli dari wpcodex berfungsi dengan baik:

 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
sumber
-1

Ada plugin yang sangat fleksibel yang disebut " Post Status Notifier " yang tersedia di direktori plugin WordPress.

Anda dapat menetapkan aturan sendiri, saat pemberitahuan harus dikirim. Anda dapat memilih penerima, Cc, Bcc, sebelum dan sesudah status. Dan Anda dapat sepenuhnya menyesuaikan teks tubuh dan subjek (dengan placeholder).

Berfungsi sempurna untuk saya!

mikeST
sumber
plugin-rekomendasi di luar topik. Dan merekomendasikan plugin tanpa menunjukkan jalur yang relevan yang menyelesaikan pertanyaan dianggap berkualitas rendah. Jika plugin hilang, jawabannya tidak berharga dan situs tersebut menderita tautan busuk.
kaiser
-1

Jika Anda tidak ingin meretas file fucntions tema Anda, gunakan plugin seperti ini. Ini mengirim pemberitahuan ke admin ketika kontributor mengirimkan posting untuk ditinjau, dan pemberitahuan email ke kontributor ketika posting diterbitkan.

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

CreativeDev
sumber
2
Jawaban harus lebih dari sekadar tautan biasa . Mereka seharusnya benar-benar menjadi jawaban alih-alih rute di mana seseorang mungkin akan menemukan jawaban. Tolong bantu mencegah tautan busuk, edit jawaban Anda dan berikan informasi yang diperlukan yang membantu OP dan juga pengunjung selanjutnya untuk menyelesaikan masalah mereka.
kaiser
Saya pikir Anda telah salah menyatakannya sedikit. Anda tidak akan pernah "meretas" file fungsi. Itu ada di sana untuk membuat perubahan dan mengimplementasikan pengait.
Mike