Automattic\WooCommerce\Internal\Admin\Orders
ListTable::prepare_items()
Prepares the list of items for displaying.
Метод класса: ListTable{}
Хуки из метода
Возвращает
null
. Ничего (null).
Использование
$ListTable = new ListTable(); $ListTable->prepare_items();
Код ListTable::prepare_items() ListTable::prepare items WC 9.3.3
public function prepare_items() { $limit = $this->get_items_per_page( 'edit_' . $this->order_type . '_per_page' ); $this->order_query_args = array( 'limit' => $limit, 'page' => $this->get_pagenum(), 'paginate' => true, 'type' => $this->order_type, ); foreach ( array( 'status', 's', 'm', '_customer_user', 'search-filter' ) as $query_var ) { $this->request[ $query_var ] = sanitize_text_field( wp_unslash( $_REQUEST[ $query_var ] ?? '' ) ); } /** * Allows 3rd parties to filter the initial request vars before defaults and other logic is applied. * * @param array $request Request to be passed to `wc_get_orders()`. * * @since 7.3.0 */ $this->request = apply_filters( 'woocommerce_' . $this->order_type . '_list_table_request', $this->request ); $this->set_status_args(); $this->set_order_args(); $this->set_date_args(); $this->set_customer_args(); $this->set_search_args(); /** * Provides an opportunity to modify the query arguments used in the (Custom Order Table-powered) order list * table. * * @since 6.9.0 * * @param array $query_args Arguments to be passed to `wc_get_orders()`. */ $order_query_args = (array) apply_filters( 'woocommerce_order_list_table_prepare_items_query_args', $this->order_query_args ); /** * Same as `woocommerce_order_list_table_prepare_items_query_args` but for a specific order type. * * @param array $query_args Arguments to be passed to `wc_get_orders()`. * * @since 7.3.0 */ $order_query_args = apply_filters( 'woocommerce_' . $this->order_type . '_list_table_prepare_items_query_args', $order_query_args ); // We must ensure the 'paginate' argument is set. $order_query_args['paginate'] = true; $orders = wc_get_orders( $order_query_args ); $this->items = $orders->orders; $max_num_pages = $orders->max_num_pages; // Check in case the user has attempted to page beyond the available range of orders. if ( 0 === $max_num_pages && $this->order_query_args['page'] > 1 ) { $count_query_args = $order_query_args; $count_query_args['page'] = 1; $count_query_args['limit'] = 1; $order_count = wc_get_orders( $count_query_args ); $max_num_pages = (int) ceil( $order_count->total / $order_query_args['limit'] ); } $this->set_pagination_args( array( 'total_items' => $orders->total ?? 0, 'per_page' => $limit, 'total_pages' => $max_num_pages, ) ); // Are we inside the trash? $this->is_trash = 'trash' === $this->request['status']; }