comment_post хук-подіяWP 1.2.0

Спрацьовує відразу після додавання коментаря до бази даних. Параметри, що передаються подією: ID коментаря, його статус та дані.

Примітка: для авторів, які мають право редагувати коментарі, повідомлення про коментування їх постів надсилається автоматично, якщо в налаштуваннях встановлено опцію: Настройки > Обсуждения > Авторповинен мати раніше схвалені коментарі. За це відправлення листів відповідає функція wp_notify_moderator() .

Використання

add_action( 'comment_post', 'wp_kama_comment_post_action', 10, 3);

/**
 * Function for `comment_post` action-hook.
 *
 * @param int $comment_ID The comment ID.
 * @param int|string $comment_approved 1 якщо повідомлення не виконано, 0 якщо немає, 'spam' if spam.
 * @param array $commentdata Comment data.
 *
 * @return void
 */
function wp_kama_comment_post_action( $comment_ID, $comment_approved, $commentdata ){

	// action...
}
$comment_ID
(число)
ID коментаря, який було додано до БД.
$comment_approved
(рядок/число)

Статус підтвердження коментаря може бути:

  • 0(false) – не підтверджений
  • 1(true) – підтверджений
  • 'spam'– спам
$commentdata
(масив) (WP 4.5)

Масив даних коментаря як асоціативного масиву. Ключі масиву = полю таблиці БД. Приклад масиву:

$ data = array (
	'comment_post_ID' => 1,
	'comment_author' => 'admin',
	'comment_author_email' => '[email protected]',
	'comment_author_url' => 'http://',
	'comment_content' => 'текст коменту',
	'comment_type' => '',
	'comment_parent' => 0,
	'user_id' => 1,
	'comment_author_IP' => '127.0.0.1',
	'comment_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)',
	'comment_date' => current_time('mysql'),
	'comment_approved' => 1,
);

Приклади

0

#1 Повідомимо автора посту про коментар до його посади

Припустимо, що у нас на сайті пости публікують кілька авторів і потрібно, щоб при кометуванні запису, автору на пошту надсилався лист-повідомлення про додавання нового коментаря до запису:

add_action( 'comment_post', 'author_new_comment_notify', 10, 2);
function author_new_comment_notify( $comment_ID, $comment_approved ){
	// виходимо якщо коментар не схвалено
	//if( $comment_approved == 0 )
	// return;

	$comment = get_comment( $comment_ID );
	$post = get_post( $comment->comment_post_ID );
	$user = get_userdata( $post->post_author );

	if( empty( $user->user_email ) )
		return;

	// повідомлення
	$message = 'Нова відповідь до вашого запису: '. $post->post_title . "rn";
	$message .= get_permalink($comment->comment_post_ID) . "nrn";
	$message .= sprintf( __('Author : %1$s (IP: %2$s , %3$s)'), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "rn";
	$message .= sprintf( __('URL: %s'), $comment->comment_author_url ) . "rn";
	$message .= 'Текст відповіді:' . "rn" . $comment->comment_content . "nrn";

	// Тема
	$subject = '['.$_SERVER['HTTP_HOST'].'] Нова відповідь до вашого запису.';

	// заголовки
	$headers = 'From: No Answer <noanswer@'. $_SERVER['HTTP_HOST'] .'>' . "rn";

	@wp_mail($user->user_email, $subject, $message, $headers);
}

список змін

З версії 1.2.0Введено.
З версії 4.5.0The $commentdata parameter був added.

Де викликається хук

comment_post

wp-includes/comment.php 2284

do_action( 'comment_post', $comment_ID, $commentdata['comment_approved'], $commentdata );

Де використовується хук у WordPress

wp-includes/default-filters.php 496

add_action( 'comment_post', 'wp_new_comment_notify_moderator');

wp-includes/default-filters.php 497

add_action( 'comment_post', 'wp_new_comment_notify_postauthor');

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *