Skip to content
This repository was archived by the owner on Sep 24, 2018. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 30 additions & 3 deletions lib/endpoints/class-wp-rest-users-controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ public function get_items( $request ) {
'id' => 'ID',
'name' => 'display_name',
'registered_date' => 'registered',
);
);
$prepared_args['orderby'] = $orderby_possibles[ $request['orderby'] ];
$prepared_args['search'] = $request['search'];

Expand All @@ -98,6 +98,13 @@ public function get_items( $request ) {
$request['context'] = 'embed';
}

/**
* Filter arguments, before passing to WP_User_Query, when querying users via the REST API
*
* @see https://codex.wordpress.org/Class_Reference/WP_User_Query
* @param array $prepared_args Arguments for WP_User_Query
* @param WP_REST_Request $request The current request
*/
$prepared_args = apply_filters( 'rest_user_query', $prepared_args, $request );

$query = new WP_User_Query( $prepared_args );
Expand Down Expand Up @@ -227,6 +234,13 @@ public function create_item( $request ) {

$this->update_additional_fields_for_object( $user, $request );

/**
* Fires after a user is created via the REST API
*
* @param object $user Data used to create user (not a WP_User object)
* @param WP_REST_Request $request Request object.
* @param bool $bool A boolean that is false.
*/
do_action( 'rest_insert_user', $user, $request, false );

$response = $this->get_item( array(
Expand Down Expand Up @@ -458,6 +472,13 @@ public function prepare_item_for_response( $user, $request ) {

$data->add_links( $this->prepare_links( $user ) );

/**
* Filter user data before returning via the REST API
*
* @param WP_REST_Response $data Response data
* @param object $user User object used to create response
* @param WP_REST_Request $request Request object.
*/
return apply_filters( 'rest_prepare_user', $data, $user, $request );
}

Expand Down Expand Up @@ -529,6 +550,12 @@ protected function prepare_item_for_database( $request ) {
$prepared_user->user_url = $request['url'];
}

/**
* Filter user data before inserting user via REST API
*
* @param object $prepared_user User object.
* @param WP_REST_Request $request Request object.
*/
return apply_filters( 'rest_pre_insert_user', $prepared_user, $request );
}

Expand Down Expand Up @@ -594,7 +621,7 @@ public function get_item_schema() {
'description' => 'All capabilities assigned to the user.',
'type' => 'object',
'context' => array( 'view', 'edit' ),
),
),
'description' => array(
'description' => 'Description of the object.',
'type' => 'string',
Expand All @@ -615,7 +642,7 @@ public function get_item_schema() {
'type' => 'object',
'context' => array( 'edit' ),
'readonly' => true,
),
),
'first_name' => array(
'description' => 'First name for the object.',
'type' => 'string',
Expand Down