wp_transition_comment_status()
Вызывает специальные хуки, когда статус комментария изменяется с одного на другой: например с unapproved на approved.
Эта функция не меняет статус комментария, а только вызывает 3 хука. Функция вызывается из других функций, после того, как статус комментария был изменен, чтобы уведомить плагины, темы и функции ядра о смене статуса комментария.
Для реальной смены статуса комментария, используйте функции: wp_update_comment() из неё, в частности, и вызывается эта функция.
Функция вызовет 2 следующих хука, если статус обновляемого комментария отличается от его прошлого статуса:
// Срабатывает всякий раз когда меняется статус do_action( 'transition_comment_status', $new_status, $old_status, $comment ); // срабатывает когда указанный статус меняется на указанный do_action( "comment_{$old_status}_to_{$new_status}", $comment );
И третий хук срабатывает всегда когда функция вызывается:
do_action( "comment_{$new_status}_{$comment_type}", $comment_ID, $comment );
Вызывается функция всякий раз при вызове следующих функций:
Возможные значения $new_status и $old_status
unapproved
approved
delete
Статусы комментариев вроде: 0
, hold
, 1
, approve
будут соответствовать одному из этих названий:
0 => 'unapproved', 'hold' => 'unapproved', 1 => 'approved', 'approve' => 'approved',
Т.е. все названия хуков выглядят так:
transition_comment_status
comment_unapproved_to_approved
comment_unapproved_to_delete
comment_approved_to_unapproved
comment_approved_to_delete
comment_delete_to_approved
comment_delete_to_unapproved
comment_unapproved_{$comment_type}
comment_approved_{$comment_type}
comment_delete_{$comment_type}
Хуки из функции
Возвращает
null
. Ничего.
Использование
wp_transition_comment_status( $new_status, $old_status, $comment );
- $new_status(строка) (обязательный)
- Название нового статуса. Может быть:
0
,hold
,unapproved
,1
,approve
,approved
,delete
- $old_status(строка) (обязательный)
- Название старого статуса. Может быть одним из значений $new_status.
- $comment(объект) (обязательный)
- Объект комментария.
Примеры
#1 Пример использования
Отправляем письмо при утверждении комментария
add_action( 'comment_unapproved_to_approved', 'approve_comment_callback' ); function approve_comment_callback( $comment ){ // коммент изменил статус с неодобреного на одобренный // делаем тут что нибудь // например отправляем письмо куда-то // wp_mail( $comment->comment_author_email, $subject, $notification ); }
Список изменений
С версии 2.7.0 | Введена. |