Rumah > Soal Jawab > teks badan
Saya ingin menggabungkan inventori dua atau lebih produk berdasarkan WooCommerce SKU
.
Contoh: (Dua produk berkongsi inventori yang sama)
(Tiga atau lebih produk berkongsi inventori yang sama)
Kebanyakan sarung telefon kami diperbuat daripada clear, jadi saya mahu produk ini berkongsi inventori yang sama.
P粉7446912052024-04-06 00:25:13
Saya jumpa sesuatu di Internet, kandungannya seperti berikut:
// Get the order object $order = wc_get_order($order_id); // Loop through order items foreach ($order->get_items() as $item_id => $item) { $product = $item->get_product(); $product_sku = $product->get_sku(); // Define your SKU mappings $sku_mapping = array( 'sku1' => array('sku2'), 'sku3' => array('sku4', 'sku5'), 'sku6' => array('sku7', 'sku8', 'sku9'), ); // Check if the product SKU exists in the mapping if (isset($sku_mapping[$product_sku])) { $linked_skus = $sku_mapping[$product_sku]; // Update the stock quantities for linked products foreach ($linked_skus as $linked_sku) { $linked_product = wc_get_product_id_by_sku($linked_sku); if ($linked_product) { $linked_stock_quantity = get_post_meta($linked_product, '_stock', true); $updated_stock_quantity = $linked_stock_quantity - $item->get_quantity(); update_post_meta($linked_product, '_stock', $updated_stock_quantity); } } } } } add_action('woocommerce_new_order', 'custom_sync_stock_on_order'); add_action('woocommerce_order_status_processing', 'custom_sync_stock_on_order');
Satu-satunya masalah ialah apabila produk sku1 ditempah, ia mengemas kini kuantiti stok sku1 dan sku2, tetapi tidak jika sku2 ditempah. Selain itu, apabila saya menggunakan butang kemas kini (yang saya lakukan dari di sini) ia tidak mengemas kini kedua-duanya, hanya produk yang saya kemas kini.