Описание handle_bulk_actions-{$screen}
— Action
Хук handle_bulk_actions-{$screen} позволяет обрабатывать массовые действия для конкретного экрана в админке WordPress. Он срабатывает при выполнении массовых действий, таких как удаление или изменение статуса товаров, и позволяет разработчикам выполнить дополнительные действия или изменить поведение по умолчанию
Примеры использования
Пример обработки массового удаления товаров:
add_action('handle_bulk_actions-edit-product', function($redirect_to, $doaction, $ids) {
if ($doaction === 'delete') {
// Обработка массового удаления товаров
foreach ($ids as $id) {
wp_delete_post($id);
}
$redirect_to = add_query_arg('bulk_deleted', count($ids), $redirect_to);
}
return $redirect_to;
});
В этом примере мы обрабатываем массовое удаление товаров и перенаправляем пользователя с сообщением о количестве удаленных товаров
Пример изменения статуса товаров при массовом обновлении:
add_action('handle_bulk_actions-edit-product', function($redirect_to, $doaction, $ids) {
if ($doaction === 'publish') {
// Изменение статуса товаров на 'опубликован'
foreach ($ids as $id) {
wp_update_post(['ID' => $id, 'post_status' => 'publish']);
}
$redirect_to = add_query_arg('bulk_published', count($ids), $redirect_to);
}
return $redirect_to;
});
Здесь мы изменяем статус выбранных товаров на ‘опубликован’ и перенаправляем с сообщением о количестве опубликованных товаров
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо добавить или изменить поведение массовых действий в админке WordPress
– Производительность
Следите за производительностью, особенно при обработке большого количества элементов в массиве ids
– Предупреждения
Не забывайте проверять права доступа пользователя перед выполнением массовых действий
Альтернативы
Тип: action
Этот хук позволяет обрабатывать массовые действия для всех экранов, а не только для конкретного
Используйте его, если нужно добавить функциональность для массовых действий на различных экранах