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
unapprovedapproveddelete
Статусы комментариев вроде: 0, hold, 1, approve будут соответствовать одному из этих названий:
0 => 'unapproved', 'hold' => 'unapproved', 1 => 'approved', 'approve' => 'approved',
Т.е. все названия хуков выглядят так:
transition_comment_statuscomment_unapproved_to_approvedcomment_unapproved_to_deletecomment_approved_to_unapprovedcomment_approved_to_deletecomment_delete_to_approvedcomment_delete_to_unapprovedcomment_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 | Введена. |