首页 > 解决方案 > 如何在 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' );```

标签: wordpresswoocommercestatus

解决方案


推荐阅读