2

我已经使用自定义批量编辑功能

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

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

我想在所有产品保存后做一些进一步的处理。有没有我可以系上的钩子?

欢迎任何指点。

澄清:我确实需要访问批量编辑请求中发送的所有信息(批量编辑字段值、产品 ID 等)。

4

1 回答 1

4

您可以像此示例中那样使用 Wordpressadmin_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 文件中。测试和工作。

在此处输入图像描述

您可以从$_GET以下变量访问 (始终使用isset()以避免错误)

  • $_GET['post_type']- 帖子类型是“产品”
  • $_GET['paged']- 默认值为“1”最
  • $_GET['updated'] - “更新”的产品数量
  • $_GET['skipped']- “跳过”的产品数量
  • $_GET['locked']- “锁定”的产品数量

笔记:

您可以访问在全局中提交以进行批量编辑(和快速编辑)$_REQUEST的所有数据。

于 2018-11-18T21:28:30.953 回答