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.
Return
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 9.7.1
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( 'instock' ); } 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; }