*/ protected function input_properties(): array { return array( 'id' => array( 'type' => 'integer', 'description' => __( 'Customer user id.', 'acrossai-abilities-manager' ) ), 'include_personal_data' => array( 'type' => 'boolean', 'default' => false, 'description' => __( 'Include name, email, username and addresses.', 'acrossai-abilities-manager' ) ), ); } /** * @since 0.0.34 * @return array */ protected function required_input(): array { return array( 'id' ); } /** * @since 0.0.34 * @return array */ protected function output_properties(): array { return array( 'customer' => array( 'type' => 'object', 'additionalProperties' => true ), ); } /** * @since 0.0.34 * @return array */ protected function annotations(): array { return array( 'readonly' => true, 'destructive' => false, 'idempotent' => true, ); } /** * @since 0.0.34 * @param array $input Input. * @return array|WP_Error */ protected function run( array $input ) { $customer = Customer_Repository::get( (int) $input['id'], ! empty( $input['include_personal_data'] ) ); return is_wp_error( $customer ) ? $customer : array( 'customer' => $customer ); } }