在Woocommerce中完成了产品批量保存后有哪些可用的钩子

时间:2018-11-18 19:21:58

标签: php wordpress woocommerce product hook-wordpress

我使用定制了批量编辑功能

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

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

保存完所有产品后,我想做一些进一步的处理。我可以为此绑上钩子吗?

欢迎使用任何指针。

说明:我确实需要访问批量修改请求中发送的所有信息(批量修改字段值,产品ID等)。

1 个答案:

答案 0 :(得分:2)

您可以使用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文件中。经过测试,可以正常工作。

enter image description here

  

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

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

注意:

  

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