PluginProbe
Bookit — Booking & Appointment Calendar / 1.2
Bookit — Booking & Appointment Calendar v1.2
2.6.0.5 2.6.0.4 2.6.0.3 2.6.0.2 2.6.0.1 2.6.0 trunk 1.2 1.2.2 1.2.3 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 All 62 releases
bookit / api / user.php

user.php in Bookit — Booking & Appointment Calendar 1.2, at api/user.php

161 lines 4.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 class STM_Bookit_User
4 {
5 public static function get_user_token($user_id = false)
6 {
7 if (empty($user_id)) {
8 $user = wp_get_current_user();
9 if (empty($user->ID)) return false;
10 $user_id = $user->ID;
11 }
12
13 return get_option('bookit_user_' . $user_id, '');
14 }
15
16 public static function check_user_token()
17 {
18 if (empty($_GET['token'])) return false;
19 $given_token = sanitize_text_field($_GET['token']);
20 $parse_token = explode('|', $given_token);
21 $user_id = $parse_token[0];
22
23 $token = get_option('bookit_user_' . $user_id, '');
24
25 if ($token !== $given_token) return false;
26
27 return user_can($user_id, 'manage_options');
28 }
29
30 public static function if_logged_in()
31 {
32 if (empty($_GET['token'])) return false;
33 $given_token = sanitize_text_field($_GET['token']);
34 $parse_token = explode('|', $given_token);
35 $user_id = $parse_token[0];
36 $token = get_option('bookit_user_' . $user_id, '');
37 if ($token !== $given_token) return false;
38 return true;
39 }
40
41 public static function user_details()
42 {
43 if (empty($_GET['token'])) return false;
44 $given_token = sanitize_text_field($_GET['token']);
45 $parse_token = explode('|', $given_token);
46 $user_id = $parse_token[0];
47 $token = get_option('bookit_user_' . $user_id, '');
48 if ($token !== $given_token) return false;
49 $get_details = get_userdata($user_id);
50
51 $settings = get_option('bookit_settings', array());
52 $user_dashboard = $settings['user_dashboard'];
53 //$order_page = STM_Calendar::get_api_url() . '/' . get_the_title($user_dashboard);
54 $order_page = get_permalink($user_dashboard);
55
56 return [self::if_logged_in(), self::check_is_admin(), $user_id, $get_details->user_firstname, $get_details->user_email, $order_page];
57 }
58
59 public static function check_is_admin()
60 {
61 if (empty($_GET['token'])) return false;
62 $given_token = sanitize_text_field($_GET['token']);
63 $parse_token = explode('|', $given_token);
64 $user_id = $parse_token[0];
65
66 $token = get_option('bookit_user_' . $user_id, '');
67
68 if ($token !== $given_token) return false;
69
70 $user_meta = get_userdata($user_id);
71
72 if ($user_meta->roles[0] === "administrator") {
73 return true;
74 } else {
75 return false;
76 }
77 }
78
79 /*USER*/
80 public static function get_user($data = array())
81 {
82 if (STM_Bookit_User::if_logged_in() != false) {
83 return STM_Bookit_User::user_details()[2];
84 // return "logged in";
85 } else {
86
87 if ( STM_Bookit_Calendar::booking_types() === true ) {
88
89 if (empty($errors)) {
90 $user_data = array(
91 'user_login' => $data['email']['value'],
92 'user_pass' => $data['password']['value'],
93 'first_name' => $data['name']['value'],
94 'last_name' => '',
95 'user_email' => $data['email']['value']
96 );
97
98 $user_id = wp_insert_user($user_data);
99
100 if (!is_wp_error($user_id)) {
101 return $user_id;
102 } else {
103 return false;
104 }
105 }
106 }
107 // return "not logged in";
108 }
109 }
110
111 /*USER*/
112 static function get_guest_user($name, $email)
113 {
114 $user_id = '';
115
116 $args = array(
117 'post_type' => 'stm-users',
118 'posts_per_page' => '-1',
119 'post_status' => 'publish',
120 's' => $name,
121 'meta_query' => array(
122 array(
123 'key' => 'stm_user_email',
124 'value' => $email,
125 'compare' => '='
126 )
127 )
128 );
129
130 $q = new WP_Query($args);
131
132 if ($q->have_posts()) {
133 while ($q->have_posts()) {
134 $q->the_post();
135 $user_id = get_the_ID();
136 }
137 } else {
138 $user_id = STM_Bookit_User::create_user($name, $email);
139 }
140
141 wp_reset_postdata();
142
143 return $user_id;
144 }
145
146 static function create_user($name, $email)
147 {
148 $my_post = array(
149 'post_type' => 'stm-users',
150 'post_title' => $name,
151 'post_status' => 'publish',
152 );
153
154 $post_id = wp_insert_post($my_post);
155 update_post_meta($post_id, 'stm_user_email', $email);
156 update_post_meta($post_id, 'stm_user_name', $name);
157
158 return ($post_id);
159 }
160
161 }