Notifie un auteur (et/ou d'autres) d'un commentaire/trackback/pingback sur un article.

Paramètres

$comment_id

(int|WP_Comment)(Obligatoire)ID du commentaire ou objet WP_Comment.

$deprecated

(chaîne de caractères)(Facultatif)Non utilisé

Valeur par défaut : null

Retour

(bool) Vrai à la fin de l'opération. Faux si aucune adresse électronique n'a été spécifiée.

Plus d'informations

  • Cette fonction peut être remplacée par plugins. Si les plugins ne redéfinissent pas ces fonctions, alors celle-ci sera utilisée à la place.
  • Cette fonction est pluggable à l'aide des filtres suivants :
    • commentaire_notification_texte
    • comment_notification_subject
    • commentaire_notification_headers

    Si les plugins ne redéfinissent pas les fonctions à l'aide de filtres, alors la fonctionnalité par défaut sera utilisée.

    Pour modifier le contenu de l'email qui est envoyé lorsqu'un lecteur laisse un commentaire, vous pouvez fournir des filtres pour chacune des fonctions ci-dessus dans votre plugin.

    Cette fonction aseptise également une URL pour l'utiliser dans une redirection.

Source

Fichier : wp-includes/pluggable.php

functionwp_notify_postauthor($comment_id,$deprecated=null){if(null!==$deprecated){_deprecated_argument(__FUNCTION__,'3.8.0');}$comment=get_comment($comment_id);if(empty($comment)||empty($comment->comment_post_ID)){returnfalse;}$post=get_post($comment->comment_post_ID);$author=get_userdata($post->post_author);// Who to notify? By default, just the post author, but others can be added.$emails=array();if($author){$emails[]=$author->user_email;}/**
		 * Filters the list of email addresses to receive a comment notification.
		 *
		 * By default, only post authors are notified of comments. This filter allows
		 * others to be added.
		 *
		 * @since 3.7.0
		 *
		 * @param string[] $emails     An array of email addresses to receive a comment notification.
		 * @param int      $comment_id The comment ID.
		 */$emails=apply_filters('comment_notification_recipients',$emails,$comment->comment_ID);$emails=array_filter($emails);// If there are no addresses to send the comment to, bail.if(!count($emails)){returnfalse;}// Facilitate unsetting below without knowing the keys.$emails=array_flip($emails);/**
		 * Filters whether to notify comment authors of their comments on their own posts.
		 *
		 * By default, comment authors aren't notified of their comments on their own
		 * posts. This filter allows you to override that.
		 *
		 * @since 3.8.0
		 *
		 * @param bool $notify     Whether to notify the post author of their own comment.
		 *                         Default false.
		 * @param int  $comment_id The comment ID.
		 */$notify_author=apply_filters('comment_notification_notify_author',false,$comment->comment_ID);// The comment was left by the author.if($author&&!$notify_author&&$comment->user_id==$post->post_author){unset($emails[$author->user_email]);}// The author moderated a comment on their own post.if($author&&!$notify_author&&get_current_user_id()==$post->post_author){unset($emails[$author->user_email]);}// The post author is no longer a member of the blog.if($author&&!$notify_author&&!user_can($post->post_author,'read_post',$post->ID)){unset($emails[$author->user_email]);}// If there's no email to send the comment to, bail, otherwise flip array back around for use below.if(!count($emails)){returnfalse;}else{$emails=array_flip($emails);}$switched_locale=switch_to_locale(get_locale());$comment_author_domain='';if(WP_Http::is_ip_address($comment->comment_author_IP)){$comment_author_domain=gethostbyaddr($comment->comment_author_IP);}// The blogname option is escaped with esc_html() on the way into the database in sanitize_option().// We want to reverse this for the plain text arena of emails.$blogname=wp_specialchars_decode(get_option('blogname'),ENT_QUOTES);$comment_content=wp_specialchars_decode($comment->comment_content);switch($comment->comment_type){case'trackback':/* translators: %s: Post title. */$notify_message=sprintf(__('New trackback on your post "%s"'),$post->post_title)"rn";/* translators: 1: Trackback/pingback website name, 2: Website IP address, 3: Website hostname. */$notify_message.=sprintf(__('Website: %1$s (IP address: %2$s, %3$s)'),$comment->comment_author,$comment->comment_author_IP,$comment_author_domain)"rn";/* translators: %s: Trackback/pingback/comment author URL. */$notify_message.=sprintf(__('URL: %s'),$comment->comment_author_url)"rn";/* translators: %s: Comment text. */$notify_message.=sprintf(__('Comment: %s'),"rn"$comment_content)"rnrn";$notify_message.=__('You can see all trackbacks on this post here:')"rn";/* translators: Trackback notification email subject. 1: Site title, 2: Post title. */$subject=sprintf(__('[%1$s] Trackback: "%2$s"'),$blogname,$post->post_title);break;case'pingback':/* translators: %s: Post title. */$notify_message=sprintf(__('New pingback on your post "%s"'),$post->post_title)"rn";/* translators: 1: Trackback/pingback website name, 2: Website IP address, 3: Website hostname. */$notify_message.=sprintf(__('Website: %1$s (IP address: %2$s, %3$s)'),$comment->comment_author,$comment->comment_author_IP,$comment_author_domain)"rn";/* translators: %s: Trackback/pingback/comment author URL. */$notify_message.=sprintf(__('URL: %s'),$comment->comment_author_url)"rn";/* translators: %s: Comment text. */$notify_message.=sprintf(__('Comment: %s'),"rn"$comment_content)"rnrn";$notify_message.=__('You can see all pingbacks on this post here:')"rn";/* translators: Pingback notification email subject. 1: Site title, 2: Post title. */$subject=sprintf(__('[%1$s] Pingback: "%2$s"'),$blogname,$post->post_title);break;default:// Comments./* translators: %s: Post title. */$notify_message=sprintf(__('New comment on your post "%s"'),$post->post_title)"rn";/* translators: 1: Comment author's name, 2: Comment author's IP address, 3: Comment author's hostname. */$notify_message.=sprintf(__('Author: %1$s (IP address: %2$s, %3$s)'),$comment->comment_author,$comment->comment_author_IP,$comment_author_domain)"rn";/* translators: %s: Comment author email. */$notify_message.=sprintf(__('Email: %s'),$comment->comment_author_email)"rn";/* translators: %s: Trackback/pingback/comment author URL. */$notify_message.=sprintf(__('URL: %s'),$comment->comment_author_url)"rn";if($comment->comment_parent&&user_can($post->post_author,'edit_comment',$comment->comment_parent)){/* translators: Comment moderation. %s: Parent comment edit URL. */$notify_message.=sprintf(__('In reply to: %s'),admin_url("comment.php?action=editcomment&c={$comment->comment_parent}#wpbody-content"))"rn";}/* translators: %s: Comment text. */$notify_message.=sprintf(__('Comment: %s'),"rn"$comment_content)"rnrn";$notify_message.=__('You can see all comments on this post here:')"rn";/* translators: Comment notification email subject. 1: Site title, 2: Post title. */$subject=sprintf(__('[%1$s] Comment: "%2$s"'),$blogname,$post->post_title);break;}$notify_message.=get_permalink($comment->comment_post_ID)"#commentsrnrn";/* translators: %s: Comment URL. */$notify_message.=sprintf(__('Permalink: %s'),get_comment_link($comment))"rn";if(user_can($post->post_author,'edit_comment',$comment->comment_ID)){if(EMPTY_TRASH_DAYS){/* translators: Comment moderation. %s: Comment action URL. */$notify_message.=sprintf(__('Trash it: %s'),admin_url("comment.php?action=trash&c={$comment->comment_ID}#wpbody-content"))"rn";}else{/* translators: Comment moderation. %s: Comment action URL. */$notify_message.=sprintf(__('Delete it: %s'),admin_url("comment.php?action=delete&c={$comment->comment_ID}#wpbody-content"))"rn";}/* translators: Comment moderation. %s: Comment action URL. */$notify_message.=sprintf(__('Spam it: %s'),admin_url("comment.php?action=spam&c={$comment->comment_ID}#wpbody-content"))"rn";}$wp_email='[email protected]'preg_replace('#^www.#','',wp_parse_url(network_home_url(),PHP_URL_HOST));if(''===$comment->comment_author){$from="From: "$blogname" <$wp_email>";if(''!==$comment->comment_author_email){$reply_to="Reply-To: $comment->comment_author_email";}}else{$from="From: "$comment->comment_author" <$wp_email>";if(''!==$comment->comment_author_email){$reply_to="Reply-To: "$comment->comment_author_email" <$comment->comment_author_email>";}}$message_headers="$fromn"'Content-Type: text/plain; charset="'get_option('blog_charset')""n";if(isset($reply_to)){$message_headers.=$reply_to"n";}/**
		 * Filters the comment notification email text.
		 *
		 * @since 1.5.2
		 *
		 * @param string $notify_message The comment notification email text.
		 * @param int    $comment_id     Comment ID.
		 */$notify_message=apply_filters('comment_notification_text',$notify_message,$comment->comment_ID);/**
		 * Filters the comment notification email subject.
		 *
		 * @since 1.5.2
		 *
		 * @param string $subject    The comment notification email subject.
		 * @param int    $comment_id Comment ID.
		 */$subject=apply_filters('comment_notification_subject',$subject,$comment->comment_ID);/**
		 * Filters the comment notification email headers.
		 *
		 * @since 1.5.2
		 *
		 * @param string $message_headers Headers for the comment notification email.
		 * @param int    $comment_id      Comment ID.
		 */$message_headers=apply_filters('comment_notification_headers',$message_headers,$comment->comment_ID);foreach($emailsas$email){wp_mail($email,wp_specialchars_decode($subject),$notify_message,$message_headers);}if($switched_locale){restore_previous_locale();}returntrue;}

Related

Utilise

Utilisations Description
wp-includes/l10n.php : restore_previous_locale()

Restaure les traductions selon la locale précédente.

wp-includes/l10n.php : switch_to_locale()

Bascule les traductions en fonction de la locale donnée.

wp-includes/http.php : wp_parse_url()

Un wrapper pour la fonction parse_url() de PHP qui gère la cohérence des valeurs de retour entre les différentes versions de PHP.

wp-includes/capabilities.php : user_can()

Renvoie si un utilisateur particulier possède la capacité spécifiée.

wp-includes/l10n.php : __()

Récupère la traduction de $text.

wp-includes/l10n.php : get_locale()

Récupère la locale actuelle.

wp-includes/formatting.php : wp_specialchars_decode()

Convertit un certain nombre d'entités HTML en leurs caractères spéciaux.

wp-includes/pluggable.php : commentaires_notification_recipients

Filtre la liste des adresses électroniques qui recevront une notification de commentaire.

wp-includes/pluggable.php : notification_de_commentaire_notifier_l'auteur

Filtre s'il faut notifier les auteurs de commentaires de leurs commentaires sur leurs propres articles.

wp-includes/pluggable.php : commentaire_notification_texte

Filtre le texte du courriel de notification des commentaires.

wp-includes/pluggable.php : comment_notification_subject

Filtre le sujet du courriel de notification des commentaires.

wp-includes/pluggable.php : en-têtes de notification de commentaire

Filtre les en-têtes du courriel de notification des commentaires.

wp-includes/pluggable.php : get_userdata()

Récupérer les infos de l'utilisateur par son identifiant.

wp-includes/pluggable.php : wp_mail()

Envoie un courriel, de manière similaire à la fonction mail de PHP.

wp-includes/class-http.php :WP_Http::is_ip_address()

Détermine si une chaîne de caractères spécifiée représente une adresse IP ou non.

wp-includes/functions.php : _deprecated_argument()

Marquer un argument de fonction comme déprécié et informer quand il a été utilisé.

wp-includes/link-template.php : admin_url()

Récupère l'URL de la zone d'administration pour le site actuel.

wp-includes/link-template.php : réseau_home_url()

Récupère l'URL d'accueil pour le réseau actuel.

wp-includes/link-template.php : get_permalink()

Récupère le permalien complet pour le post ou l'ID de post actuel.

wp-includes/plugin.php : apply_filters()

Appelle les fonctions de rappel qui ont été ajoutées à un crochet de filtre.

wp-includes/option.php : get_option()

Récupère une valeur d'option en fonction d'un nom d'option.

wp-includes/user.php : get_current_user_id()

Récupère l'identifiant de l'utilisateur actuel.

wp-includes/post.php : get_post()

Récupère les données du post étant donné un ID de post ou un objet post.

wp-includes/comment-template.php : get_comment_link()

Récupère le lien vers un commentaire donné.

wp-includes/comment.php : get_comment()

Récupère les données du commentaire étant donné un ID de commentaire ou un objet de commentaire.

Utilisé par

Utilisé par Description
wp-includes/comment.php : wp_new_comment_notify_postauthor()

Envoyer une notification d'un nouveau commentaire à l'auteur du post.

Changelog

Version Description
1.0.0 Introduit.