Какой доступный хук после массового сохранения продуктов завершен в Woocommerce

Я настроил функцию массового редактирования, используя

add_action('woocommerce_product_bulk_edit_start', function () {
// ...
}, 10, 0);

add_action('woocommerce_product_bulk_edit_save', function ($product) {
// ...
}, 10, 1);

Я хотел бы сделать дальнейшую обработку после того, как все продукты были сохранены. Есть ли крюк, который я могу связать для этого?

Любые указатели приветствуются.

Разъяснение: Мне нужно получить доступ ко всей информации, отправленной в запросе массового редактирования (значения полей массового редактирования, идентификаторы продуктов и т. Д.).

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 Глобальный.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]