WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Получай пассивный доход от сайта с помощью браузерных PUSH уведомлений
функция не описана

WC_Order_Data_Store_CPT::prime_refund_caches_for_order() private WC 1.0

Prime refund cache for orders.

{} Это метод класса: WC_Order_Data_Store_CPT{}

Хуков нет.

Возвращает

null. Ничего.

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

// private - только в коде основоного (родительского) класса
$result = $this->prime_refund_caches_for_order( $order_ids, $query_vars );
$order_ids(массив) (обязательный)
Order Ids to prime cache for.
$query_vars(массив) (обязательный)
Query vars for the query.

Код WC_Order_Data_Store_CPT::prime_refund_caches_for_order() WC 5.3.0

<?php
private function prime_refund_caches_for_order( $order_ids, $query_vars ) {
	if ( ! isset( $query_vars['type'] ) || ! ( 'shop_order' === $query_vars['type'] ) ) {
		return;
	}
	if ( isset( $query_vars['fields'] ) && 'all' !== $query_vars['fields'] ) {
		if ( is_array( $query_vars['fields'] ) && ! in_array( 'refunds', $query_vars['fields'] ) ) {
			return;
		}
	}
	$cache_keys_mapping = array();
	foreach ( $order_ids as $order_id ) {
		$cache_keys_mapping[ $order_id ] = WC_Cache_Helper::get_cache_prefix( 'orders' ) . 'refunds' . $order_id;
	}
	$non_cached_ids = array();
	$cache_values = wc_cache_get_multiple( array_values( $cache_keys_mapping ), 'orders' );
	foreach ( $order_ids as $order_id ) {
		if ( false === $cache_values[ $cache_keys_mapping[ $order_id ] ] ) {
			$non_cached_ids[] = $order_id;
		}
	}
	if ( empty( $non_cached_ids ) ) {
		return;
	}

	$refunds = wc_get_orders(
		array(
			'type'   => 'shop_order_refund',
			'post_parent__in' => $non_cached_ids,
			'limit'  => - 1,
		)
	);
	$order_refunds = array_reduce(
		$refunds,
		function ( $order_refunds_array, WC_Order_Refund $refund ) {
			if ( ! isset( $order_refunds_array[ $refund->get_parent_id() ] ) ) {
				$order_refunds_array[ $refund->get_parent_id() ] = array();
			}
			$order_refunds_array[ $refund->get_parent_id() ][] = $refund;
			return $order_refunds_array;
		},
		array()
	);
	foreach ( $non_cached_ids as $order_id ) {
		$refunds = array();
		if ( isset( $order_refunds[ $order_id ] ) ) {
			$refunds = $order_refunds[ $order_id ];
		}
		wp_cache_set( $cache_keys_mapping[ $order_id ], $refunds, 'orders' );
	}
}