J'utilise une fonction personnalisée avec le crochet 'publish_post' pour envoyer une notification à l'auteur lorsque le message a été publié, mais le problème auquel je suis confronté actuellement est que la notification est envoyée deux fois, ainsi que lorsque le message est mis à jour. Voici à quoi ressemble ma fonction.
function authorNotification($post_id) {
$post = get_post($post_id);
$author = get_userdata($post->post_author);
$message = "
Hi ".$author->display_name.",
New post, ".$post->post_title." has just been published at ".get_permalink( $post_id ).".
";
wp_mail($author->user_email, "New Post Published", $message);
}
add_action('publish_post', 'authorNotification');
est-ce que j'ai râté quelque chose?
Vous devez écrire votre crochet pour l'action transition_post_status
:
function authorNotification( $new_status, $old_status, $post ) {
if ( $new_status == 'publish' && $old_status != 'publish' ) {
$author = get_userdata($post->post_author);
$message = "
Hi ".$author->display_name.",
New post, ".$post->post_title." has just been published at ".get_permalink( $post->ID ).".
";
wp_mail($author->user_email, "New Post Published", $message);
}
}
add_action('transition_post_status', 'authorNotification', 10, 3 );