Я настроил функцию массового редактирования, используя
add_action('woocommerce_product_bulk_edit_start', function () {
// ...
}, 10, 0);
add_action('woocommerce_product_bulk_edit_save', function ($product) {
// ...
}, 10, 1);
Я хотел бы сделать дальнейшую обработку после того, как все продукты были сохранены. Есть ли крюк, который я могу связать для этого?
Любые указатели приветствуются.
Разъяснение: Мне нужно получить доступ ко всей информации, отправленной в запросе массового редактирования (значения полей массового редактирования, идентификаторы продуктов и т. Д.).
Вы могли бы использовать WordPress admin_init
Хук действия, как в этом примере, где после сохранения продуктов отображается пользовательское сообщение:
add_action( 'admin_init', 'after_bulk_edit_products_save' );
function after_bulk_edit_products_save() {
global $pagenow;
if( $pagenow === 'edit.php' && isset($_GET['post_type']) && $_GET['post_type'] === 'product'
&& isset($_GET['paged']) && ( isset($_GET['updated']) || isset($_GET['skipped']) || isset($_GET['locked']) ) ) {
add_action( 'admin_notices', 'custom_bulk_action_admin_notice' );
}
}
function custom_bulk_action_admin_notice() {
echo '<div id="message" class="updated"><p>This is a custom message displayed after save</p></div>';
}
Код помещается в файл function.php вашей активной дочерней темы (active theme). Проверено и работает.
Вы можете получить доступ из
$_GET
следующие переменные (всегда используйтеisset()
чтобы избежать ошибок):
$_GET['post_type']
— тип поста «продукт»$_GET['paged']
— значение по умолчанию больше 1$_GET['updated'
] — количество продуктов «обновлено»$_GET['skipped']
— количество товаров «пропущено»$_GET['locked']
— количество товаров «заблокировано»
У вас есть доступ ко всем данным, представленным для массового редактирования (и быстрое редактирование) в
$_REQUEST
Глобальный.
Других решений пока нет …