protected function prepare_item_for_database($request)
{
$prepared_user = new stdClass();
$schema = $this->get_item_schema();
// required arguments.
if (isset($request['email']) && !empty($schema['properties']['email'])) {
$prepared_user->user_email = $request['email'];
}
if (isset($request['username']) && !empty($schema['properties']['username'])) {
$prepared_user->user_login = $request['username'];
}
if (isset($request['password']) && !empty($schema['properties']['password'])) {
$prepared_user->user_pass = $request['password'];
}
// optional arguments.
if (isset($request['id'])) {
$prepared_user->ID = absint($request['id']);
}
if (isset($request['name']) && !empty($schema['properties']['name'])) {
$prepared_user->display_name = $request['name'];
}
if (isset($request['first_name']) && !empty($schema['properties']['first_name'])) {
$prepared_user->first_name = $request['first_name'];
}
if (isset($request['last_name']) && !empty($schema['properties']['last_name'])) {
$prepared_user->last_name = $request['last_name'];
}
if (isset($request['nickname']) && !empty($schema['properties']['nickname'])) {
$prepared_user->nickname = $request['nickname'];
}
if (isset($request['slug']) && !empty($schema['properties']['slug'])) {
$prepared_user->user_nicename = $request['slug'];
}
if (isset($request['description']) && !empty($schema['properties']['description'])) {
$prepared_user->description = $request['description'];
}
if (isset($request['url']) && !empty($schema['properties']['url'])) {
$prepared_user->user_url = $request['url'];
}
if (isset($request['locale']) && !empty($schema['properties']['locale'])) {
$prepared_user->locale = $request['locale'];
}
// setting roles will be handled outside of this function.
if (isset($request['roles'])) {
$prepared_user->role = false;
}
/**
* Filters user data before insertion via the REST API.
*
* @since 4.7.0
*
* @param object $prepared_user User object.
* @param WP_REST_Request $request Request object.
*/
return apply_filters('rest_pre_insert_user', $prepared_user, $request);
}