我目前正在使用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上引发错误,并且应该可以工作。