[Back] <?php
/**
* @var $customer OsCustomerModel
**/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
?>
<div class="os-form-w quick-customer-form-w <?php echo ($customer->is_new_record()) ? 'is-new-customer' : 'is-existing-customer' ;?>" data-refresh-route-name="<?php echo esc_attr(OsRouterHelper::build_route_name('customers', 'quick_edit')); ?>">
<form action=""
data-route-name="<?php echo ($customer->is_new_record()) ? esc_attr(OsRouterHelper::build_route_name('customers', 'create')) : esc_attr(OsRouterHelper::build_route_name('customers', 'update')); ?>"
class="customer-quick-edit-form">
<div class="os-form-header">
<?php if($customer->is_new_record()){ ?>
<h2><?php esc_html_e('New Customer', 'latepoint'); ?></h2>
<?php }else{ ?>
<h2><?php esc_html_e('Edit Customer', 'latepoint'); ?></h2>
<?php } ?>
<a href="#" class="latepoint-side-panel-close latepoint-side-panel-close-trigger"><i class="latepoint-icon latepoint-icon-x"></i></a>
</div>
<div class="os-form-content">
<?php if(!$customer->is_new_record()){ ?>
<div class="quick-booking-info">
<?php echo '<span>'.esc_html__('Customer ID:', 'latepoint').'</span><strong>'. esc_html($customer->id).'</strong>'; ?>
<?php if (OsAuthHelper::get_current_user()->has_capability('activity__view')) echo '<a href="#" data-customer-id="' . esc_attr($customer->id) . '" data-route="' . esc_attr(OsRouterHelper::build_route_name('customers', 'view_customer_log')) . '" class="quick-customer-form-view-log-btn"><i class="latepoint-icon latepoint-icon-clock"></i>' . esc_html__('History', 'latepoint') . '</a>'; ?>
</div>
<?php } ?>
<div class="fields-with-avatar">
<div class="avatar-column">
<div class="avatar-uploader-w">
<?php echo OsFormHelper::media_uploader_field('customer[avatar_image_id]', 0, __('Set Avatar', 'latepoint'), __('Remove Avatar', 'latepoint'), $customer->avatar_image_id, [], [], true, true); ?>
</div>
</div>
<div class="field-column">
<?php echo OsFormHelper::text_field('customer[first_name]', __('First Name', 'latepoint'), $customer->first_name, ['theme' => 'simple', 'validate' => $customer->get_validations_for_property('first_name')]); ?>
</div>
<div class="field-column">
<?php echo OsFormHelper::text_field('customer[last_name]', __('Last Name', 'latepoint'), $customer->last_name, ['theme' => 'simple', 'validate' => $customer->get_validations_for_property('last_name')]); ?>
</div>
</div>
<div class="os-form-sub-header">
<h3><?php esc_html_e('Contact Info', 'latepoint'); ?></h3>
</div>
<div class="os-row">
<div class="os-col-lg-12">
<?php echo OsFormHelper::text_field('customer[email]', __('Email Address', 'latepoint'), $customer->email, ['theme' => 'simple', 'validate' => $customer->get_validations_for_property('email')]); ?>
</div>
<div class="os-col-lg-12">
<?php echo OsFormHelper::phone_number_field('customer[phone]', __('Phone Number', 'latepoint'), $customer->phone, ['theme' => 'simple', 'validate' => $customer->get_validations_for_property('phone')]); ?>
</div>
</div>
<div class="os-form-sub-header">
<h3><?php esc_html_e('Notes', 'latepoint'); ?></h3>
</div>
<div class="os-row">
<div class="os-col-lg-12">
<?php echo OsFormHelper::textarea_field('customer[notes]', __('Notes left by the customer', 'latepoint'), $customer->notes, ['theme' => 'simple', 'rows' => 3]); ?>
</div>
</div>
<div class="os-row">
<div class="os-col-lg-12">
<?php echo OsFormHelper::textarea_field('customer[admin_notes]', __('Admin notes (visible only to admins)', 'latepoint'), $customer->admin_notes, ['theme' => 'simple', 'rows' => 3]); ?>
</div>
</div>
<?php if(!$customer->is_new_record()){ ?>
<div class="customer-password-info <?php echo ($customer->is_guest) ? 'password-not-set' : 'password-set'; ?>">
<?php if($customer->is_guest) {
esc_html_e('Guest Account', 'latepoint');
}else{
esc_html_e('Password Protected', 'latepoint');
echo '<a href="#" data-os-success-action="reload"
data-os-params="'.esc_attr(OsUtilHelper::build_os_params(['id' => $customer->id])).'"
data-os-prompt="'.esc_attr__('Are you sure you want to allow this customer to book without logging in?', 'latepoint').'"
data-os-action="'.esc_attr(OsRouterHelper::build_route_name('customers', 'set_as_guest')).'">'.esc_html__('Convert to Guest', 'latepoint').'</a>';
} ?>
</div>
<?php } ?>
<?php if(!$customer->is_new_record() && OsAuthHelper::can_wp_users_login_as_customers()){ ?>
<div class="connected-wp-user-status">
<?php
if($customer->wordpress_user_id){
echo '<div class="connected-note">'.esc_html__('Connected', 'latepoint').'</div>';
echo '<div class="connected-buttons"> <a target="_blank" href="'.esc_attr(get_edit_user_link($customer->wordpress_user_id)).'"><i class="latepoint-icon latepoint-icon-external-link"></i><span>'.esc_html__('View Profile', 'latepoint').'</span></a> <span>or</span> <a href="#" data-os-success-action="reload" data-os-params="'.esc_attr(OsUtilHelper::build_os_params(['customer_id' => $customer->id])).'" data-os-action="'.esc_attr(OsRouterHelper::build_route_name('customers', 'disconnect_from_wp_user')).'"><i class="latepoint-icon latepoint-icon-slash"></i><span>'.esc_html__('Disconnect', 'latepoint').'</a></div>';
}else{
echo '<div class="connected-note">'.esc_html__('Not Connected', 'latepoint').'</div>';
echo '<div class="connected-buttons"> <a href="#" data-os-success-action="reload" data-os-params="'.esc_attr(OsUtilHelper::build_os_params(['customer_id' => $customer->id])).'" data-os-action="'.esc_attr(OsRouterHelper::build_route_name('customers', 'connect_to_wp_user')).'"><i class="latepoint-icon latepoint-icon-link-2"></i><span>'.esc_html__('Connect', 'latepoint').'</span></a></div>';
}
?>
</div>
<?php } ?>
<?php
/**
* Content that goes after customer edit form
*
* @since 5.0.0
* @hook latepoint_customer_edit_form_after
*
* @param {OsCustomerModel} $customer Customer object that is being edited
*/
do_action('latepoint_customer_edit_form_after', $customer); ?>
<?php if(!$customer->is_new_record()){ ?>
<div class="customer-appointments">
<div class="os-form-sub-header">
<h3><?php esc_html_e('Appointments', 'latepoint'); ?></h3>
<div class="os-form-sub-header-actions">
<a href="#" class="latepoint-btn latepoint-btn-sm latepoint-btn-link" <?php echo OsOrdersHelper::quick_order_btn_html(false, ['customer_id' => $customer->id]); ?>>
<i class="latepoint-icon latepoint-icon-plus"></i><span><?php esc_html_e('Add', 'latepoint'); ?></span>
</a>
</div>
</div>
<?php
$customer_bookings = $customer->get_bookings(false, true);
if($customer_bookings){
echo '<div class="customer-appointments-list">';
foreach($customer_bookings as $booking){
?>
<div class="order-item" <?php echo OsBookingHelper::quick_booking_btn_html($booking->id); ?>>
<div class="avatar-w" style="background-image: url(<?php echo esc_url($booking->agent->get_avatar_url()); ?>);">
<div class="agent-info-tooltip"><?php echo esc_html($booking->agent->full_name); ?></div>
</div>
<div class="oi-info">
<div class="oi-service-name"><?php echo esc_html($booking->service->name); ?></div>
<div class="oi-date-w">
<div class="oi-date-i">
<span class="oi-date"><?php echo esc_html($booking->nice_start_date); ?></span>, <span class="appointment-time"><?php echo esc_html(implode('-', array($booking->nice_start_time, $booking->nice_end_time))); ?></span>
</div>
</div>
</div>
</div>
<?php
}
echo '</div>';
}else{ ?>
<div class="no-results-w">
<?php esc_html_e('Customer does not have any bookings', 'latepoint'); ?>
</div>
<?php
} ?>
</div>
<?php } ?>
</div>
<div class="os-form-buttons os-quick-form-buttons">
<?php
if($customer->is_new_record()){
if(OsRolesHelper::can_user('customer__create')) echo '<button name="submit" type="submit" class="latepoint-btn latepoint-btn-block latepoint-btn-lg">'.esc_html__('Create Customer', 'latepoint').'</button>';
}else{
if(OsRolesHelper::can_user('customer__edit')){
echo '<div class="os-full">';
echo '<button name="submit" type="submit" class="latepoint-btn latepoint-btn-block latepoint-btn-lg">'.esc_html__('Save Changes', 'latepoint').'</button>';
echo '</div>';
}
if(OsRolesHelper::can_user('customer__delete')) {
echo '<div class="os-compact">';
echo '<a href="#" class=" remove-customer-btn latepoint-btn latepoint-btn-secondary latepoint-btn-lg latepoint-btn-just-icon"
data-os-prompt="' . esc_attr__('Are you sure you want to delete this customer? It will remove all appointments and transactions associated with this customer.', 'latepoint') . '"
data-os-redirect-to="' . esc_attr(OsRouterHelper::build_link(OsRouterHelper::build_route_name('customers', 'index'))) . '"
data-os-params="' . esc_attr(OsUtilHelper::build_os_params(['id' => $customer->id], 'destroy_customer_'.$customer->id)) . '"
data-os-success-action="redirect"
data-os-action="' . esc_attr(OsRouterHelper::build_route_name('customers', 'destroy') ). '"
title="' . esc_attr__('Delete Customer', 'latepoint') . '">
<i class="latepoint-icon latepoint-icon-trash1"></i>
</a>';
echo '</div>';
}
}
?>
</div>
<?php
echo OsFormHelper::hidden_field('customer[id]', $customer->id);
wp_nonce_field($customer->is_new_record() ? 'new_customer' : 'edit_customer_'.$customer->id);
?>
</form>
</div>