<?php /** @var $customer OsCustomerModel */ /** @var $future_bookings OsBookingModel[] */ /** @var $past_bookings OsBookingModel[] */ /** @var $cancelled_bookings OsBookingModel[] */ /** @var $not_scheduled_bundles OsBundleModel[] */ /** @var $orders OsOrderModel[] */ /** @var $cart_not_empty bool */ /** @var $hide_new_appointment_ui bool */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } ?> <div class="latepoint-w"> <a href="<?php echo esc_url(OsRouterHelper::build_admin_post_link(['customer_cabinet', 'logout'] )); ?>"><?php esc_html_e('Logout', 'latepoint'); ?></a> <h4><?php // translators: %s is user first name printf( esc_html__('Welcome %s', 'latepoint'), esc_html($customer->full_name)); ?></h4> <div class="latepoint-tabs-w"> <div class="latepoint-tab-triggers customer-dashboard-tabs"> <a href="#" data-tab-target=".tab-content-customer-bookings" class="active latepoint-tab-trigger"><?php esc_html_e('Appointments', 'latepoint'); ?></a> <a href="#" data-tab-target=".tab-content-customer-orders" class="latepoint-tab-trigger"><?php esc_html_e('Orders', 'latepoint'); ?></a> <a href="#" data-tab-target=".tab-content-customer-info-form" class="latepoint-tab-trigger"><?php esc_html_e('Profile', 'latepoint'); ?></a> <?php if (!$hide_new_appointment_ui) { ?> <a href="#" data-tab-target=".tab-content-customer-new-appointment-form" class="latepoint-tab-trigger"><?php esc_html_e('New Appointment', 'latepoint'); ?></a> <?php } ?> <?php do_action('latepoint_customer_dashboard_after_tabs', $customer); ?> </div> <div class="latepoint-tab-content tab-content-customer-bookings active"> <?php do_action('latepoint_customer_dashboard_before_appointments', $customer); ?> <?php if($future_bookings || $past_bookings || $cancelled_bookings || $not_scheduled_bundles){ ?> <?php if($future_bookings){ ?> <div class="latepoint-section-heading-w"> <h5 class="latepoint-section-heading"><?php esc_html_e('Upcoming', 'latepoint'); ?></h5> <div class="heading-extra"> <?php // translators: %d is number of appointments echo sprintf( esc_html__('%d Appointments', 'latepoint'), count($future_bookings)); ?> </div> </div> <div class="customer-bookings-tiles"> <?php foreach($future_bookings as $booking){ $is_upcoming_booking = true; include('_booking_tile.php'); } ?> <?php if (!$hide_new_appointment_ui) { ?> <a href="#" class="new-booking-tile os_trigger_booking" <?php echo OsSettingsHelper::get_settings_value('customer_dashboard_book_button_attributes', ''); ?>><i class="latepoint-icon latepoint-icon-plus"></i><span><?php esc_html_e('New Appointment', 'latepoint'); ?></span></a> <?php } ?> </div> <?php } ?> <?php if($not_scheduled_bundles){ ?> <div class="latepoint-section-heading-w"> <h5 class="latepoint-section-heading"><?php esc_html_e('Bundles', 'latepoint'); ?></h5> <div class="heading-extra"> <?php // translators: %d is number of bundles echo sprintf( esc_html__('%d Bundles', 'latepoint'), count($not_scheduled_bundles)); ?> </div> </div> <div class="customer-bookings-tiles"> <?php foreach($not_scheduled_bundles as $order_item_id => $bundle){ $order_item = new OsOrderItemModel($order_item_id); $order = new OsOrderModel($order_item->order_id); $bundle_services_with_booked_count = OsOrdersHelper::bundle_services_and_booked_count_for_order_item_id($order_item_id); include('_bundle_tile.php'); } ?> </div> <?php } ?> <?php if($past_bookings){ ?> <div class="latepoint-section-heading-w"> <h5 class="latepoint-section-heading"><?php esc_html_e('Past', 'latepoint'); ?></h5> <div class="heading-extra"> <?php // translators: %d is number of appointments echo sprintf( esc_html__('%d Appointments', 'latepoint'), count($past_bookings)); ?> </div> </div> <div class="customer-bookings-tiles"> <?php foreach($past_bookings as $booking){ $is_upcoming_booking = false; include('_booking_tile.php'); } ?> <?php if (!$hide_new_appointment_ui) { ?> <a href="#" class="new-booking-tile os_trigger_booking"><i class="latepoint-icon latepoint-icon-plus"></i><span><?php esc_html_e('New Appointment', 'latepoint'); ?></span></a> <?php } ?> </div> <?php } ?> <?php if($cancelled_bookings){ ?> <div class="latepoint-section-heading-w"> <h5 class="latepoint-section-heading"><?php esc_html_e('Cancelled', 'latepoint'); ?></h5> <div class="heading-extra"> <?php // translators: %d is number of appointments echo sprintf( esc_html__('%d Appointments', 'latepoint'), count($cancelled_bookings)); ?> </div> </div> <div class="customer-bookings-tiles"> <?php foreach($cancelled_bookings as $booking){ $is_upcoming_booking = false; include('_booking_tile.php'); } ?> <?php if (!$hide_new_appointment_ui) { ?> <a href="#" class="new-booking-tile os_trigger_booking"><i class="latepoint-icon latepoint-icon-plus"></i><span><?php esc_html_e('New Appointment', 'latepoint'); ?></span></a> <?php } ?> </div> <?php } ?> <?php }else{ echo '<div class="latepoint-message-info latepoint-message">'.esc_html__('No appointments found', 'latepoint').'</div>'; } ?> </div> <div class="latepoint-tab-content tab-content-customer-orders"> <?php if($orders){ echo '<div class="customer-orders-tiles">'; foreach($orders as $order){ include('_order_tile.php'); } echo '</div>'; } ?> </div> <div class="latepoint-tab-content tab-content-customer-info-form"> <form action="" data-os-action="<?php echo esc_attr(OsRouterHelper::build_route_name('customer_cabinet', 'update')); ?>"> <div class="os-row"> <?php echo OsFormHelper::text_field('customer[first_name]', __('Your First Name', 'latepoint'), $customer->first_name, array('class' => 'required'), array('class' => 'os-col-6')); ?> <?php echo OsFormHelper::text_field('customer[last_name]', __('Your Last Name', 'latepoint'), $customer->last_name, array('class' => 'required'), array('class' => 'os-col-6')); ?> <?php echo OsFormHelper::phone_number_field('customer[phone]', __('Your Phone Number', 'latepoint'), $customer->phone, [], array('class' => 'os-col-6')); ?> <?php echo OsFormHelper::text_field('customer[email]', __('Your Email Address', 'latepoint'), $customer->email, array('class' => 'required'), array('class' => 'os-col-6')); ?> </div> <?php do_action('latepoint_customer_dashboard_information_form_after', $customer); ?> <?php wp_nonce_field('update_customer_'.$customer->get_uuid()); ?> <?php echo OsFormHelper::button('submit', __('Save Changes', 'latepoint'), 'submit', ['class' => 'latepoint-btn']); ?> </form> <div class="customer-password-form-w"> <form action="" data-os-action="<?php echo esc_attr(OsRouterHelper::build_route_name('customer_cabinet', 'change_password')); ?>"> <h5><?php esc_html_e('Set New Password', 'latepoint'); ?></h5> <div class="os-row"> <?php echo OsFormHelper::password_field('password', __('New Password', 'latepoint'), '', [], array('class' => 'os-col-6')); ?> <?php echo OsFormHelper::password_field('password_confirmation', __('Confirm New Password', 'latepoint'), '', [], array('class' => 'os-col-6')); ?> </div> <?php wp_nonce_field('change_password_'.$customer->get_uuid(), 'change_password_nonce'); ?> <?php echo OsFormHelper::button('submit', __('Set New Password', 'latepoint'), 'submit', ['class' => 'latepoint-btn']); ?> </form> </div> </div> <div class="latepoint-tab-content tab-content-customer-new-appointment-form"> <?php echo do_shortcode(OsSettingsHelper::get_settings_value('customer_dashboard_book_shortcode', '[latepoint_book_button]')); ?> </div> <?php do_action('latepoint_customer_dashboard_after_tab_contents', $customer); ?> </div> </div>