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