ID)) return false; $user_id = $user->ID; } return get_option('bookit_user_' . $user_id, ''); } public static function check_user_token() { if (empty($_GET['token'])) return false; $given_token = sanitize_text_field($_GET['token']); $parse_token = explode('|', $given_token); $user_id = $parse_token[0]; $token = get_option('bookit_user_' . $user_id, ''); if ($token !== $given_token) return false; return user_can($user_id, 'manage_options'); } public static function if_logged_in() { if (empty($_GET['token'])) return false; $given_token = sanitize_text_field($_GET['token']); $parse_token = explode('|', $given_token); $user_id = $parse_token[0]; $token = get_option('bookit_user_' . $user_id, ''); if ($token !== $given_token) return false; return true; } public static function user_details() { if (empty($_GET['token'])) return false; $given_token = sanitize_text_field($_GET['token']); $parse_token = explode('|', $given_token); $user_id = $parse_token[0]; $token = get_option('bookit_user_' . $user_id, ''); if ($token !== $given_token) return false; $get_details = get_userdata($user_id); $settings = get_option('bookit_settings', array()); $user_dashboard = $settings['user_dashboard']; //$order_page = STM_Calendar::get_api_url() . '/' . get_the_title($user_dashboard); $order_page = get_permalink($user_dashboard); return [self::if_logged_in(), self::check_is_admin(), $user_id, $get_details->user_firstname, $get_details->user_email, $order_page]; } public static function check_is_admin() { if (empty($_GET['token'])) return false; $given_token = sanitize_text_field($_GET['token']); $parse_token = explode('|', $given_token); $user_id = $parse_token[0]; $token = get_option('bookit_user_' . $user_id, ''); if ($token !== $given_token) return false; $user_meta = get_userdata($user_id); if ($user_meta->roles[0] === "administrator") { return true; } else { return false; } } /*USER*/ public static function get_user($data = array()) { if (STM_Bookit_User::if_logged_in() != false) { return STM_Bookit_User::user_details()[2]; // return "logged in"; } else { if ( STM_Bookit_Calendar::booking_types() === true ) { if (empty($errors)) { $user_data = array( 'user_login' => $data['email']['value'], 'user_pass' => $data['password']['value'], 'first_name' => $data['name']['value'], 'last_name' => '', 'user_email' => $data['email']['value'] ); $user_id = wp_insert_user($user_data); if (!is_wp_error($user_id)) { return $user_id; } else { return false; } } } // return "not logged in"; } } /*USER*/ static function get_guest_user($name, $email) { $user_id = ''; $args = array( 'post_type' => 'stm-users', 'posts_per_page' => '-1', 'post_status' => 'publish', 's' => $name, 'meta_query' => array( array( 'key' => 'stm_user_email', 'value' => $email, 'compare' => '=' ) ) ); $q = new WP_Query($args); if ($q->have_posts()) { while ($q->have_posts()) { $q->the_post(); $user_id = get_the_ID(); } } else { $user_id = STM_Bookit_User::create_user($name, $email); } wp_reset_postdata(); return $user_id; } static function create_user($name, $email) { $my_post = array( 'post_type' => 'stm-users', 'post_title' => $name, 'post_status' => 'publish', ); $post_id = wp_insert_post($my_post); update_post_meta($post_id, 'stm_user_email', $email); update_post_meta($post_id, 'stm_user_name', $name); return ($post_id); } }