PluginProbe ʕ •ᴥ•ʔ
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress / 5.6.8
Appointment Booking Plugin – LatePoint | Calendar & Scheduling for WordPress v5.6.8
5.6.8 5.6.7 5.6.6 5.6.5 5.6.4 5.6.3 5.6.2 5.6.1 5.6.0 5.5.2 5.5.1 5.5.0 5.4.2 trunk 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.1.91 5.1.92 5.1.93 5.1.94 5.2.0 5.2.1 5.2.10 5.2.11 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.3.0 5.3.1 5.3.2 5.4.0 5.4.1
latepoint / lib / views / dashboard / widget_daily_bookings_chart.php
latepoint / lib / views / dashboard Last commit date
_booking_info_box_small.php 9 months ago index.php 1 year ago widget_bookings_and_availability_timeline.php 9 months ago widget_daily_bookings_chart.php 1 year ago widget_upcoming_appointments.php 1 year ago
widget_daily_bookings_chart.php
133 lines
1 <?php
2 /* @var $locations OsLocationModel[] */
3 /* @var $agents OsAgentModel[] */
4 /* @var $services OsServiceModel[] */
5 /* @var $filter \LatePoint\Misc\Filter */
6
7
8 if ( ! defined( 'ABSPATH' ) ) {
9 exit; // Exit if accessed directly
10 }
11
12
13 ?>
14 <div class="os-widget os-widget-animated os-widget-daily-bookings" data-os-reload-action="<?php echo esc_attr(OsRouterHelper::build_route_name('dashboard', 'widget_daily_bookings_chart')); ?>">
15 <div class="os-widget-header with-actions">
16 <h3 class="os-widget-header-text"><?php esc_html_e('Performance', 'latepoint'); ?></h3>
17 <div class="os-widget-header-actions-trigger"><i class="latepoint-icon latepoint-icon-more-horizontal"></i></div>
18 <div class="os-widget-header-actions">
19 <?php if($locations && count($locations) > 1){ ?>
20 <select name="location_id" class="os-trigger-reload-widget">
21 <option value=""><?php esc_html_e('All locations', 'latepoint'); ?></option>
22 <?php
23 foreach($locations as $location){ ?>
24 <option value="<?php echo esc_attr($location->id); ?>" <?php if($location->id == $filter->location_id) echo 'selected="selected"' ?>><?php echo esc_html($location->name); ?></option>
25 <?php } ?>
26 </select>
27 <?php } ?>
28 <?php $agents_selector_css = (is_array($agents) && (count($agents) == 1)) ? 'display: none;' : ''; ?>
29 <select name="agent_id" id="" class="os-trigger-reload-widget" style="<?php echo esc_attr($agents_selector_css); ?>">
30 <option value=""><?php esc_html_e('All Agents', 'latepoint'); ?></option>
31 <?php
32 if($agents){
33 foreach($agents as $agent){ ?>
34 <option value="<?php echo esc_attr($agent->id) ?>" <?php if($agent->id == $filter->agent_id) echo 'selected="selected"' ?>><?php echo esc_html($agent->full_name); ?></option>
35 <?php }
36 } ?>
37 </select>
38 <select name="service_id" id="" class="os-trigger-reload-widget">
39 <option value=""><?php esc_html_e('All Services', 'latepoint'); ?></option>
40 <?php
41 if($services){
42 foreach($services as $service){ ?>
43 <option value="<?php echo esc_attr($service->id) ?>" <?php if($service->id == $filter->service_id) echo 'selected="selected"' ?>><?php echo esc_html($service->name); ?></option>
44 <?php }
45 } ?>
46 </select>
47 <div class="os-date-range-picker">
48 <span class="range-picker-value"><?php echo esc_html($date_period_string); ?></span>
49 <input type="hidden" name="date_from" value="<?php echo esc_attr($date_from); ?>"/>
50 <input type="hidden" name="date_to" value="<?php echo esc_attr($date_to); ?>"/>
51 <i class="latepoint-icon latepoint-icon-chevron-down"></i>
52 </div>
53 </div>
54 </div>
55 <div class="os-widget-content no-padding">
56 <div class="stats-tab-contents">
57 <div class="stats-tab-content">
58 <div class="stats-charts-w">
59 <div class="stats-line-chart-w">
60 <div class="stats-tabs">
61 <div class="stats-tab">
62 <div class="stats-tab-value">
63 <span class="stats-tab-value-self"><?php echo esc_html($total_bookings); ?></span>
64 <span class="stats-change change-<?php echo ($total_bookings == $prev_total_bookings) ? '' : (($total_bookings < $prev_total_bookings) ? 'negative' : 'positive'); ?>">
65 <span class="stats-change-label"><?php esc_html_e('Previously:', 'latepoint'); echo ' <strong>'.esc_html($prev_total_bookings).'</strong>'; ?></span><span class="stats-change-value"><?php echo esc_html(OsUtilHelper::percent_diff($prev_total_bookings, $total_bookings)); ?>%</span>
66 </span>
67 </div>
68 <div class="stats-tab-label"><?php esc_html_e('Appointments', 'latepoint'); ?></div>
69 <div class="stats-tab-info" data-late-tooltip="<?php esc_attr_e('Total number of appointments in selected period.', 'latepoint');?>"><div class="stats-tab-info-icon">i</div></div>
70 </div>
71 <?php if(OsRolesHelper::can_user('transaction__view')){ ?>
72 <div class="stats-tab">
73 <div class="stats-tab-value">
74 <span class="stats-tab-value-self"><?php echo esc_html(OsMoneyHelper::format_price($total_price)); ?></span>
75 <span class="stats-change change-<?php echo ($total_price == $prev_total_price) ? '' : (($total_price < $prev_total_price) ? 'negative' : 'positive'); ?>">
76 <span class="stats-change-label"><?php esc_html_e('Previously:', 'latepoint'); echo ' <strong>'.esc_html(OsMoneyHelper::format_price($prev_total_price)).'</strong>'; ?></span><span class="stats-change-value"><?php echo esc_html(OsUtilHelper::percent_diff($prev_total_price, $total_price)); ?>%</span>
77 </span>
78 </div>
79 <div class="stats-tab-label"><?php esc_html_e('Sales Revenue', 'latepoint'); ?></div>
80 <div class="stats-tab-info" data-late-tooltip="<?php esc_attr_e('Total sales in selected period.', 'latepoint');?>"><div class="stats-tab-info-icon">i</div></div>
81 </div>
82 <?php } ?>
83 <div class="stats-tab">
84 <div class="stats-tab-value">
85 <span class="stats-tab-value-self"><?php echo esc_html(round($total_duration/60, 1)); ?></span>
86 <span class="stats-change change-<?php echo ($total_duration == $prev_total_duration) ? '' : (($total_duration < $prev_total_duration) ? 'negative' : 'positive'); ?>">
87 <span class="stats-change-label"><?php esc_html_e('Previously:', 'latepoint'); echo ' <strong>'.esc_html(round($prev_total_duration/60, 1)).'</strong>'; ?></span><span class="stats-change-value"><?php echo esc_html(OsUtilHelper::percent_diff($prev_total_duration, $total_duration)); ?>%</span>
88 </span>
89 </div>
90 <div class="stats-tab-label"><?php esc_html_e('Hours Worked', 'latepoint'); ?></div>
91 <div class="stats-tab-info" data-late-tooltip="<?php esc_attr_e('Total hours worked across all selected agents in selected period.', 'latepoint');?>"><div class="stats-tab-info-icon">i</div></div>
92 </div>
93 <div class="stats-tab">
94 <div class="stats-tab-value">
95 <span class="stats-tab-value-self"><?php echo esc_html($total_new_customers); ?></span>
96 <span class="stats-change change-<?php echo ($total_new_customers == $prev_total_new_customers) ? '' : (($total_new_customers < $prev_total_new_customers) ? 'negative' : 'positive'); ?>">
97 <span class="stats-change-label"><?php esc_html_e('Previously:', 'latepoint'); echo ' <strong>'.esc_html($prev_total_new_customers).'</strong>'; ?></span><span class="stats-change-value"><?php echo esc_html(OsUtilHelper::percent_diff($prev_total_new_customers, $total_new_customers)); ?>%</span>
98 </span>
99 </div>
100 <div class="stats-tab-label"><?php esc_html_e('New Customers', 'latepoint'); ?></div>
101 <div class="stats-tab-info" data-late-tooltip="<?php esc_attr_e('Total number of new customers registered in selected period.', 'latepoint');?>"><div class="stats-tab-info-icon">i</div></div>
102 </div>
103 </div>
104 <?php if($daily_bookings_chart_data_values_string){ ?>
105 <div class="daily-bookings-chart-w">
106 <canvas id="chartDailyBookings"
107 data-chart-labels="<?php echo esc_attr($daily_bookings_chart_labels_string); ?>"
108 data-chart-values="<?php echo esc_attr($daily_bookings_chart_data_values_string); ?>"></canvas>
109 </div>
110 <?php }else{ ?>
111 <div class="no-results-w">
112 <div class="icon-w"><i class="latepoint-icon latepoint-icon-grid"></i></div>
113 <h2><?php esc_html_e('No Appointments Found', 'latepoint'); ?></h2>
114 <a href="#" <?php echo OsOrdersHelper::quick_order_btn_html(); ?> class="latepoint-btn"><i class="latepoint-icon latepoint-icon-plus-square"></i><span><?php esc_html_e('Create Appointment', 'latepoint'); ?></span></a>
115 </div>
116 <?php } ?>
117 </div>
118 <?php
119 // Circular pie chart, disabled for now
120 if(false && isset($pie_chart_data) && !empty($pie_chart_data['values'])){ ?>
121 <div class="stats-donut-chart-w">
122 <div class="status-donut-label"><?php esc_html_e('Breakdown by Service', 'latepoint'); ?></div>
123 <canvas class="os-donut-chart" width="140" height="140"
124 data-chart-labels="<?php echo esc_attr(implode(',', $pie_chart_data['labels'])); ?>"
125 data-chart-colors="<?php echo esc_attr(implode(',', $pie_chart_data['colors'])); ?>"
126 data-chart-values="<?php echo esc_attr(implode(',', $pie_chart_data['values'])); ?>"></canvas>
127 </div>
128 <?php } ?>
129 </div>
130 </div>
131 </div>
132 </div>
133 </div>