File: /mnt/data/truelysell-wp/carwash/wp-content/plugins/truelysell-core/templates/my-account.php
<?php
/* Get user info. */
global $wp_roles;
$current_user = wp_get_current_user();
$roles = $current_user->roles;
$role = array_shift( $roles );
$template_loader = new Truelysell_Core_Template_Loader;
if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) : ?>
<div class="notification success closeable alert alert-success alert-dismissible mb-4"><?php esc_html_e('Your profile has been updated.', 'truelysell_core'); ?><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button></div>
<?php endif; ?>
<?php if ( !is_user_logged_in() ) : ?>
<div class="warning alert alert-dismissible alert-danger mb-4">
<?php esc_html_e('You must be logged in to edit your profile.', 'truelysell_core'); ?><button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
</div><!-- .warning -->
<?php else : ?>
<div class="row">
<!-- Profile -->
<div class="col-md-12 mx-auto">
<div class="card">
<div class="card-body">
<div class="dashboard-list-box1 margin-top-0">
<h6 class="mb-4"><?php esc_html_e('Profile Picture','truelysell_core') ?></h6>
<form enctype="multipart/form-data" method="post" id="edit_user" action="<?php the_permalink(); ?>">
<div class="dashboard-list-box-static">
<?php
$custom_avatar = $current_user->truelysell_core_avatar_id;
$custom_avatar = wp_get_attachment_url($custom_avatar);
if(!empty($custom_avatar)) { ?>
<div data-photo="<?php echo $custom_avatar; ?>"
data-name="<?php esc_html_e('Your Avatar', 'truelysell_core'); ?>"
data-size="<?php echo filesize( get_attached_file( $current_user->truelysell_core_avatar_id ) ); ?>"
class="edit-profile-photo d-flex align-items-center mb-4">
<?php } else { ?>
<div class="edit-profile-photo d-flex align-items-center mb-4">
<?php } ?>
<div id="avatar-uploader" class="dropzone">
<div class="dz-message" data-dz-message>
<div class="img-upload btn btn-sm btn-dark me-2 mb-2"><i class="feather-upload-cloud me-1"></i> <?php esc_html_e('Upload', 'truelysell_core'); ?>
</div>
<p>*image size should be at least 320px big,and less then 500kb. Allowed files .png and .jpg.</p>
</div>
</div>
<input class="hidden d-none" name="truelysell_core_avatar_id" type="hidden" id="avatar-uploader-id" value="<?php echo $current_user->truelysell_core_avatar_id; ?>" />
</div>
<!-- Details -->
<div class="my-profile">
<h6 class="user-title"><?php echo esc_html('General Information', 'truelysell_core'); ?></h6>
<div class="general-info ">
<?php if(get_option('truelysell_profile_allow_role_change')): ?>
<?php if(in_array($role, array('owner','guest'))): ?>
<label for="role"><?php esc_html_e('Change your role', 'truelysell_core'); ?></label>
<select name="role" id="role">
<option <?php selected($role,'guest'); ?> value="guest"><?php esc_html_e('Guest','truelysell_core') ?></option>
<option <?php selected($role,'owner'); ?> value="owner"><?php esc_html_e('Owner','truelysell_core') ?></option>
</select>
<?php endif; ?>
<?php endif; ?>
<div class="row">
<div class="form-group col-xl-6">
<label for="first-name" class="form-label"><?php esc_html_e('First Name', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<input class="text-input form-control" name="first-name" type="text" id="first-name" value="<?php echo $current_user->user_firstname; ?>" required="" />
</div>
<div class="form-group col-xl-6">
<label for="last-name" class="form-label"><?php esc_html_e('Last Name', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<input class="text-input form-control" name="last-name" type="text" id="last-name" value="<?php echo $current_user->user_lastname; ?>" required="" />
</div>
<div class="form-group <?php if(in_array($role, array('owner'))) { echo 'col-xl-6'; } else { echo 'col-xl-12'; } ?> ">
<?php if ( isset($_GET['user_err_pass']) && !empty($_GET['user_err_pass']) ) : ?>
<div class="notification error closeable margin-top-35"><p>
<?php
switch ($_GET['user_err_pass']) {
case 'error_1':
echo esc_html_e('The Email you entered is not valid or empty. Please try again.','truelysell_core');
break;
case 'error_2':
echo esc_html_e('This email is already used by another user, please try a different one.','truelysell_core');
break;
default:
# code...
break;
} ?>
</p><a class="close" href="#"></a>
</div>
<?php endif; ?>
<label for="email" class="form-label"><?php esc_html_e('E-mail', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<input class="text-input form-control" name="email" type="text" id="email" value="<?php the_author_meta( 'user_email', $current_user->ID ); ?>" required="" />
</div>
<?php if(in_array($role, array('owner'))): ?>
<div class="form-group col-xl-6">
<label for="profile-designation" class="form-label"><?php esc_html_e('Designation', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_designation = get_the_author_meta( 'profile_designation' , $current_user->ID); ?>
<input class="text-input form-control" name="profile_designation" type="text" id="designation" value="<?php echo $profile_designation; ?>" required="" />
</div>
<?php endif; ?>
<div class="form-group col-xl-12">
<label for="description" class="form-label"><?php esc_html_e('About me', 'truelysell_core'); ?></label>
<?php
$user_desc = get_the_author_meta( 'description' , $current_user->ID);
$user_desc_stripped = strip_tags($user_desc, '<p>'); //replace <p> and <a> with whatever tags you want to keep after the strip
?>
<textarea name="description" id="description" class="form-control" cols="57" rows="4"><?php echo $user_desc_stripped; ?></textarea>
</div>
<?php if(truelysell_fl_framework_getoptions('display_phone_field')) :
$user_id = get_current_user_id();
$phone_number = get_user_meta( $user_id, 'phone_number', true );
?>
<div class="form-group col-xl-6">
<label for="phone" class="form-label"><?php esc_html_e('Phone Number', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<input class="text-input form-control" name="phone_number" type="text" id="phone_number" value="<?php echo $phone_number; ?>" required="" />
</div>
<?php endif; ?>
<h6 class="user-title"><?php echo esc_html('Address', 'truelysell_core'); ?></h6>
<div class="row address-info" data-select2-id="10">
<div class="form-group col-xl-12">
<div class="mb-3">
<label for="profile-address" class="form-label"><?php esc_html_e('Address', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_address = get_the_author_meta( 'profile-address' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-address" type="text" id="profile-address" value="<?php echo $profile_address; ?>" required="" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-country" class="form-label"><?php esc_html_e('Country', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_country = get_the_author_meta( 'profile-country' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-country" type="text" id="profile-country" value="<?php echo $profile_country; ?>" required="" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-state" class="form-label"><?php esc_html_e('State', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_state = get_the_author_meta( 'profile-state' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-state" type="text" id="profile-state" value="<?php echo $profile_state; ?>" required="" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-city" class="form-label"><?php esc_html_e('City', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_city = get_the_author_meta( 'profile-city' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-city" type="text" id="profile-city" value="<?php echo $profile_city; ?>" required="" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-postalcode" class="form-label"><?php esc_html_e('Postal Code', 'truelysell_core'); ?> <span class="text-danger">*</span></label>
<?php $profile_postalcode = get_the_author_meta( 'profile-postalcode' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-postalcode" type="text" id="profile-postalcode" value="<?php echo $profile_postalcode; ?>" required="" />
</div>
</div>
<?php if(in_array($role, array('owner'))): ?>
<div class="col-md-6">
<div class="mb-3">
<?php
$specialists = get_the_author_meta('profile-specialist', $current_user->ID);
if (!empty($specialists)) {
$specialist_string = implode(',', $specialists);
} else {
$specialist_string ='English,French,spanish';
}
?>
<label class="form-label"><?php esc_html_e('Language', 'truelysell_core'); ?></label>
<!-- <input class="input-tags form-control" type="text" data-role="tagsinput"
name="specialist" value="English,French,spanish" id="specialist"> -->
<input class="input-tags form-control" type="text" data-role="tagsinput"
name="profile-specialist" value="<?php echo $specialist_string; ?>" id="specialist">
<div id="tags-container"></div>
<!-- <input class="input-tags form-control" type="hidden" name="profile-specialist" id="profile-specialist" value="<?php echo $specialist_string; ?>"> -->
</div>
</div>
<div class="col-md-12">
<div class="mb-3">
<?php
$overview = get_the_author_meta('profile-overview', $current_user->ID);
?>
<label class="form-label"><?php echo esc_html__('Overview', 'truelysell_core'); ?> </label>
<textarea name="profile-overview" id="profile-overview" class="form-control" cols="57" rows="4"><?php echo $overview; ?></textarea>
</div>
</div>
<div class="col-md-12">
<div class="mb-3">
<?php
$aoe = get_the_author_meta('profile-aoe', $current_user->ID);
?>
<label class="form-label"><?php echo esc_html__('Area of Expertise', 'truelysell_core'); ?> </label>
<textarea name="profile-aoe" id="profile-aoe" class="form-control" cols="57" rows="4"><?php echo $aoe; ?></textarea>
</div>
</div>
<?php endif; ?>
</div>
<?php if(in_array($role, array('owner'))): ?>
<h6 class="user-title"><?php echo esc_html('Social Profiles', 'truelysell_core'); ?></h6>
<div class="row address-info" data-select2-id="10">
<div class="col-md-6">
<div class="mb-3">
<label for="profile-facebook" class="form-label"><?php esc_html_e('Facebook', 'truelysell_core'); ?> </label>
<?php $profile_facebook = get_the_author_meta( 'profile-facebook' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-facebook" type="text" id="profile-facebook" value="<?php echo $profile_facebook; ?>" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-instagram" class="form-label"><?php esc_html_e('Instagram', 'truelysell_core'); ?> </label>
<?php $profile_instagram = get_the_author_meta( 'profile-instagram' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-instagram" type="text" id="profile-instagram" value="<?php echo $profile_instagram; ?>" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-x" class="form-label"><?php esc_html_e('X', 'truelysell_core'); ?> </label>
<?php $profile_x = get_the_author_meta( 'profile-x' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-x" type="text" id="profile-x" value="<?php echo $profile_x; ?>" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-whatsapp" class="form-label"><?php esc_html_e('Whatsapp', 'truelysell_core'); ?> </label>
<?php $profile_whatsapp = get_the_author_meta( 'profile-whatsapp' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-whatsapp" type="text" id="profile-whatsapp" value="<?php echo $profile_whatsapp; ?>" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-youtube" class="form-label"><?php esc_html_e('Youtube', 'truelysell_core'); ?> </label>
<?php $profile_youtube = get_the_author_meta( 'profile-youtube' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-youtube" type="text" id="profile-youtube" value="<?php echo $profile_youtube; ?>" />
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="profile-linkedin" class="form-label"><?php esc_html_e('Linkedin', 'truelysell_core'); ?> </label>
<?php $profile_linkedin = get_the_author_meta( 'profile-linkedin' , $current_user->ID); ?>
<input class="text-input form-control" name="profile-linkedin" type="text" id="profile-linkedin" value="<?php echo $profile_linkedin; ?>" />
</div>
</div>
</div>
<h6 class="user-title"><?php echo esc_html('Benefits', 'truelysell_core'); ?></h6>
<div class="benefits-info">
<?php // Retrieve the user meta
$user_id = get_current_user_id();
$profile_benefits_new = get_user_meta( $user_id, 'profilebenefits_new', true );
// Unserialize the data if needed
if ( ! empty( $profile_benefits_new ) ) {
$profile_benefits_new = maybe_unserialize( $profile_benefits_new );
}
if ( is_array( $profile_benefits_new ) ) {
foreach ( $profile_benefits_new as $benefit ) {
?>
<div class="row extra-title-row">
<div class="col-md-12">
<div class="mb-3">
<label class="form-label">Benefits <span class="text-danger"> *</span></label>
<div class="d-flex align-items-center">
<input type="text" name="profilebenefits_new[]" class="form-control" value="<?php echo esc_attr( $benefit ); ?>">
<a href="#" class="text-primary d-inline-flex align-items-center text-danger delete-item ms-4"><i class="ti ti-trash"></i></a>
</div>
</div>
</div>
</div>
<?php
}
} else {
// If no data exists or the data isn't an array, display an empty input
?>
<div class="row">
<div class="col-md-12">
<div class="mb-3">
<label class="form-label">Title <span class="text-danger"> *</span></label>
<div class="d-flex align-items-center">
<input type="text" name="profilebenefits_new[]" class="form-control">
</div>
</div>
</div>
</div>
<?php
}
?>
</div>
<div class="row">
<div class="col-md-12">
<a href="javascript:void(0);" class="text-primary d-inline-flex align-items-center add-benefits fs-14 mb-3"><i
class="ti ti-circle-plus me-2"></i>Add New</a>
</div>
</div>
<?php endif; ?>
<div class="col-md-12">
<input type="hidden" name="my-account-submission" value="1" />
<button type="submit" form="edit_user" value="<?php esc_html_e( 'Submit', 'truelysell_core' ); ?>" class="button btn btn-primary"><?php esc_html_e('Save Changes', 'truelysell_core'); ?></button>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!-- Change Password -->
<div class="col-lg-12 col-md-12">
<div class="dashboard-list-box1 change_password_admin mt-5">
<div class="card">
<div class="card-body">
<div class="general-info">
<h6 class="user-title"><?php echo esc_html('Change Password', 'truelysell_core'); ?></h6>
<div class="dashboard-list-box-static">
<!-- Change Password -->
<div class="my-profile">
<div class="row">
<div class="col-md-12">
<div class="notification notice margin-top-0 margin-bottom-0">
<p><?php esc_html_e('Your password should be at least 12 random characters long to be safe','truelysell_core') ?></p>
</div>
</div>
</div>
<?php if ( isset($_GET['updated_pass']) && $_GET['updated_pass'] == 'true' ) : ?>
<div class="notification success closeable margin-bottom-35"><p><?php esc_html_e('Your password has been updated.', 'truelysell_core'); ?></p><a class="close" href="#"></a></div>
<?php endif; ?>
<?php if ( isset($_GET['err_pass']) && !empty($_GET['err_pass']) ) : ?>
<div class="notification error closeable margin-bottom-35"><p>
<?php
switch ($_GET['err_pass']) {
case 'error_1':
echo esc_html_e('Your current password does not match. Please retry.','truelysell_core');
break;
case 'error_2':
echo esc_html_e('The passwords do not match. Please retry..','truelysell_core');
break;
case 'error_3':
echo esc_html_e('A bit short as a password, don\'t you think?','truelysell_core');
break;
case 'error_4':
echo esc_html_e('Password may not contain the character "\\" (backslash).','truelysell_core');
break;
case 'error_5':
echo esc_html_e('An error occurred while updating your profile. Please retry.','truelysell_core');
break;
case 'error_6':
echo esc_html_e('Please fill all password fields correctly.','truelysell_core');
break;
default:
# code...
break;
} ?>
</p><a class="close" href="#"></a>
</div>
<?php endif; ?>
<form name="resetpasswordform" action="" method="post">
<div class="row">
<div class="form-group col-xl-12">
<label class="form-label"><?php esc_html_e('Current Password','truelysell_core'); ?></label>
<input class="form-control" type="password" name="current_pass" required >
</div>
<div class="form-group col-xl-6">
<label class="form-label" for="pass1"><?php esc_html_e('New Password','truelysell_core'); ?></label>
<input class="form-control" name="pass1" type="password" required>
</div>
<div class="form-group col-xl-6">
<label class="form-label" for="pass2"><?php esc_html_e('Confirm New Password','truelysell_core'); ?></label>
<input class="form-control" name="pass2" type="password" required>
</div>
</div>
<input type="submit" name="wp-submit" id="wp-submit" class="btn btn-primary button" value="<?php esc_html_e('Save Changes','truelysell_core'); ?>" />
<input type="hidden" name="truelysell_core-password-change" value="1" />
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php if ( class_exists( 'plugin_delete_me' ) ) : ?>
<div class="col-lg-6 col-md-12 delete-account-section margin-top-40">
<div class="dashboard-list-box1 margin-top-0">
<h4 class="gray"><?php esc_html_e('Delete Your Account','truelysell_core') ?></h4>
<div class="dashboard-list-box-static">
<?php echo do_shortcode( '[plugin_delete_me /]' ); ?>
</div>
</div>
</div>
<?php endif; ?>
</div>
<script>
let benefitCount = 0;
const benefitsContainer = document.getElementById('benefits-container');
const hiddenField = document.getElementById('profile-benefits');
// Retrieve the stored benefits data from the user meta
const storedBenefits = <?php $storedBenefits = get_user_meta($user_id, 'profile-benefits', true); echo json_encode($storedBenefits); ?>;
// Append the stored benefits data to the input fields
if (storedBenefits) {
Object.keys(storedBenefits).forEach(function(key) {
const newBenefitInput = document.createElement('input');
newBenefitInput.type = 'text';
newBenefitInput.name = 'benefit-' + key;
newBenefitInput.className = 'form-control';
newBenefitInput.value = storedBenefits[key];
const removeButton = document.createElement('button');
removeButton.type = 'button';
removeButton.className = 'btn btn-danger';
removeButton.textContent = 'Remove';
removeButton.addEventListener('click', function() {
// Remove the input field and update the benefits data
newBenefitInput.remove();
removeButton.remove();
updateHiddenField();
});
newBenefitInput.addEventListener('input', function() {
updateHiddenField();
});
const benefitWrapper = document.createElement('div');
benefitWrapper.appendChild(newBenefitInput);
benefitWrapper.appendChild(removeButton);
benefitsContainer.appendChild(benefitWrapper);
benefitCount++;
});
}
// Add an event listener to the "Add more benefits" button
document.getElementById('add-benefit-btn').addEventListener('click', function() {
const newBenefitInput = document.createElement('input');
newBenefitInput.type = 'text';
newBenefitInput.name = 'benefit-' + benefitCount;
newBenefitInput.className = 'form-control';
const removeButton = document.createElement('button');
removeButton.type = 'button';
removeButton.className = 'btn btn-danger';
removeButton.textContent = 'Remove';
removeButton.addEventListener('click', function() {
// Remove the input field and update the benefits data
newBenefitInput.remove();
removeButton.remove();
updateHiddenField();
});
newBenefitInput.addEventListener('input', function() {
updateHiddenField();
});
const benefitWrapper = document.createElement('div');
benefitWrapper.appendChild(newBenefitInput);
benefitWrapper.appendChild(removeButton);
benefitsContainer.appendChild(benefitWrapper);
benefitCount++;
});
// Function to update the hidden field with the latest benefits data
function updateHiddenField() {
const benefits = [];
const benefitInputs = document.querySelectorAll('input[name^="benefit-"]');
benefitInputs.forEach(function(input) {
benefits.push(input.value);
});
hiddenField.value = benefits.join(',');
}
</script>