Automattic\WooCommerce\Admin\API\Reports
DataStore::remove_extra_records
Removes extra records from intervals so that only requested number of records get returned.
Method of the class: DataStore{}
No Hooks.
Returns
null. Nothing (null).
Usage
// protected - for code of main (parent) or child class $result = $this->remove_extra_records( $data, $page_no, $items_per_page, $db_interval_count, $expected_interval_count, $order_by, $order );
- $data(stdClass) (required) (passed by reference — &)
- Data from whose intervals the records get removed.
- $page_no(int) (required)
- Offset requested by the user.
- $items_per_page(int) (required)
- Number of records requested by the user.
- $db_interval_count(int) (required)
- Database interval count.
- $expected_interval_count(int) (required)
- Expected interval count on the output.
- $order_by(string) (required)
- Order by field.
- $order(string) (required)
- ASC or DESC.
DataStore::remove_extra_records() DataStore::remove extra records code WC 10.3.6
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 );
}