PluginProbe
WooCommerce / 11.1.0-beta.1
WooCommerce v11.1.0-beta.1
11.1.0 11.1.0-rc.2 11.1.0-rc.1 11.1.0-beta.2 11.1.0-beta.1 11.0.1 11.0.0 11.0.0-rc.3 11.0.0-rc.2 11.0.0-rc.1 11.0.0-beta.2 11.0.0-beta.1 10.9.4 10.9.3 10.9.2 10.9.1 10.9.0 10.9.0-rc.1 10.9.0-beta.2 10.9.0-beta.1 10.8.1 10.8.0 10.8.0-rc.1 10.8.0-beta.2 10.8.0-beta.1 All 648 releases
woocommerce / src / Admin / API / Customers.php
Customers.php
90 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * REST API Customers Controller
4 *
5 * Handles requests to /customers/*
6 */
7
8 namespace Automattic\WooCommerce\Admin\API;
9
10 defined( 'ABSPATH' ) || exit;
11
12 /**
13 * Customers controller.
14 *
15 * @internal
16 * @extends \Automattic\WooCommerce\Admin\API\Reports\Customers\Controller
17 */
18 class Customers extends \Automattic\WooCommerce\Admin\API\Reports\Customers\Controller {
19
20 /**
21 * Route base.
22 *
23 * @var string
24 */
25 protected $rest_base = 'customers';
26
27 /**
28 * Register the routes for customers.
29 */
30 public function register_routes() {
31 register_rest_route(
32 $this->namespace,
33 '/' . $this->rest_base,
34 array(
35 array(
36 'methods' => \WP_REST_Server::READABLE,
37 'callback' => array( $this, 'get_items' ),
38 'permission_callback' => array( $this, 'get_items_permissions_check' ),
39 'args' => $this->get_collection_params(),
40 ),
41 'schema' => array( $this, 'get_public_item_schema' ),
42 )
43 );
44
45 register_rest_route(
46 $this->namespace,
47 '/' . $this->rest_base . '/(?P<id>[\d-]+)',
48 array(
49 'args' => array(
50 'id' => array(
51 'description' => __( 'Unique ID for the resource.', 'woocommerce' ),
52 'type' => 'integer',
53 ),
54 ),
55 array(
56 'methods' => \WP_REST_Server::READABLE,
57 'callback' => array( $this, 'get_item' ),
58 'permission_callback' => array( $this, 'get_items_permissions_check' ),
59 'args' => $this->get_collection_params(),
60 ),
61 'schema' => array( $this, 'get_public_item_schema' ),
62 )
63 );
64 }
65
66 /**
67 * Maps query arguments from the REST request.
68 *
69 * @param array $request Request array.
70 * @return array
71 */
72 protected function prepare_reports_query( $request ) {
73 $args = parent::prepare_reports_query( $request );
74 $args['customers'] = $request['include'];
75 return $args;
76 }
77
78 /**
79 * Get the query params for collections.
80 *
81 * @return array
82 */
83 public function get_collection_params() {
84 $params = parent::get_collection_params();
85 $params['include'] = $params['customers'];
86 unset( $params['customers'] );
87 return $params;
88 }
89 }
90