WC_Product_Grouped_Data_Store_CPT::update_prices_from_children
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 Product Grouped Data Store CPT::update prices from children WC 10.6.2
protected function update_prices_from_children( &$product ) {
$product_id = $product->get_id();
$child_prices = array();
$child_ids = $product->get_children( 'edit' );
if ( ! empty( $child_ids ) ) {
_prime_post_caches( $child_ids );
foreach ( $child_ids 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_id, '_price' );
delete_post_meta( $product_id, '_sale_price' );
delete_post_meta( $product_id, '_regular_price' );
if ( ! empty( $child_prices ) ) {
add_post_meta( $product_id, '_price', min( $child_prices ) );
add_post_meta( $product_id, '_price', max( $child_prices ) );
}
$this->update_lookup_table( $product_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_id );
}