1
在WooCommerce我基本上需要設置的10股票數量爲4種獨立的產品,所以當有人購買這些產品的1整體庫存水平下降到9WooCommerce產品庫存數量爲多個項目
庫存數量因爲這些產品必須連接,因此當購買1時,所有這些產品的數量都會下降。
我不能簡單地將1件產品設置爲'可變產品'來達到此目的,因爲每件產品都必須是'簡單產品'。
有誰知道一個插件或建立WooCommerce的方式來實現這一目標嗎?
在WooCommerce我基本上需要設置的10股票數量爲4種獨立的產品,所以當有人購買這些產品的1整體庫存水平下降到9WooCommerce產品庫存數量爲多個項目
庫存數量因爲這些產品必須連接,因此當購買1時,所有這些產品的數量都會下降。
我不能簡單地將1件產品設置爲'可變產品'來達到此目的,因爲每件產品都必須是'簡單產品'。
有誰知道一個插件或建立WooCommerce的方式來實現這一目標嗎?
您可以試用此自定義函數,該函數使用掛鉤,首先獲取客戶訂單中已購買產品的最小股票價值,然後使用此股票價格更新所有產品。這是未經測試的,所以你將不得不給我一些反饋。
下面是該代碼:
add_action('woocommerce_thankyou', 'updating_product_unified_stock', 10, 1);
function unifying_product_stock($order_id){
$stock_updated = get_post_meta($order_id, 'stock_updated', true);
if(empty($stock_updated)):
// Inserting in the order meta data a custom field value to avoid repetition of this code,
// if the customer reload the "Order received" page…
update_post_meta($order_id, 'stock_updated', 'yes');
$products_stock_arr = array();
$products_ids = array();
// Getting the Order Object post data
$order = wc_get_order($order_id);
foreach ($order->get_items() as $item_id => $item) {
$product_stock = get_post_meta($item_id, '_stock', true);
$products_stock_arr[] = $product_stock; // adding the product stock in the array
}
// Get the smallest stock value in the array of stock values
$new_stock_number = min($products_stock_arr);
// get all published simple products
$all_products = get_posts(array(
'post_type' => 'product',
'posts_per_page' => -1,
'post_status' => 'publish'
));
// Iterating through each published product
// UPDATING PRODUCTS WITH THE NEW STOCK VALUE:
foreach($all_products as $product)
update_post_meta($product_id, '_stock', $new_stock_number);
endif;
}
此代碼放在你的活躍兒童主題(或主題)的function.php文件或也以任何插件的PHP文件。
當你想觸發這個事件?只有在訂單完成? –