Wie kann man mehrere Produkte über ihre SKUs „verbinden'?
P粉466909449
P粉466909449 2024-04-05 08:53:52
0
1
3666

Ich möchte den Bestand von zwei oder mehr Produkten auf Basis von WooCommerce zusammenführen SKU.

Beispiel: (Zwei Produkte mit demselben Lagerbestand)

  • Transparente Handyhülle iPhone 11 – SKU 12345
  • Personalisierte iPhone 11-Hülle – SKU 56789

(Drei oder mehr Produkte teilen sich den gleichen Bestand)

  • Transparente iPhone 12-Handyhülle – SKU 12345
  • Personalisierte iPhone 12-Hülle – SKU 56789
  • Telefonhülle für iPhone 12-Serie – SKU 123456

Die meisten unserer Handyhüllen bestehen aus durchsichtigem Material, daher wollte ich, dass diese Produkte denselben Bestand haben.

P粉466909449
P粉466909449

Antworte allen(1)
P粉744691205

在网上找到了一些东西,内容是这样的:

// 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');

唯一的问题是,当订购了 sku1 的产品时,它会更新 sku1 和 sku2 的库存数量,但如果订购了 sku2,则不会。另外,当我使用更新按钮时(我从 此处)它不会更新两者,只会更新我正在更新的产品。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage