完成WooCommerce订单后增加库存(而不是减少)



我目前正在使用WooCommerce进行WordPress项目,我需要一个非常特定的功能(不包括在WooCommerce中(:

订单完成后如何增加库存而不是减少库存?

到目前为止,我发现我可能需要使用WoocommerceAPI来完成该WC_AJAX::increase_order_item_stock();。尽管如此,我还是不太习惯使用复杂的 PHP...

你有一些思路来实现这一点吗?
也许使用插件(我没有找到(?还是使用原始代码?

总而言之:我想为一家餐厅建立一个网站,该网站具有库存管理功能,厨师可以从不同的供应商订购商品。因此,当厨师从woocommerce商店页面订购商品时,购买物品的库存必须增加而不是减少。

我尝试过不同的东西,例如"WC供应商"或"市场",但没有成功......

谢谢。

您可以尝试 这个自定义函数挂钩woocommerce_order_status_completed操作挂钩,当状态设置为已完成时,它将使用此订单的物料数量增加每个产品库存:

add_action( 'woocommerce_order_status_completed', 'action_on_order_completed' , 10, 1 );
function action_on_order_completed( $order_id )
{
    // Get an instance of the order object
    $order = wc_get_order( $order_id );
    // Iterating though each order items
    foreach ( $order->get_items() as $item_id => $item_values ) {
        // Item quantity
        $item_qty = $item_values['qty'];
        // getting the product ID (Simple and variable products)
        $product_id = $item_values['variation_id'];
        if( $product_id == 0 || empty($product_id) ) $product_id = $item_values['product_id'];
        // Get an instance of the product object
        $product = wc_get_product( $product_id );
        // Get the stock quantity of the product
        $product_stock = $product->get_stock_quantity();
        // Increase back the stock quantity
        wc_update_product_stock( $product, $item_qty, 'increase' );
    }
}

该代码适用于启用了自己的库存管理的简单或变量产品。 因此,您可能需要对其进行一些更改,具体取决于您的WooCommerce设置。这只是一个例子,给你一个想法,一种方法...

代码进入函数.php活动子主题(或主题(的文件或任何插件文件中。

此代码不会在WooCommerce版本2.6.x上引发错误,并且应该可以工作。

相关内容

  • 没有找到相关文章

最新更新