Описание comment_{$old_status}_to_{$new_status}
— Action
Хук comment_{$old_status}_to_{$new_status} позволяет выполнять действия при изменении статуса комментария в WordPress. Он срабатывает после изменения статуса комментария, что позволяет разработчикам реагировать на изменения и выполнять дополнительные действия
Примеры использования
Пример отправки уведомления при одобрении комментария:
add_action('comment_approved_to_approve', function($comment) {
// Отправка уведомления автору комментария
wp_mail($comment->comment_author_email, 'Ваш комментарий одобрен', 'Ваш комментарий был успешно одобрен.');
});
Этот пример отправляет уведомление автору комментария, когда его комментарий одобряется
Пример записи изменений статуса в пользовательскую таблицу:
add_action('comment_approved_to_spam', function($comment) {
global $wpdb;
$wpdb->insert('wp_custom_comment_log', array('comment_id' => $comment->comment_ID, 'status' => 'spam'));
});
Здесь мы записываем информацию о том, что комментарий был помечен как спам в пользовательскую таблицу
Пример изменения сообщения при изменении статуса комментария:
add_action('comment_trash_to_approve', function($comment) {
// Изменение сообщения для администраторов
add_filter('post_updated_messages', function($messages) {
$messages['comment'] = 'Комментарий восстановлен.';
return $messages;
});
});
В этом примере мы изменяем сообщение, которое показывается администраторам при восстановлении комментария
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо отслеживать изменения статуса комментариев и выполнять действия на их основе
– Производительность
Будьте осторожны с количеством выполняемых действий в хуке, так как это может повлиять на производительность при большом количестве комментариев
– Предупреждения
Убедитесь, что ваши действия не вызывают бесконечных циклов изменений статуса, чтобы избежать ошибок
Альтернативы
Тип: action
Этот хук срабатывает при обновлении статуса комментария, но не зависит от конкретного перехода между статусами
Используйте его, если вам нужно выполнять действия при любом изменении статуса комментария