You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询Woocommerce REST API触发产品增删改的可用action钩子

WooCommerce REST API 专属触发钩子解决方案

一、内置专属钩子(推荐,无需额外判断)

WooCommerce 本身为REST API操作提供了专属的action钩子,仅在通过REST API发起请求时触发,完全符合你的需求:

  • 产品创建/更新触发钩子:woocommerce_rest_insert_product
    该钩子会在REST API调用完成产品创建、更新操作后触发,自带三个参数:
    1. $product:产品对象
    2. $request:当前REST请求对象
    3. $creating:布尔值,true为新建产品,false为更新现有产品
      示例代码:
    add_action( 'woocommerce_rest_insert_product', function ( $product, $request, $creating ) {
        $product_id = $product->get_id();
        // 你的业务逻辑
    }, 99, 3 );
    
  • 产品删除触发钩子:woocommerce_rest_delete_product
    该钩子仅在REST API调用删除产品后触发,示例代码:
    add_action( 'woocommerce_rest_delete_product', function ( $product, $request ) {
        $product_id = $product->get_id();
        // 你的业务逻辑
    }, 99, 2 );
    

二、通用兼容方案(适配自定义业务场景)

如果你需要沿用原有wp_insert_post的逻辑,仅增加API请求判断,可以用WooCommerce内置的wc_rest_is_api_request()函数识别当前请求是否为REST API请求,示例代码:

add_action( 'wp_insert_post', function ( $post_id, \WP_Post $post, $updated ) {
    // 仅处理产品类型且是WC REST API请求时执行
    if ( $post->post_type !== 'product' || ! wc_rest_is_api_request() ) {
        return;
    }
    // 你的业务逻辑
}, 99, 3 );

三、自定义钩子扩展

如果内置钩子无法满足你的特殊需求,WooCommerce REST API的所有端点控制器都支持自定义动作注入,你可以在对应端点的处理逻辑中通过do_action()自定义专属钩子,按需触发。

内容的提问来源于stack exchange,提问作者Negant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:54:03