wordpress - 如何在 woocommerce 上创建“有货”自定义状态,如果再次将其更改为“处理中”,如何减少库存?
问题描述
我为 woocommerce 订单创建了“有库存”自定义状态,但是当将其更改回“处理中”时,我的库存没有减少库存,如果我将状态更改回,有人可以帮我弄清楚如何再次减少库存“处理中”(即:我取消订单(woocommerce 增加库存水平,当我设置处理状态 woocommerce 降低库存水平)这就是我想要的,但我的自定义状态。这是我的代码:
function julio_custom_backinstock_status( $order_id, $checkout = null ) {
$order = new WC_Order( $order_id );
if (!get_option( 'woocommerce_manage_stock' ) == 'yes' && !sizeof( $order->get_items() ) > 0) {
return;
}
if ($order->get_status() === 'riesgoso') {
$changes = [];
foreach ($order->get_items() as $item) {
if ($item[ 'product_id' ] > 0) {
$product = $item->get_product();
if ($product && $product->exists() && $product->managing_stock()) {
$qty = $item->get_quantity(); // Get the item quantity
$new_quantity = $product->increase_stock( $qty );
do_action( 'woocommerce_auto_stock_restored', $product, $item );
$changes[] = $product->get_formatted_name() . ' ' . ( $new_quantity - $qty ) . '→' . $new_quantity;
$order->send_stock_notifications( $product, $new_quantity, $item[ 'qty' ] );
}
}
}
if ($changes) {
$order->add_order_note( __( 'Stock levels increased:', 'woocommerce' ) . ' ' . implode( ', ', $changes ) );
}
}
}
add_action( 'woocommerce_order_status_changed', 'julio_custom_backinstock_status' );```
解决方案
推荐阅读
- c# - FileStream.SetLength:新旧长度之间的流内容是否真的未定义,还是为零?
- angular - 表单数组。找不到带路径的控件
- c - C获取范围之间的奇数并将其存储在int数组中
- perl - Perl Config::Tiny->read() 不处理 CRLF
- javascript - 检查圆与圆扇区的周长之间的碰撞
- python - Python 函数:返回 x < y
- python - 使用自定义转换器子类对 sklearn 管道进行评分时出现 AttributeError,但在拟合时却没有
- javascript - 将php变量传递给javascript参数
- regex - 正则表达式模式:验证单次出现
- android - 库上的参数名称已更改