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}
Хуки з функції
-
$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 | Введено. |