# bookit/1.2/api/user.php

Bookit — Booking &amp; Appointment Calendar, version 1.2. 161 lines.

- Page: https://pluginprobe.com/plugins/bookit/1.2/code/api/user.php
- Raw: https://pluginprobe.com/plugins/bookit/1.2/raw/api/user.php
- Modified: 2019-04-16T06:53:52+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/bookit/1.2/code/api/user.php#L10-L20`.

```php
<?php

class STM_Bookit_User
{
    public static function get_user_token($user_id = false)
    {
        if (empty($user_id)) {
            $user = wp_get_current_user();
            if (empty($user->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);
    }

}
```
