Woocommerce 父sku的库存必须等于所有变体的库存

Woocommerce 父sku的库存必须等于所有变体的库存,woocommerce,Woocommerce,我有不同的库存项目,所有这些项目都有库存管理;问题是,当我卖出一个库存变化项目时,父项库存数量不会减少 示例:-我有一个父代码,它是一件T恤衫和3个S/M/L变体。这些变体的组合库存值为30(每个尺寸10),然后我希望我的父代码也显示库存值为30;目前,当我出售库存变化项目时,它只会减少该项目的库存,而不是父项目(sku) 是否有插件或代码可以让我这样做?我测试了代码,它工作正常,但请在使其生效之前再进行一些测试。代码转到主题或子主题的functions.php add_action( 'woo

我有不同的库存项目,所有这些项目都有库存管理;问题是,当我卖出一个库存变化项目时,父项库存数量不会减少

示例:-我有一个父代码,它是一件T恤衫和3个S/M/L变体。这些变体的组合库存值为30(每个尺寸10),然后我希望我的父代码也显示库存值为30;目前,当我出售库存变化项目时,它只会减少该项目的库存,而不是父项目(sku)


是否有插件或代码可以让我这样做?

我测试了代码,它工作正常,但请在使其生效之前再进行一些测试。代码转到主题或子主题的functions.php

add_action( 'woocommerce_reduce_order_stock', 'lets_reduce_parent' );

function lets_reduce_parent( $order_id ) {
  $order = wc_get_order( $order_id );
  foreach( $order->get_items() as $item_id => $item ){
      $parent_id = $item->get_product_id();
      $child_id = $item->get_variation_id();
      $quantity = $item->get_quantity();

      if($child_id == 0) return;
      else
      {
          $parent_product = wc_get_product( $parent_id );
          $stock = $parent_product->get_stock_quantity();
          $new_stock = $stock - $quantity;
          wc_update_product_stock( $parent_product, $quantity, 'decrease' );
          $order->add_order_note( "Parent Product ID: $parent_id - Stock Reduced: $stock -> $new_stock");
      }
  }
}
参考-1:

参考-2:


我希望这会有所帮助。如果您有任何问题,请通知我。祝您愉快。

Nick,您指导我的页面提到了一个“默认WoocomRecce产品类别小部件”,我似乎找不到这个小部件。非常感谢您的帮助。请将整个代码复制并粘贴到主题(或子主题)的functions.php请注意订单取消/退款,因为此代码仅适用于减少库存量。