Automattic\WooCommerce\Admin\API\Reports

DataStore::remove_extra_records()protectedWC 1.0

Removes extra records from intervals so that only requested number of records get returned.

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

Хуков нет.

Возвращает

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

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

// protected - в коде основоного (родительского) или дочернего класса
$result = $this->remove_extra_records( $data, $page_no, $items_per_page, $db_interval_count, $expected_interval_count, $order_by, $order );
$data(stdClass) (обязательный) (передается по ссылке — &)
Data from whose intervals the records get removed.
$page_no(int) (обязательный)
Offset requested by the user.
$items_per_page(int) (обязательный)
Number of records requested by the user.
$db_interval_count(int) (обязательный)
Database interval count.
$expected_interval_count(int) (обязательный)
Expected interval count on the output.
$order_by(строка) (обязательный)
Order by field.
$order(строка) (обязательный)
ASC or DESC.

Код DataStore::remove_extra_records() WC 9.3.3

protected function remove_extra_records( &$data, $page_no, $items_per_page, $db_interval_count, $expected_interval_count, $order_by, $order ) {
	if ( 'date' === strtolower( $order_by ) ) {
		$offset = 0;
	} else {
		if ( 'asc' === strtolower( $order ) ) {
			$offset = ( $page_no - 1 ) * $items_per_page;
		} else {
			$offset = ( $page_no - 1 ) * $items_per_page - $db_interval_count;
		}
		$offset = $offset < 0 ? 0 : $offset;
	}
	$count = $expected_interval_count - ( $page_no - 1 ) * $items_per_page;
	if ( $count < 0 ) {
		$count = 0;
	} elseif ( $count > $items_per_page ) {
		$count = $items_per_page;
	}
	$data->intervals = array_slice( $data->intervals, $offset, $count );
}