Bagaimana untuk "menyambung" berbilang produk menggunakan SKU mereka?
P粉466909449
P粉466909449 2024-04-05 08:53:52
0
1
3483

Saya ingin menggabungkan inventori dua atau lebih produk berdasarkan WooCommerce SKU.

Contoh: (Dua produk berkongsi inventori yang sama)

  • Sarung telefon lutsinar iPhone 11 - SKU 12345
  • Sarung iPhone 11 yang diperibadikan - SKU 56789

(Tiga atau lebih produk berkongsi inventori yang sama)

  • Sarung Telefon Lutsinar iPhone 12 - SKU 12345
  • Sarung iPhone 12 yang diperibadikan - SKU 56789
  • Sarung Telefon Siri iPhone 12 - SKU 123456

Kebanyakan sarung telefon kami diperbuat daripada clear, jadi saya mahu produk ini berkongsi inventori yang sama.

P粉466909449
P粉466909449

membalas semua(1)
P粉744691205

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!