Maison > Questions et réponses > le corps du texte
Je souhaite fusionner l'inventaire de deux produits ou plus basés sur WooCommerce SKU
.
Exemple : (Deux produits partageant le même inventaire)
(Trois produits ou plus partageant le même inventaire)
La plupart de nos coques de téléphone sont en transparent, je voulais donc que ces produits partagent le même inventaire.
P粉7446912052024-04-06 00:25:13
J'ai trouvé quelque chose sur Internet, le contenu est le suivant :
// 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');
Le seul problème est que lorsque le produit du sku1 est commandé, il met à jour la quantité en stock du sku1 et du sku2, mais pas si le sku2 est commandé. De plus, lorsque j'utilise le bouton de mise à jour (ce que j'ai fait depuis ici), il ne met pas à jour les deux, mais uniquement le produit que je mets à jour.