/
edit_profile.php
executable file
·55 lines (45 loc) · 2.09 KB
/
edit_profile.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
add_action('rest_api_init', function ($server) {
register_rest_route(STM_LMS_API, '/account/edit_profile', array(
array(
'methods' => 'POST',
'callback' => function ($request) {
$token = $request->get_header('token');
$user_token = stm_lms_api_token($token);
if (is_wp_error($user_token)) return $user_token;
$user_id = (empty($user_id)) ? $user_token : $user_id;
$r = array(
'modified' => array(),
'values' => array()
);
/*Text Fields*/
$fields = STM_LMS_User::extra_fields();
$fields = array_merge($fields, STM_LMS_User::additional_fields());
$input_data = array();
foreach ($fields as $field_key => $field) {
$user_data = $request->get_param($field_key);
if (empty($user_data)) continue;
$r['values'][$field_key] = $input_data[$field_key] = sanitize_text_field($user_data);
$r['modified'][$field_key] = update_user_meta($user_id, $field_key, sanitize_text_field($user_data));
}
/*PASSWORD CHANGE*/
if (!empty($fields['password'])) {
wp_set_password($fields['password'], $user_id);
$r['modified']['password'] = true;
}
$files = $request->get_file_params();
$avatar = (!empty($files['file'])) ? $files['file'] : '';
if (!empty($avatar)) {
$file = STM_LMS_User::stm_lms_change_avatar(array('id' => $user_id), $files, true);
if (empty($file['error'])) {
$r['modified']['file'] = true;
$r['values']['file'] = $file['file'];
} else {
return new WP_Error('demo_mode', $file['message'], array('status' => 400));
}
}
return $r;
},
)
));
});