Woocommerce 下订单时获取产品库存变化的相关订单id

Woocommerce 下订单时获取产品库存变化的相关订单id,woocommerce,Woocommerce,我正在开发库存状态日志功能,以收集所有产品库存变化的数据。我正在使用“woocommerce\u product\u set\u stock”钩子将更改写入自定义数据库表。一个大问题是,当有人下了新订单时,我无法找到如何获得与库存变化相关的订单。当库存更改基于订单取消/退款时,我可以从$\u服务器信息获取订单id,但当通过签出下新订单时,与订单id无关 客户要求在库存更改日志上提供订单id信息,因此,当订单取消或待处理时,请提供任何提示。,WooCommerce调用此wc\u减少库存水平和wc\

我正在开发库存状态日志功能,以收集所有产品库存变化的数据。我正在使用“woocommerce\u product\u set\u stock”钩子将更改写入自定义数据库表。一个大问题是,当有人下了新订单时,我无法找到如何获得与库存变化相关的订单。当库存更改基于订单取消/退款时,我可以从$\u服务器信息获取订单id,但当通过签出下新订单时,与订单id无关


客户要求在库存更改日志上提供订单id信息,因此,当订单取消或待处理时,请提供任何提示。

,WooCommerce调用此
wc\u减少库存水平
wc\u增加库存水平
函数来处理库存数量

您可以使用
woocommerce\u reduce\u order\u stock
woocommerce\u restore\u order\u stock
将更改写入自定义数据库表

function update_in_custom_table( $order ){
    
    $order_id = $order->get_id();
    
    $order = wc_get_order( $order_id );
    
    // We need an order, and a store with stock management to continue.
    if ( ! $order || 'yes' !== get_option( 'woocommerce_manage_stock' ) ) {
        return;
    }

    // Loop over all items.
    foreach ( $order->get_items() as $item ) {
        
        if ( ! $item->is_type( 'line_item' ) ) {
            continue;
        }

        $product = $item->get_product();
        
        if ( ! $product || ! $product->managing_stock() ) {
            continue;
        }

        $stock_quantity = $product->get_stock_quantity();

    }

}   

add_action( 'woocommerce_reduce_order_stock', 'update_in_custom_table', 10, 1 );
add_action( 'woocommerce_restore_order_stock', 'update_in_custom_table', 10, 1 );

是的,非常感谢!这是忙碌的一天,我刚刚准备好了测试,所以这似乎和预期的一样。非常感谢你的帮助!我已经尝试过提高投票率,但是:“谢谢你的反馈!那些声誉低于15的人所投的票会被记录下来,但不会改变公开显示的帖子分数。”