WC_Product_Grouped_Data_Store_CPT::update_prices_from_children()protectedWC 1.0

Loop over child products and update the grouped product prices.

Метод класса: WC_Product_Grouped_Data_Store_CPT{}

Хуки из метода

Возвращает

null. Ничего (null).

Использование

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->update_prices_from_children( $product );
$product(WC_Product) (обязательный) (передается по ссылке — &)
Product object.

Код WC_Product_Grouped_Data_Store_CPT::update_prices_from_children() WC 8.7.0

protected function update_prices_from_children( &$product ) {
	$child_prices = array();
	foreach ( $product->get_children( 'edit' ) as $child_id ) {
		$child = wc_get_product( $child_id );
		if ( $child ) {
			$child_prices[] = $child->get_price( 'edit' );
		}
	}
	$child_prices = array_filter( $child_prices );
	delete_post_meta( $product->get_id(), '_price' );
	delete_post_meta( $product->get_id(), '_sale_price' );
	delete_post_meta( $product->get_id(), '_regular_price' );

	if ( ! empty( $child_prices ) ) {
		add_post_meta( $product->get_id(), '_price', min( $child_prices ) );
		add_post_meta( $product->get_id(), '_price', max( $child_prices ) );
	}

	$this->update_lookup_table( $product->get_id(), 'wc_product_meta_lookup' );

	/**
	 * Fire an action for this direct update so it can be detected by other code.
	 *
	 * @since 3.6
	 * @param int $product_id Product ID that was updated directly.
	 */
	do_action( 'woocommerce_updated_product_price', $product->get_id() );
}