WC_REST_Webhooks_V1_Controller::get_items()
Get all webhooks.
Method of the class: WC_REST_Webhooks_V1_Controller{}
Hooks from the method
Return
WP_Error|WP_REST_Response
.
Usage
$WC_REST_Webhooks_V1_Controller = new WC_REST_Webhooks_V1_Controller(); $WC_REST_Webhooks_V1_Controller->get_items( $request );
- $request(WP_REST_Request) (required)
- Full details about the request.
WC_REST_Webhooks_V1_Controller::get_items() WC REST Webhooks V1 Controller::get items code WC 9.7.1
public function get_items( $request ) { $args = array(); $args['order'] = $request['order']; $args['orderby'] = $request['orderby']; $args['status'] = 'all' === $request['status'] ? '' : $request['status']; $args['include'] = implode( ',', $request['include'] ); $args['exclude'] = implode( ',', $request['exclude'] ); $args['limit'] = $request['per_page']; $args['search'] = $request['search']; $args['before'] = $request['before']; $args['after'] = $request['after']; if ( empty( $request['offset'] ) ) { $args['offset'] = 1 < $request['page'] ? ( $request['page'] - 1 ) * $args['limit'] : 0; } /** * Filter arguments, before passing to WC_Webhook_Data_Store->search_webhooks, when querying webhooks via the REST API. * * @param array $args Array of arguments for $wpdb->get_results(). * @param WP_REST_Request $request The current request. */ $prepared_args = apply_filters( 'woocommerce_rest_webhook_query', $args, $request ); unset( $prepared_args['page'] ); $prepared_args['paginate'] = true; // Get the webhooks. $webhooks = array(); $data_store = WC_Data_Store::load( 'webhook' ); $results = $data_store->search_webhooks( $prepared_args ); $webhook_ids = $results->webhooks; foreach ( $webhook_ids as $webhook_id ) { $data = $this->prepare_item_for_response( $webhook_id, $request ); $webhooks[] = $this->prepare_response_for_collection( $data ); } $response = rest_ensure_response( $webhooks ); $per_page = (int) $prepared_args['limit']; $page = ceil( ( ( (int) $prepared_args['offset'] ) / $per_page ) + 1 ); $total_webhooks = $results->total; $max_pages = $results->max_num_pages; $base = add_query_arg( $request->get_query_params(), rest_url( sprintf( '/%s/%s', $this->namespace, $this->rest_base ) ) ); $response->header( 'X-WP-Total', $total_webhooks ); $response->header( 'X-WP-TotalPages', $max_pages ); if ( $page > 1 ) { $prev_page = $page - 1; if ( $prev_page > $max_pages ) { $prev_page = $max_pages; } $prev_link = add_query_arg( 'page', $prev_page, $base ); $response->link_header( 'prev', $prev_link ); } if ( $max_pages > $page ) { $next_page = $page + 1; $next_link = add_query_arg( 'page', $next_page, $base ); $response->link_header( 'next', $next_link ); } return $response; }