diff --git a/includes/core/rest/class-api-v1.php b/includes/core/rest/class-api-v1.php index e7de1394..a3aee5c2 100644 --- a/includes/core/rest/class-api-v1.php +++ b/includes/core/rest/class-api-v1.php @@ -1,9 +1,9 @@ invalid_auth(); } } - } } - /** * Retrieve the user ID based on the public key provided * @@ -116,10 +111,10 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { if ( false === $user ) { $user = $wpdb->get_var( $wpdb->prepare( - "SELECT user_id - FROM $wpdb->usermeta - WHERE meta_key = 'um_user_public_key' AND - meta_value = %s + "SELECT user_id + FROM $wpdb->usermeta + WHERE meta_key = 'um_user_public_key' AND + meta_value = %s LIMIT 1", $key ) ); @@ -134,106 +129,82 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { return false; } - /** - * Process Get users API Request + * Process Get users API Request. * - * @param $args + * @param array $args * * @return array */ public function get_users( $args ) { - /** - * @var int $number - * @var string $orderby - * @var string $order - * @var string $include - * @var string $exclude - */ - extract( $args ); - $response = array(); - if ( ! $number ) { - $number = 10; - } + $number = array_key_exists( 'number', $args ) && is_numeric( $args['number'] ) ? absint( $args['number'] ) : 10; + $orderby = array_key_exists( 'orderby', $args ) ? sanitize_key( $args['orderby'] ) : 'user_registered'; + $order = array_key_exists( 'order', $args ) ? sanitize_key( $args['order'] ) : 'desc'; - if ( ! $orderby ) { - $orderby = 'user_registered'; - } + $loop_a = array( + 'number' => $number, + 'orderby' => $orderby, + 'order' => $order, + ); - if ( ! $order ) { - $order = 'desc'; - } - - $loop_a = array( 'number' => $number, 'orderby' => $orderby, 'order' => $order ); - - if ( $include ) { - $include = explode(',', $include ); + if ( array_key_exists( 'include', $args ) ) { + $include = explode( ',', sanitize_text_field( $args['include'] ) ); $loop_a['include'] = $include; } - if ( $exclude ) { - $exclude = explode(',', $exclude ); + if ( array_key_exists( 'exclude', $args ) ) { + $exclude = explode( ',', sanitize_text_field( $args['exclude'] ) ); $loop_a['exclude'] = $exclude; } $loop = get_users( $loop_a ); foreach ( $loop as $user ) { - - unset( $user->data->user_status ); - unset( $user->data->user_activation_key ); - unset( $user->data->user_pass ); + unset( $user->data->user_status, $user->data->user_activation_key, $user->data->user_pass ); um_fetch_user( $user->ID ); foreach ( $user as $key => $val ) { - if ( $key != 'data' ) { + if ( 'data' !== $key ) { continue; } - $key = 'profile'; - $val->roles = $user->roles; - $val->first_name = um_user('first_name'); - $val->last_name = um_user('last_name'); - $val->account_status = um_user('account_status'); - $val->profile_pic_original = um_get_user_avatar_url('', 'original'); - $val->profile_pic_normal = um_get_user_avatar_url('', 200); - $val->profile_pic_small = um_get_user_avatar_url('', 40); - $val->cover_photo = $this->getsrc( um_user('cover_photo', 1000) ); + $val->roles = $user->roles; + $val->first_name = um_user( 'first_name' ); + $val->last_name = um_user( 'last_name' ); + $val->account_status = um_user( 'account_status' ); + $val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); + $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); + $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); + $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); /** - * UM hook + * Filters the output data for Rest API userdata call. * - * @type filter - * @title um_rest_userdata - * @description Change output data for Rest API userdata call - * @input_vars - * [{"var":"$value","type":"array","desc":"Output Data"}, - * {"var":"$user_id","type":"string","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * Force change the output data for Rest API userdata call. + * function my_custom_um_rest_userdata( $value, $user_id ) { * // your code here - * return $value; + * return $response; * } - * ?> + * add_filter( 'um_rest_userdata', 'my_custom_um_rest_userdata', 10, 2 ); */ - $val = apply_filters( 'um_rest_userdata', $val, $user->ID ); - $response[ $user->ID ] = $val; + $response[ $user->ID ] = apply_filters( 'um_rest_userdata', $val, $user->ID ); } } return $response; } - /** * Update user API query * @@ -242,26 +213,28 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { * @return array */ public function update_user( $args ) { - /** - * @var int $id - * @var string $data - * @var string $value - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! $id ) { + if ( empty( $args['id'] ) ) { $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } - if ( ! $data ) { + if ( empty( $args['data'] ) ) { $error['error'] = __( 'You need to provide data to update', 'ultimate-member' ); return $error; } + if ( ! array_key_exists( 'value', $args ) ) { + $error['error'] = __( 'You need to provide value to update', 'ultimate-member' ); + return $error; + } + + $id = absint( $args['id'] ); + $data = sanitize_text_field( $args['data'] ); + $value = sanitize_text_field( $args['value'] ); + um_fetch_user( $id ); switch ( $data ) { @@ -271,35 +244,16 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { break; case 'role': $wp_user_object = new \WP_User( $id ); - $old_roles = $wp_user_object->roles; + $old_roles = $wp_user_object->roles; $wp_user_object->set_role( $value ); - /** - * UM hook - * - * @type action - * @title um_after_member_role_upgrade - * @description Action after user role was changed - * @input_vars - * [{"var":"$new_roles","type":"array","desc":"New User Roles"}, - * {"var":"$old_roles","type":"array","desc":"Old roles"}] - * @change_log - * ["Since: 2.0"] - * @usage add_action( 'um_after_member_role_upgrade', 'function_name', 10, 2 ); - * @example - * - */ + /** This action is documented in includes/core/class-user.php */ do_action( 'um_after_member_role_upgrade', array( $value ), $old_roles, $id ); $response['success'] = __( 'User role has been changed.', 'ultimate-member' ); break; default: - update_user_meta( $id, $data, esc_attr( $value ) ); + update_user_meta( $id, $data, $value ); $response['success'] = __( 'User meta has been changed.', 'ultimate-member' ); break; } @@ -307,7 +261,6 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { return $response; } - /** * Process delete user via API * @@ -316,19 +269,16 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { * @return array */ public function delete_user( $args ) { - /** - * @var int $id - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! isset( $id ) ) { + if ( empty( $args['id'] ) ) { $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } + $id = absint( $args['id'] ); + $user = get_userdata( $id ); if ( ! $user ) { $error['error'] = __( 'Invalid user specified', 'ultimate-member' ); @@ -343,7 +293,6 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { return $response; } - /** * Process Get user API Request * @@ -352,145 +301,101 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { * @return array|mixed */ public function get_auser( $args ) { - /** - * @var int $um_id - * @var string $um_fields - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! isset( $id ) ) { - $error['error'] = __('You must provide a user ID','ultimate-member'); + if ( empty( $args['id'] ) ) { + $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } + $id = absint( $args['id'] ); $user = get_userdata( $id ); if ( ! $user ) { - $error['error'] = __('Invalid user specified','ultimate-member'); + $error['error'] = __( 'Invalid user specified', 'ultimate-member' ); return $error; } - unset( $user->data->user_status ); - unset( $user->data->user_activation_key ); - unset( $user->data->user_pass ); + unset( $user->data->user_status, $user->data->user_activation_key, $user->data->user_pass ); um_fetch_user( $user->ID ); - if ( isset( $fields ) && $fields ) { - $fields = explode(',', $fields ); - $response['ID'] = $user->ID; + if ( array_key_exists( 'fields', $args ) ) { + $fields = explode( ',', sanitize_text_field( $args['fields'] ) ); + $response['ID'] = $user->ID; $response['username'] = $user->user_login; foreach ( $fields as $field ) { switch ( $field ) { - default: - $response[ $field ] = ( um_profile( $field ) ) ? um_profile( $field ) : ''; + $profile_data = um_profile( $field ); + $response[ $field ] = $profile_data ? $profile_data : ''; /** - * UM hook + * Filters the output data for Rest API user authentication call. * - * @type filter - * @title um_rest_get_auser - * @description Change output data for Rest API user authentification call - * @input_vars - * [{"var":"$response","type":"array","desc":"Output Data"}, - * {"var":"$field","type":"string","desc":"Field Key"}, - * {"var":"$user_id","type":"int","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * Force change the output data for Rest API user authentication call. + * function my_custom_um_rest_get_auser( $response, $field, $user_id ) { * // your code here * return $response; * } - * ?> + * add_filter( 'um_rest_get_auser', 'my_custom_um_rest_get_auser', 10, 3 ); */ $response = apply_filters( 'um_rest_get_auser', $response, $field, $user->ID ); break; - case 'cover_photo': - $response['cover_photo'] = $this->getsrc( um_user('cover_photo', 1000) ); + $response['cover_photo'] = $this->getsrc( um_user( 'cover_photo', 1000 ) ); break; - case 'profile_pic': - $response['profile_pic_original'] = um_get_user_avatar_url('', 'original'); - $response['profile_pic_normal'] = um_get_user_avatar_url('', 200); - $response['profile_pic_small'] = um_get_user_avatar_url('', 40); + $response['profile_pic_original'] = um_get_user_avatar_url( '', 'original' ); + $response['profile_pic_normal'] = um_get_user_avatar_url( '', 200 ); + $response['profile_pic_small'] = um_get_user_avatar_url( '', 40 ); break; - case 'status': - $response['status'] = um_user('account_status'); + $response['status'] = um_user( 'account_status' ); break; - case 'role': //get priority role here $response['role'] = um_user( 'role' ); break; - case 'email': case 'user_email': - $response['email'] = um_user('user_email'); + $response['email'] = um_user( 'user_email' ); break; - } - } } else { - foreach ( $user as $key => $val ) { - if ( $key != 'data' ) { + if ( 'data' !== $key ) { continue; } - $key = 'profile'; - $val->roles = $user->roles; - $val->first_name = um_user( 'first_name' ); - $val->last_name = um_user('last_name' ); - $val->account_status = um_user( 'account_status' ); + $val->roles = $user->roles; + $val->first_name = um_user( 'first_name' ); + $val->last_name = um_user( 'last_name' ); + $val->account_status = um_user( 'account_status' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); - $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); - $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); - $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); + $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); + $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); + $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); - /** - * UM hook - * - * @type filter - * @title um_rest_userdata - * @description Change output data for Rest API userdata call - * @input_vars - * [{"var":"$value","type":"array","desc":"Output Data"}, - * {"var":"$user_id","type":"string","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $val = apply_filters( 'um_rest_userdata', $val, $user->ID ); - $response = $val; + /** This filter is documented in includes/core/rest/class-api-v1.php */ + $response = apply_filters( 'um_rest_userdata', $val, $user->ID ); } - } return $response; } - /** * Get source * @@ -499,13 +404,12 @@ if ( ! class_exists( 'um\core\rest\API_v1' ) ) { * @return string */ public function getsrc( $image ) { - if (preg_match('/query_vars['format'] ) ? $wp_query->query_vars['format'] : 'json'; /** - * UM hook + * Filters the REST API output format. JSON by default. * - * @type filter - * @title um_api_output_format - * @description UM Rest API output format - * @input_vars - * [{"var":"$format","type":"string","desc":"Format"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * Changing the REST API output format. + * function my_custom_um_api_output_format( $format ) { * // your code here + * $format = 'xml'; * return $format; * } - * ?> + * add_filter( 'um_api_output_format', 'my_custom_um_api_output_format' ); */ return apply_filters( 'um_api_output_format', $format ); } } -} \ No newline at end of file +} diff --git a/includes/core/rest/class-api-v2.php b/includes/core/rest/class-api-v2.php index dcf875d5..3874b827 100644 --- a/includes/core/rest/class-api-v2.php +++ b/includes/core/rest/class-api-v2.php @@ -1,13 +1,12 @@ get_var( $wpdb->prepare( - "SELECT user_id - FROM $wpdb->usermeta - WHERE meta_key = 'um_user_public_key' AND - meta_value = %s + "SELECT user_id + FROM $wpdb->usermeta + WHERE meta_key = 'um_user_public_key' AND + meta_value = %s LIMIT 1", $key ) ); @@ -133,107 +128,65 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { return false; } - /** * Process Get users API Request * - * @param $args + * @param array $args * * @return array */ public function get_users( $args ) { - /** - * @var int $um_number - * @var string $um_orderby - * @var string $um_order - * @var string $um_include - * @var string $um_exclude - */ - extract( $args ); - $response = array(); - if ( ! $um_number ) { - $um_number = 10; + $number = array_key_exists( 'um_number', $args ) && is_numeric( $args['um_number'] ) ? absint( $args['um_number'] ) : 10; + $orderby = array_key_exists( 'um_orderby', $args ) ? sanitize_key( $args['um_orderby'] ) : 'user_registered'; + $order = array_key_exists( 'um_order', $args ) ? sanitize_key( $args['um_order'] ) : 'desc'; + + $loop_a = array( + 'number' => $number, + 'orderby' => $orderby, + 'order' => $order, + ); + + if ( array_key_exists( 'um_include', $args ) ) { + $include = explode( ',', sanitize_text_field( $args['um_include'] ) ); + $loop_a['include'] = $include; } - if ( ! $um_orderby ) { - $um_orderby = 'user_registered'; - } - - if ( ! $um_order ) { - $um_order = 'desc'; - } - - $loop_a = array( 'number' => $um_number, 'orderby' => $um_orderby, 'order' => $um_order ); - - if ( $um_include ) { - $um_include = explode(',', $um_include ); - $loop_a['include'] = $um_include; - } - - if ( $um_exclude ) { - $um_exclude = explode(',', $um_exclude ); - $loop_a['exclude'] = $um_exclude; + if ( array_key_exists( 'um_exclude', $args ) ) { + $exclude = explode( ',', sanitize_text_field( $args['um_exclude'] ) ); + $loop_a['exclude'] = $exclude; } $loop = get_users( $loop_a ); foreach ( $loop as $user ) { - - unset( $user->data->user_status ); - unset( $user->data->user_activation_key ); - unset( $user->data->user_pass ); + unset( $user->data->user_status, $user->data->user_activation_key, $user->data->user_pass ); um_fetch_user( $user->ID ); foreach ( $user as $key => $val ) { - if ( $key != 'data' ) { + if ( 'data' !== $key ) { continue; } - $key = 'profile'; - $val->roles = $user->roles; - $val->first_name = um_user( 'first_name' ); - $val->last_name = um_user( 'last_name' ); - $val->account_status = um_user( 'account_status' ); + $val->roles = $user->roles; + $val->first_name = um_user( 'first_name' ); + $val->last_name = um_user( 'last_name' ); + $val->account_status = um_user( 'account_status' ); $val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); - $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); - $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); - $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); + $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); + $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); + $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); - /** - * UM hook - * - * @type filter - * @title um_rest_userdata - * @description Change output data for Rest API userdata call - * @input_vars - * [{"var":"$value","type":"array","desc":"Output Data"}, - * {"var":"$user_id","type":"string","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $val = apply_filters( 'um_rest_userdata', $val, $user->ID ); - - $response[ $user->ID ] = $val; + /** This filter is documented in includes/core/rest/class-api-v1.php */ + $response[ $user->ID ] = apply_filters( 'um_rest_userdata', $val, $user->ID ); } } return $response; } - /** * Update user API query * @@ -242,64 +195,47 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { * @return array */ public function update_user( $args ) { - /** - * @var int $um_id - * @var string $um_data - * @var string $um_value - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! $um_id ) { + if ( empty( $args['um_id'] ) ) { $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } - if ( ! $um_data ) { + if ( empty( $args['um_data'] ) ) { $error['error'] = __( 'You need to provide data to update', 'ultimate-member' ); return $error; } - um_fetch_user( $um_id ); + if ( ! array_key_exists( 'um_value', $args ) ) { + $error['error'] = __( 'You need to provide value to update', 'ultimate-member' ); + return $error; + } - switch ( $um_data ) { + $id = absint( $args['um_id'] ); + $data = sanitize_text_field( $args['um_data'] ); + $value = sanitize_text_field( $args['um_value'] ); + + um_fetch_user( $id ); + + switch ( $data ) { case 'status': - UM()->user()->set_status( $um_value ); + UM()->user()->set_status( $value ); $response['success'] = __( 'User status has been changed.', 'ultimate-member' ); break; case 'role': - $wp_user_object = new \WP_User( $um_id ); - $old_roles = $wp_user_object->roles; - $wp_user_object->set_role( $um_value ); + $wp_user_object = new \WP_User( $id ); + $old_roles = $wp_user_object->roles; + $wp_user_object->set_role( $value ); - /** - * UM hook - * - * @type action - * @title um_after_member_role_upgrade - * @description Action after user role was changed - * @input_vars - * [{"var":"$new_roles","type":"array","desc":"New User Roles"}, - * {"var":"$old_roles","type":"array","desc":"Old roles"}] - * @change_log - * ["Since: 2.0"] - * @usage add_action( 'um_after_member_role_upgrade', 'function_name', 10, 2 ); - * @example - * - */ - do_action( 'um_after_member_role_upgrade', array( $um_value ), $old_roles, $um_id ); + /** This action is documented in includes/core/class-user.php */ + do_action( 'um_after_member_role_upgrade', array( $value ), $old_roles, $id ); $response['success'] = __( 'User role has been changed.', 'ultimate-member' ); break; default: - update_user_meta( $um_id, $um_data, esc_attr( $um_value ) ); + update_user_meta( $id, $data, $value ); $response['success'] = __( 'User meta has been changed.', 'ultimate-member' ); break; } @@ -307,35 +243,31 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { return $response; } - /** - * Process delete user via API + * Process delete user via API. * - * @param $args + * @param array $args * * @return array */ public function delete_user( $args ) { - /** - * @var int $um_id - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! isset( $um_id ) ) { + if ( empty( $args['um_id'] ) ) { $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } - $user = get_userdata( $um_id ); + $id = absint( $args['um_id'] ); + + $user = get_userdata( $id ); if ( ! $user ) { $error['error'] = __( 'Invalid user specified', 'ultimate-member' ); return $error; } - um_fetch_user( $um_id ); + um_fetch_user( $id ); UM()->user()->delete(); $response['success'] = __( 'User has been successfully deleted.', 'ultimate-member' ); @@ -343,7 +275,6 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { return $response; } - /** * Process Get user API Request * @@ -352,88 +283,54 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { * @return array */ public function get_auser( $args ) { - /** - * @var int $um_id - * @var string $um_fields - */ - extract( $args ); - $response = array(); - $error = array(); + $error = array(); - if ( ! isset( $um_id ) ) { + if ( empty( $args['um_id'] ) ) { $error['error'] = __( 'You must provide a user ID', 'ultimate-member' ); return $error; } - $user = get_userdata( $um_id ); + $id = absint( $args['um_id'] ); + $user = get_userdata( $id ); if ( ! $user ) { - $error['error'] = __('Invalid user specified','ultimate-member'); + $error['error'] = __( 'Invalid user specified', 'ultimate-member' ); return $error; } - unset( $user->data->user_status ); - unset( $user->data->user_activation_key ); - unset( $user->data->user_pass ); + unset( $user->data->user_status, $user->data->user_activation_key, $user->data->user_pass ); um_fetch_user( $user->ID ); - if ( isset( $um_fields ) && $um_fields ) { - $um_fields = explode(',', $um_fields ); - $response['ID'] = $user->ID; + if ( array_key_exists( 'um_fields', $args ) ) { + $fields = explode( ',', sanitize_text_field( $args['um_fields'] ) ); + $response['ID'] = $user->ID; $response['username'] = $user->user_login; - foreach ( $um_fields as $field ) { + foreach ( $fields as $field ) { switch ( $field ) { - default: - $response[ $field ] = ( um_profile( $field ) ) ? um_profile( $field ) : ''; + $profile_data = um_profile( $field ); + $response[ $field ] = $profile_data ? $profile_data : ''; - /** - * UM hook - * - * @type filter - * @title um_rest_get_auser - * @description Change output data for Rest API user authentification call - * @input_vars - * [{"var":"$response","type":"array","desc":"Output Data"}, - * {"var":"$field","type":"string","desc":"Field Key"}, - * {"var":"$user_id","type":"int","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ + /** This filter is documented in includes/core/rest/class-api-v1.php */ $response = apply_filters( 'um_rest_get_auser', $response, $field, $user->ID ); break; - case 'cover_photo': $response['cover_photo'] = $this->getsrc( um_user( 'cover_photo', 1000 ) ); break; - case 'profile_pic': $response['profile_pic_original'] = um_get_user_avatar_url( '', 'original' ); - $response['profile_pic_normal'] = um_get_user_avatar_url( '', 200 ); - $response['profile_pic_small'] = um_get_user_avatar_url( '', 40 ); + $response['profile_pic_normal'] = um_get_user_avatar_url( '', 200 ); + $response['profile_pic_small'] = um_get_user_avatar_url( '', 40 ); break; - case 'status': $response['status'] = um_user( 'account_status' ); break; - case 'role': //get priority role here $response['role'] = um_user( 'role' ); break; - case 'email': case 'user_email': $response['email'] = um_user( 'user_email' ); @@ -441,55 +338,28 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { } } } else { - foreach ( $user as $key => $val ) { - if ( $key != 'data' ) { + if ( 'data' !== $key ) { continue; } - if ( $key == 'data' ) { - $key = 'profile'; - $val->roles = $user->roles; - $val->first_name = um_user( 'first_name' ); - $val->last_name = um_user( 'last_name' ); - $val->account_status = um_user( 'account_status' ); - $val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); - $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); - $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); - $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); - /** - * UM hook - * - * @type filter - * @title um_rest_userdata - * @description Change output data for Rest API userdata call - * @input_vars - * [{"var":"$value","type":"array","desc":"Output Data"}, - * {"var":"$user_id","type":"string","desc":"User ID"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ - $val = apply_filters( 'um_rest_userdata', $val, $user->ID ); - } - $response = $val; + $val->roles = $user->roles; + $val->first_name = um_user( 'first_name' ); + $val->last_name = um_user( 'last_name' ); + $val->account_status = um_user( 'account_status' ); + $val->profile_pic_original = um_get_user_avatar_url( '', 'original' ); + $val->profile_pic_normal = um_get_user_avatar_url( '', 200 ); + $val->profile_pic_small = um_get_user_avatar_url( '', 40 ); + $val->cover_photo = $this->getsrc( um_user( 'cover_photo', 1000 ) ); + + /** This filter is documented in includes/core/rest/class-api-v1.php */ + $response = apply_filters( 'um_rest_userdata', $val, $user->ID ); } - } return $response; } - /** * Get source * @@ -498,13 +368,12 @@ if ( ! class_exists( 'um\core\rest\API_v2' ) ) { * @return string */ public function getsrc( $image ) { - if (preg_match('/query_vars['um_format'] ) ? $wp_query->query_vars['um_format'] : 'json'; - /** - * UM hook - * - * @type filter - * @title um_api_output_format - * @description UM Rest API output format - * @input_vars - * [{"var":"$format","type":"string","desc":"Format"}] - * @change_log - * ["Since: 2.0"] - * @usage - * - * @example - * - */ + /** This filter is documented in includes/core/rest/class-api-v1.php */ return apply_filters( 'um_api_output_format', $format ); } } -} \ No newline at end of file +}