WC_Product_Data_Store_CPT::get_data_for_lookup_table()protectedWC 3.6.0

Get data to save to a lookup table.

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

Хуков нет.

Возвращает

Массив.

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->get_data_for_lookup_table( $id, $table );
$id(int) (обязательный)
ID of object to update.
$table(строка) (обязательный)
Lookup table name.

Список изменений

С версии 3.6.0 Введена.

Код WC_Product_Data_Store_CPT::get_data_for_lookup_table() WC 8.7.0

protected function get_data_for_lookup_table( $id, $table ) {
	if ( 'wc_product_meta_lookup' === $table ) {
		$price_meta   = (array) get_post_meta( $id, '_price', false );
		$manage_stock = get_post_meta( $id, '_manage_stock', true );
		$stock        = 'yes' === $manage_stock ? wc_stock_amount( get_post_meta( $id, '_stock', true ) ) : null;
		$price        = wc_format_decimal( get_post_meta( $id, '_price', true ) );
		$sale_price   = wc_format_decimal( get_post_meta( $id, '_sale_price', true ) );
		return array(
			'product_id'     => absint( $id ),
			'sku'            => get_post_meta( $id, '_sku', true ),
			'virtual'        => 'yes' === get_post_meta( $id, '_virtual', true ) ? 1 : 0,
			'downloadable'   => 'yes' === get_post_meta( $id, '_downloadable', true ) ? 1 : 0,
			'min_price'      => reset( $price_meta ),
			'max_price'      => end( $price_meta ),
			'onsale'         => $sale_price && $price === $sale_price ? 1 : 0,
			'stock_quantity' => $stock,
			'stock_status'   => get_post_meta( $id, '_stock_status', true ),
			'rating_count'   => array_sum( array_map( 'intval', (array) get_post_meta( $id, '_wc_rating_count', true ) ) ),
			'average_rating' => get_post_meta( $id, '_wc_average_rating', true ),
			'total_sales'    => get_post_meta( $id, 'total_sales', true ),
			'tax_status'     => get_post_meta( $id, '_tax_status', true ),
			'tax_class'      => get_post_meta( $id, '_tax_class', true ),
		);
	}
	return array();
}