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.
Return
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 8.7.0
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 ); }