WC_Admin_Post_Types::maybe_update_stock_status
Apply product type constraints to stock status.
Method of the class: WC_Admin_Post_Types{}
No Hooks.
Returns
WC_Product. The supplied product, or the synced product if it was a variable product.
Usage
// private - for code of main (parent) class only $result = $this->maybe_update_stock_status( $product, $stock_status );
- $product(WC_Product) (required)
- The product whose stock status will be adjusted.
- $stock_status(string|null) (required)
- The stock status to use for adjustment, or null if no new stock status has been supplied in the request.
WC_Admin_Post_Types::maybe_update_stock_status() WC Admin Post Types::maybe update stock status code WC 10.6.2
private function maybe_update_stock_status( $product, $stock_status ) {
if ( $product->is_type( ProductType::EXTERNAL ) ) {
// External products are always in stock.
$product->set_stock_status( ProductStockStatus::IN_STOCK );
} elseif ( isset( $stock_status ) ) {
if ( $product->is_type( ProductType::VARIABLE ) && ! $product->get_manage_stock() ) {
// Stock status is determined by children.
foreach ( $product->get_children() as $child_id ) {
$child = wc_get_product( $child_id );
if ( ! $product->get_manage_stock() ) {
$child->set_stock_status( $stock_status );
$child->save();
}
}
$product = WC_Product_Variable::sync( $product, false );
} else {
$product->set_stock_status( $stock_status );
}
}
return $product;
}