PluginProbe ʕ •ᴥ•ʔ
LiteSpeed Cache / 7.8.0.1
LiteSpeed Cache v7.8.0.1
trunk 1.0.15 1.9.1.1 2.9.9.2 3.6.4 4.6 5.7.0.1 6.5.4 7.0.0.1 7.0.1 7.1 7.2 7.3 7.3.0.1 7.4 7.5 7.5.0.1 7.6 7.6.1 7.6.2 7.7 7.8 7.8.0.1 7.8.1
litespeed-cache / tpl / dash / dashboard.tpl.php
litespeed-cache / tpl / dash Last commit date
dashboard.tpl.php 2 months ago entry.tpl.php 2 months ago network_dash.tpl.php 2 months ago
dashboard.tpl.php
921 lines
1 <?php
2 /**
3 * LiteSpeed Cache Dashboard
4 *
5 * Displays the dashboard for LiteSpeed Cache plugin, including cache status,
6 * crawler status, QUIC.cloud service usage, and optimization statistics.
7 *
8 * @package LiteSpeed
9 * @since 1.0.0
10 */
11
12 namespace LiteSpeed;
13
14 defined( 'WPINC' ) || exit;
15
16 $health_scores = Health::cls()->scores();
17 $crawler_summary = Crawler::get_summary();
18
19 // Image related info
20 $img_optm_summary = Img_Optm::get_summary();
21 $img_count = Img_Optm::cls()->img_count();
22 $img_finished_percentage = 0;
23 if ( ! empty( $img_count['groups_all'] ) ) {
24 $img_finished_percentage = 100 - floor( $img_count['groups_new'] * 100 / $img_count['groups_all'] );
25 }
26 if ( 100 === $img_finished_percentage && ! empty( $img_count['groups_new'] ) ) {
27 $img_finished_percentage = 99;
28 }
29
30 $cloud_instance = Cloud::cls();
31 $cloud_instance->finish_qc_activation();
32
33 $cloud_summary = Cloud::get_summary();
34 $css_summary = CSS::get_summary();
35 $ucss_summary = UCSS::get_summary();
36 $placeholder_summary = Placeholder::get_summary();
37 $vpi_summary = VPI::get_summary();
38 $ccss_count = count( $this->load_queue( 'ccss' ) );
39 $ucss_count = count( $this->load_queue( 'ucss' ) );
40 $placeholder_queue_count = count( $this->load_queue( 'lqip' ) );
41 $vpi_queue_count = count( $this->load_queue( 'vpi' ) );
42 $can_page_load_time = defined( 'LITESPEED_SERVER_TYPE' ) && 'NONE' !== LITESPEED_SERVER_TYPE;
43
44 ?>
45
46 <div class="litespeed-dashboard">
47 <?php if ( ! $cloud_instance->activated() && ! Admin_Display::has_qc_hide_banner() ) : ?>
48 <div class="litespeed-dashboard-group">
49 <div class="litespeed-flex-container">
50 <div class="postbox litespeed-postbox litespeed-postbox-cache">
51 <div class="inside">
52 <h3 class="litespeed-title">
53 <?php esc_html_e( 'Cache Status', 'litespeed-cache' ); ?>
54 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cache' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
55 </h3>
56 <?php
57 $cache_list = array(
58 Base::O_CACHE => esc_html__( 'Public Cache', 'litespeed-cache' ),
59 Base::O_CACHE_PRIV => esc_html__( 'Private Cache', 'litespeed-cache' ),
60 Base::O_OBJECT => esc_html__( 'Object Cache', 'litespeed-cache' ),
61 Base::O_CACHE_BROWSER => esc_html__( 'Browser Cache', 'litespeed-cache' ),
62 );
63 foreach ( $cache_list as $cache_option => $cache_title ) :
64 ?>
65 <p>
66 <?php if ( $this->conf( $cache_option ) ) : ?>
67 <span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
68 <?php else : ?>
69 <span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
70 <?php endif; ?>
71 <?php echo esc_html( $cache_title ); ?>
72 </p>
73 <?php endforeach; ?>
74 </div>
75 </div>
76
77 <div class="postbox litespeed-postbox litespeed-postbox-crawler">
78 <div class="inside">
79 <h3 class="litespeed-title">
80 <?php esc_html_e( 'Crawler Status', 'litespeed-cache' ); ?>
81 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
82 </h3>
83 <p>
84 <code><?php echo esc_html( count( Crawler::cls()->list_crawlers() ) ); ?></code> <?php esc_html_e( 'Crawler(s)', 'litespeed-cache' ); ?>
85 </p>
86 <p>
87 <?php esc_html_e( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $crawler_summary['curr_crawler'] ); ?></code>
88 </p>
89 <?php if ( ! empty( $crawler_summary['curr_crawler_beginning_time'] ) ) : ?>
90 <p>
91 <span class="litespeed-bold"><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</span>
92 <?php echo esc_html( Utility::readable_time( $crawler_summary['curr_crawler_beginning_time'] ) ); ?>
93 </p>
94 <?php endif; ?>
95 <?php if ( ! empty( $crawler_summary['last_start_time'] ) ) : ?>
96 <p class="litespeed-desc">
97 <span class="litespeed-bold"><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</span>
98 <?php echo esc_html( Utility::readable_time( $crawler_summary['last_start_time'] ) ); ?>
99 </p>
100 <?php endif; ?>
101 <?php if ( ! empty( $crawler_summary['end_reason'] ) ) : ?>
102 <p class="litespeed-desc">
103 <span class="litespeed-bold"><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</span>
104 <?php echo esc_html( $crawler_summary['end_reason'] ); ?>
105 </p>
106 <?php endif; ?>
107 <?php if ( ! empty( $crawler_summary['last_crawled'] ) ) : ?>
108 <p class="litespeed-desc">
109 <?php
110 printf(
111 esc_html__( '%1$s %2$d item(s)', 'litespeed-cache' ),
112 '<span class="litespeed-bold">' . esc_html__( 'Last crawled:', 'litespeed-cache' ) . '</span>',
113 esc_html( $crawler_summary['last_crawled'] )
114 );
115 ?>
116 </p>
117 <?php endif; ?>
118 </div>
119 </div>
120
121 <?php
122 $news = $cloud_instance->load_qc_status_for_dash( 'news_dash_guest' );
123 if ( ! empty( $news ) ) :
124 ?>
125 <div class="postbox litespeed-postbox">
126 <div class="inside litespeed-text-center">
127 <h3 class="litespeed-title">
128 <?php esc_html_e( 'News', 'litespeed-cache' ); ?>
129 </h3>
130 <div class="litespeed-top20">
131 <?php echo wp_kses_post( $news ); ?>
132 </div>
133 </div>
134 </div>
135 <?php endif; ?>
136 </div>
137 </div>
138 <?php endif; ?>
139
140 <div class="litespeed-dashboard-qc">
141 <?php if ( ! $cloud_instance->activated() && ! Admin_Display::has_qc_hide_banner() ) : ?>
142 <div class="litespeed-dashboard-unlock">
143 <div>
144 <h3 class="litespeed-dashboard-unlock-title">
145 <strong class="litespeed-qc-text-gradient">
146 <?php esc_html_e( 'Accelerate, Optimize, Protect', 'litespeed-cache' ); ?>
147 </strong>
148 </h3>
149 <p class="litespeed-dashboard-unlock-desc">
150 <?php echo wp_kses_post( __( 'Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>.', 'litespeed-cache' ) ); ?>
151 </p>
152 <p>
153 <?php esc_html_e( 'Free monthly quota available. Can also be used anonymously (no email required).', 'litespeed-cache' ); ?>
154 </p>
155 <p>
156 <a class="button button-primary" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE ) ); ?>">
157 <span class="dashicons dashicons-yes"></span>
158 <?php esc_html_e( 'Enable QUIC.cloud services', 'litespeed-cache' ); ?>
159 </a>
160 </p>
161 <p>
162 <a class="litespeed-top10" href="<?php echo esc_url( Utility::build_url( Router::ACTION_ADMIN_DISPLAY, Admin_Display::TYPE_QC_HIDE_BANNER ) ); ?>">
163 <?php esc_html_e( 'Do not show this again', 'litespeed-cache' ); ?>
164 </a>
165 </p>
166 <p class="litespeed-dashboard-unlock-footer">
167 <?php esc_html_e( 'QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.', 'litespeed-cache' ); ?><br>
168 <a href="https://www.quic.cloud/" target="_blank">
169 <?php esc_html_e( 'Learn More about QUIC.cloud', 'litespeed-cache' ); ?>
170 </a>
171 <br>
172 </p>
173 </div>
174 </div>
175 <?php endif; ?>
176
177 <div class="litespeed-dashboard-qc-enable">
178 <div class="litespeed-dashboard-header">
179 <h3 class="litespeed-dashboard-title litespeed-dashboard-title--w-btn">
180 <span class="litespeed-right10"><?php esc_html_e( 'QUIC.cloud Service Usage Statistics', 'litespeed-cache' ); ?></span>
181 <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_USAGE ) ); ?>" class="button button-secondary button-small">
182 <span class="dashicons dashicons-update"></span> <?php esc_html_e( 'Refresh Usage', 'litespeed-cache' ); ?>
183 <span class="screen-reader-text"><?php esc_html_e( 'Sync data from Cloud', 'litespeed-cache' ); ?></span>
184 </a>
185 </h3>
186 <hr>
187 <a href="https://docs.litespeedtech.com/lscache/lscwp/dashboard/#usage-statistics" target="_blank" class="litespeed-learn-more"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
188 </div>
189
190 <?php if ( ! $cloud_instance->activated() && Admin_Display::has_qc_hide_banner() ) : ?>
191 <p class="litespeed-desc litespeed-margin-top-remove">
192 <?php
193 printf(
194 esc_html__( 'The features below are provided by %s', 'litespeed-cache' ),
195 '<a href="https://quic.cloud" target="_blank">QUIC.cloud</a>'
196 );
197 ?>
198 </p>
199 <?php endif; ?>
200
201 <div class="litespeed-dashboard-stats-wrapper">
202 <?php
203 $cat_list = array(
204 'img_optm' => esc_html__( 'Image Optimization', 'litespeed-cache' ),
205 'page_optm' => esc_html__( 'Page Optimization', 'litespeed-cache' ),
206 'cdn' => esc_html__( 'CDN Bandwidth', 'litespeed-cache' ),
207 'lqip' => esc_html__( 'Low Quality Image Placeholder', 'litespeed-cache' ),
208 );
209
210 foreach ( $cat_list as $svc => $svc_title ) :
211 $finished_percentage = 0;
212 $total_used = '-';
213 $used = '-';
214 $quota = '-';
215 $pag_used = '-';
216 $pag_total = '-';
217 $pag_width = 0;
218 $percentage_bg = 'success';
219 $pag_txt_color = '';
220 $usage = false;
221
222 if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
223 $usage = $cloud_summary[ 'usage.' . $svc ];
224 $finished_percentage = floor( $usage['used'] * 100 / $usage['quota'] );
225 $used = (int) $usage['used'];
226 $quota = (int) $usage['quota'];
227 $pag_used = ! empty( $usage['pag_used'] ) ? (int) $usage['pag_used'] : 0;
228 $pag_bal = ! empty( $usage['pag_bal'] ) ? (int) $usage['pag_bal'] : 0;
229 $pag_total = $pag_used + $pag_bal;
230 if ( ! empty( $usage['total_used'] ) ) {
231 $total_used = (int) $usage['total_used'];
232 }
233
234 if ( $pag_total ) {
235 $pag_width = round( $pag_used / $pag_total * 100 ) . '%';
236 }
237
238 if ( $finished_percentage > 85 ) {
239 $percentage_bg = 'warning';
240 if ( $finished_percentage > 95 ) {
241 $percentage_bg = 'danger';
242 if ( $pag_bal ) {
243 $percentage_bg = 'warning';
244 $pag_txt_color = 'litespeed-success';
245 }
246 }
247 }
248 }
249 ?>
250 <div class="postbox litespeed-postbox">
251 <div class="inside">
252 <h3 class="litespeed-title"><?php echo esc_html( $svc_title ); ?></h3>
253 <div class="litespeed-flex-container">
254 <div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo esc_attr( $percentage_bg ); ?>">
255 <?php echo wp_kses( GUI::pie( $finished_percentage, 60, false ), GUI::allowed_svg_tags() ); ?>
256 </div>
257 <div>
258 <div class="litespeed-dashboard-stats">
259 <h3><?php echo 'img_optm' === $svc ? esc_html__( 'Fast Queue Usage', 'litespeed-cache' ) : esc_html__( 'Usage', 'litespeed-cache' ); ?></h3>
260 <p>
261 <strong><?php echo esc_html( $used ); ?></strong>
262 <?php if ( $used !== $quota ) : ?>
263 <span class="litespeed-desc"> / <?php echo esc_html( $quota ); ?></span>
264 <?php endif; ?>
265 </p>
266 </div>
267 </div>
268 </div>
269 <?php if ( $pag_total > 0 ) : ?>
270 <p class="litespeed-dashboard-stats-payg <?php echo esc_attr( $pag_txt_color ); ?>">
271 <?php esc_html_e( 'PAYG Balance', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $pag_bal ); ?></strong>
272 <button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo esc_attr( sprintf( esc_html__( 'PAYG used this month: %s. PAYG balance and usage not included in above quota calculation.', 'litespeed-cache' ), $pag_used ) ); ?>">
273 <span class="dashicons dashicons-info"></span>
274 <span class="screen-reader-text"><?php esc_html_e( 'Pay as You Go Usage Statistics', 'litespeed-cache' ); ?></span>
275 </button>
276 </p>
277 <?php endif; ?>
278 <?php if ( 'page_optm' === $svc && ! empty( $usage['sub_svc'] ) ) : ?>
279 <p class="litespeed-dashboard-stats-total">
280 <?php
281 $i = 0;
282 foreach ( $usage['sub_svc'] as $sub_svc => $sub_usage ) :
283 ?>
284 <span class="<?php echo $i++ > 0 ? 'litespeed-left10' : ''; ?>">
285 <?php echo esc_html( strtoupper( $sub_svc ) ); ?>: <strong><?php echo (int) $sub_usage; ?></strong>
286 </span>
287 <?php endforeach; ?>
288 </p>
289 <?php endif; ?>
290 <?php if ( 'img_optm' === $svc ) : ?>
291 <p class="litespeed-dashboard-stats-total">
292 <?php esc_html_e( 'Total Usage', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $total_used ); ?> / </strong>
293 <button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php esc_attr_e( 'Total images optimized in this month', 'litespeed-cache' ); ?>">
294 <span class="dashicons dashicons-info"></span>
295 </button>
296 </p>
297 <div class="clear"></div>
298 <?php endif; ?>
299 <?php if ( isset( $usage['remaining_daily_quota'] ) && $usage['remaining_daily_quota'] >= 0 && isset( $usage['daily_quota'] ) && $usage['daily_quota'] >= 0 ) : ?>
300 <p class="litespeed-dashboard-stats-total">
301 <?php esc_html_e( 'Remaining Daily Quota', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $usage['remaining_daily_quota'] ); ?> / <?php echo esc_html( $usage['daily_quota'] ); ?></strong>
302 </p>
303 <div class="clear"></div>
304 <?php endif; ?>
305 </div>
306 </div>
307 <?php endforeach; ?>
308 <?php if ( ! empty( $cloud_summary['partner'] ) ) : ?>
309 <div class="litespeed-postbox litespeed-postbox-partner">
310 <div class="inside">
311 <h3 class="litespeed-title"><?php esc_html_e( 'Partner Benefits Provided by', 'litespeed-cache' ); ?></h3>
312 <div>
313 <?php if ( ! empty( $cloud_summary['partner']['logo'] ) ) : ?>
314 <?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
315 <a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank">
316 <img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
317 </a>
318 <?php else : ?>
319 <img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
320 <?php endif; ?>
321 <?php elseif ( ! empty( $cloud_summary['partner']['name'] ) ) : ?>
322 <?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
323 <a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank">
324 <span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
325 </a>
326 <?php else : ?>
327 <span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
328 <?php endif; ?>
329 <?php endif; ?>
330 </div>
331 </div>
332 </div>
333 <?php endif; ?>
334 </div>
335
336 <p class="litespeed-right litespeed-qc-dashboard-link">
337 <?php
338 if ( ! empty( $cloud_summary['partner'] ) && ! empty( $cloud_summary['partner']['login_title'] ) && ! empty( $cloud_summary['partner']['login_link'] ) ) :
339 Doc::learn_more( $cloud_summary['partner']['login_link'], $cloud_summary['partner']['login_title'], true, 'button litespeed-btn-warning' );
340 elseif ( ! empty( $cloud_summary['partner'] ) && ! empty( $cloud_summary['partner']['disable_qc_login'] ) ) :
341 // Skip rendering any link or button.
342 echo '';
343 else :
344 if ( ! $cloud_instance->activated() ) :
345 Doc::learn_more(
346 Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE ),
347 esc_html__( 'Enable QUIC.cloud Services', 'litespeed-cache' ),
348 true,
349 'button litespeed-btn-warning'
350 );
351 elseif ( ! empty( $cloud_summary['qc_activated'] ) && 'anonymous' !== $cloud_summary['qc_activated'] ) :
352 ?>
353 <a href="<?php echo esc_url( $cloud_instance->qc_link() ); ?>" class="litespeed-link-with-icon" target="qc">
354 <?php esc_html_e( 'Go to QUIC.cloud dashboard', 'litespeed-cache' ); ?> <span class="dashicons dashicons-external"></span>
355 </a>
356 <?php else : ?>
357 <?php
358 Doc::learn_more(
359 Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_LINK ),
360 esc_html__( 'Link to QUIC.cloud', 'litespeed-cache' ),
361 true,
362 'button litespeed-btn-warning'
363 );
364 ?>
365 <?php endif; ?>
366 <?php endif; ?>
367 </p>
368
369 <div class="litespeed-dashboard-group">
370 <hr>
371 <div class="litespeed-flex-container">
372 <div class="postbox litespeed-postbox litespeed-postbox-pagetime">
373 <div class="inside">
374 <h3 class="litespeed-title">
375 <?php esc_html_e( 'Page Load Time', 'litespeed-cache' ); ?>
376 <?php if ( $can_page_load_time ) : ?>
377 <?php $closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_HEALTH ); ?>
378 <?php if ( $closest_server ) : ?>
379 <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_HEALTH ) ) ); ?>"
380 data-balloon-pos="up"
381 data-balloon-break
382 aria-label="<?php echo esc_attr( sprintf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ) ); ?>"
383 data-litespeed-cfm="<?php esc_attr_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"
384 class="litespeed-title-right-icon">
385 <i class='litespeed-quic-icon'></i> <small><?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></small>
386 </a>
387 <?php endif; ?>
388 <?php endif; ?>
389 </h3>
390 <div>
391 <div class="litespeed-flex-container">
392 <?php if ( $can_page_load_time && ! empty( $health_scores['speed_before'] ) ) : ?>
393 <div class="litespeed-score-col">
394 <p class="litespeed-text-grey">
395 <?php esc_html_e( 'Before', 'litespeed-cache' ); ?>
396 </p>
397 <div class="litespeed-text-md litespeed-text-grey">
398 <?php echo esc_html( $health_scores['speed_before'] ); ?><span class="litespeed-text-large">s</span>
399 </div>
400 </div>
401 <div class="litespeed-score-col">
402 <p class="litespeed-text-grey">
403 <?php esc_html_e( 'After', 'litespeed-cache' ); ?>
404 </p>
405 <div class="litespeed-text-md litespeed-text-success">
406 <?php echo esc_html( $health_scores['speed_after'] ); ?><span class="litespeed-text-large">s</span>
407 </div>
408 </div>
409 <div class="litespeed-score-col litespeed-score-col--imp">
410 <p class="litespeed-text-grey" style="white-space: nowrap;">
411 <?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
412 </p>
413 <div class="litespeed-text-jumbo litespeed-text-success">
414 <?php echo esc_html( $health_scores['speed_improved'] ); ?><span class="litespeed-text-large">%</span>
415 </div>
416 </div>
417 <?php else : ?>
418 <div>
419 <p><?php esc_html_e( 'You must be using one of the following products in order to measure Page Load Time:', 'litespeed-cache' ); ?></p>
420 <a href="https://www.litespeedtech.com/products/litespeed-web-server" target="_blank"><?php esc_html_e( 'LiteSpeed Web Server', 'litespeed-cache' ); ?></a>
421 <br />
422 <a href="https://openlitespeed.org/" target="_blank"><?php esc_html_e( 'OpenLiteSpeed Web Server', 'litespeed-cache' ); ?></a>
423 <br />
424 <a href="https://www.litespeedtech.com/products/litespeed-web-adc" target="_blank"><?php esc_html_e( 'LiteSpeed Web ADC', 'litespeed-cache' ); ?></a>
425 <br />
426 <a href="https://quic.cloud" target="_blank"><?php esc_html_e( 'QUIC.cloud CDN', 'litespeed-cache' ); ?></a>
427 </div>
428 <?php endif; ?>
429 </div>
430 </div>
431 </div>
432 <?php if ( $can_page_load_time ) : ?>
433 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
434 <?php if ( ! empty( $cloud_summary['last_request.health-speed'] ) ) : ?>
435 <span class="litespeed-right10">
436 <?php
437 printf(
438 esc_html__( 'Requested: %s ago', 'litespeed-cache' ),
439 '<span data-balloon-pos="up" aria-label="' . esc_attr( Utility::readable_time( $cloud_summary['last_request.health-speed'] ) ) . '">' . esc_html( human_time_diff( $cloud_summary['last_request.health-speed'] ) ) . '</span>'
440 );
441 ?>
442 </span>
443 <?php endif; ?>
444 <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED ) ); ?>" class="button button-secondary button-small">
445 <span class="dashicons dashicons-update"></span>
446 <?php esc_html_e( 'Refresh', 'litespeed-cache' ); ?>
447 <span class="screen-reader-text"><?php esc_html_e( 'Refresh page load time', 'litespeed-cache' ); ?></span>
448 </a>
449 </div>
450 <?php endif; ?>
451 </div>
452
453 <div class="postbox litespeed-postbox litespeed-postbox-pagespeed">
454 <div class="inside">
455 <h3 class="litespeed-title">
456 <?php esc_html_e( 'PageSpeed Score', 'litespeed-cache' ); ?>
457 <?php $guest_option = Base::O_GUEST; ?>
458 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-general#settings' ) ); ?>" class="litespeed-title-right-icon"><?php echo esc_html( Lang::title( $guest_option ) ); ?></a>
459 <?php if ( $this->conf( $guest_option ) ) : ?>
460 <span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
461 <?php else : ?>
462 <span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
463 <?php endif; ?>
464 </h3>
465 <div>
466 <div class="litespeed-margin-bottom20">
467 <div class="litespeed-row-flex" style="margin-left: -10px;">
468 <?php if ( ! empty( $health_scores['score_before'] ) ) : ?>
469 <div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
470 <p class="litespeed-text-grey litespeed-text-center">
471 <?php esc_html_e( 'Before', 'litespeed-cache' ); ?>
472 </p>
473 <div class="litespeed-promo-score">
474 <?php echo wp_kses( GUI::pie( $health_scores['score_before'], 45, false, true, 'litespeed-pie-' . esc_attr( GUI::cls()->get_cls_of_pagescore( $health_scores['score_before'] ) ) ), GUI::allowed_svg_tags() ); ?>
475 </div>
476 </div>
477 <div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
478 <p class="litespeed-text-grey litespeed-text-center">
479 <?php esc_html_e( 'After', 'litespeed-cache' ); ?>
480 </p>
481 <div class="litespeed-promo-score">
482 <?php echo wp_kses( GUI::pie( $health_scores['score_after'], 45, false, true, 'litespeed-pie-' . esc_attr( GUI::cls()->get_cls_of_pagescore( $health_scores['score_after'] ) ) ), GUI::allowed_svg_tags() ); ?>
483 </div>
484 </div>
485 <div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
486 <p class="litespeed-text-grey" style="white-space: nowrap;">
487 <?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
488 </p>
489 <div class="litespeed-postbox-score-improve litespeed-text-fern">
490 <?php echo esc_html( $health_scores['score_improved'] ); ?><span class="litespeed-text-large">%</span>
491 </div>
492 </div>
493 <?php endif; ?>
494 </div>
495 </div>
496 </div>
497 </div>
498 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
499 <?php if ( ! empty( $cloud_summary['last_request.health-score'] ) ) : ?>
500 <span class="litespeed-right10">
501 <?php
502 printf(
503 esc_html__( 'Requested: %s ago', 'litespeed-cache' ),
504 '<span data-balloon-pos="up" aria-label="' . esc_attr( Utility::readable_time( $cloud_summary['last_request.health-score'] ) ) . '">' . esc_html( human_time_diff( $cloud_summary['last_request.health-score'] ) ) . '</span>'
505 );
506 ?>
507 </span>
508 <?php endif; ?>
509 <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SCORE ) ); ?>" class="button button-secondary button-small">
510 <span class="dashicons dashicons-update"></span>
511 <?php esc_html_e( 'Refresh', 'litespeed-cache' ); ?>
512 <span class="screen-reader-text"><?php esc_html_e( 'Refresh page score', 'litespeed-cache' ); ?></span>
513 </a>
514 </div>
515 </div>
516
517 <div class="postbox litespeed-postbox litespeed-postbox-double litespeed-postbox-imgopt">
518 <div class="inside">
519 <h3 class="litespeed-title">
520 <?php esc_html_e( 'Image Optimization Summary', 'litespeed-cache' ); ?>
521 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-img_optm' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
522 </h3>
523 <div class="litespeed-postbox-double-content">
524 <div class="litespeed-postbox-double-col">
525 <div class="litespeed-flex-container">
526 <div class="litespeed-icon-vertical-middle">
527 <?php echo wp_kses( GUI::pie( $img_finished_percentage, 70, true ), GUI::allowed_svg_tags() ); ?>
528 </div>
529 <div>
530 <div class="litespeed-dashboard-stats">
531 <a data-litespeed-onlyonce class="button button-primary"
532 <?php if ( ! empty( $img_count['groups_new'] ) || ! empty( $img_count[ 'groups.' . Img_Optm::STATUS_RAW ] ) ) : ?>
533 href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_NEW_REQ ) ); ?>"
534 <?php else : ?>
535 href="javascript:;" disabled
536 <?php endif; ?>>
537 <span class="dashicons dashicons-images-alt2"></span><?php esc_html_e( 'Send Optimization Request', 'litespeed-cache' ); ?>
538 </a>
539 </div>
540 </div>
541 </div>
542 <p>
543 <?php esc_html_e( 'Total Reduction', 'litespeed-cache' ); ?>: <code><?php echo isset( $img_optm_summary['reduced'] ) ? esc_html( Utility::real_size( $img_optm_summary['reduced'] ) ) : '-'; ?></code>
544 </p>
545 <p>
546 <?php esc_html_e( 'Images Pulled', 'litespeed-cache' ); ?>: <code><?php echo isset( $img_optm_summary['img_taken'] ) ? esc_html( $img_optm_summary['img_taken'] ) : '-'; ?></code>
547 </p>
548 </div>
549 <div class="litespeed-postbox-double-col">
550 <?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
551 <p class="litespeed-success">
552 <?php esc_html_e( 'Images requested', 'litespeed-cache' ); ?>:
553 <code>
554 <?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ); ?>
555 (<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ) ); ?>)
556 </code>
557 </p>
558 <?php endif; ?>
559 <?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
560 <p class="litespeed-success">
561 <?php esc_html_e( 'Images notified to pull', 'litespeed-cache' ); ?>:
562 <code>
563 <?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ); ?>
564 (<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ) ); ?>)
565 </code>
566 </p>
567 <?php endif; ?>
568 <p>
569 <?php esc_html_e( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $img_optm_summary['last_requested'] ) ? esc_html( Utility::readable_time( $img_optm_summary['last_requested'] ) ) : '-'; ?></code>
570 </p>
571 <p>
572 <?php esc_html_e( 'Last Pull', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $img_optm_summary['last_pull'] ) ? esc_html( Utility::readable_time( $img_optm_summary['last_pull'] ) ) : '-'; ?></code>
573 </p>
574 <?php
575 $opt_list = array(
576 Base::O_IMG_OPTM_AUTO => Lang::title( Base::O_IMG_OPTM_AUTO ),
577 );
578 foreach ( $opt_list as $opt_id => $opt_title ) :
579 ?>
580 <p>
581 <?php if ( $this->conf( $opt_id ) ) : ?>
582 <span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
583 <?php else : ?>
584 <span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
585 <?php endif; ?>
586 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-img_optm#settings' ) ); ?>"><?php echo esc_html( $opt_title ); ?></a>
587 </p>
588 <?php endforeach; ?>
589 </div>
590 </div>
591 </div>
592 </div>
593
594 <div class="postbox litespeed-postbox litespeed-postbox-cache">
595 <div class="inside">
596 <h3 class="litespeed-title">
597 <?php esc_html_e( 'Cache Status', 'litespeed-cache' ); ?>
598 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cache' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
599 </h3>
600 <?php
601 $cache_list = array(
602 Base::O_CACHE => esc_html__( 'Public Cache', 'litespeed-cache' ),
603 Base::O_CACHE_PRIV => esc_html__( 'Private Cache', 'litespeed-cache' ),
604 Base::O_OBJECT => esc_html__( 'Object Cache', 'litespeed-cache' ),
605 Base::O_CACHE_BROWSER => esc_html__( 'Browser Cache', 'litespeed-cache' ),
606 );
607 foreach ( $cache_list as $cache_option => $cache_title ) :
608 ?>
609 <p>
610 <?php if ( $this->conf( $cache_option ) ) : ?>
611 <span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
612 <?php else : ?>
613 <span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
614 <?php endif; ?>
615 <?php echo esc_html( $cache_title ); ?>
616 </p>
617 <?php endforeach; ?>
618 </div>
619 </div>
620
621 <div class="postbox litespeed-postbox litespeed-postbox-ccss">
622 <div class="inside">
623 <h3 class="litespeed-title">
624 <?php esc_html_e( 'Critical CSS', 'litespeed-cache' ); ?>
625 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
626 </h3>
627 <?php if ( ! empty( $css_summary['last_request_ccss'] ) ) : ?>
628 <p>
629 <?php
630 printf(
631 esc_html__( 'Last generated: %s', 'litespeed-cache' ),
632 '<code>' . esc_html( Utility::readable_time( $css_summary['last_request_ccss'] ) ) . '</code>'
633 );
634 ?>
635 </p>
636 <p>
637 <?php
638 printf(
639 esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
640 '<code>' . esc_html( $css_summary['last_spent_ccss'] ) . 's</code>'
641 );
642 ?>
643 </p>
644 <?php endif; ?>
645 <p>
646 <?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $ccss_count ) ? esc_html( $ccss_count ) : '-'; ?></code>
647 <a href="<?php echo ! empty( $ccss_count ) ? esc_url( Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_CCSS ) ) : 'javascript:;'; ?>"
648 class="button button-secondary button-small <?php echo empty( $ccss_count ) ? 'disabled' : ''; ?>">
649 <?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
650 </a>
651 </p>
652 </div>
653 <?php if ( ! empty( $cloud_summary['last_request.ccss'] ) ) : ?>
654 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
655 <?php
656 printf(
657 esc_html__( 'Last requested: %s', 'litespeed-cache' ),
658 esc_html( Utility::readable_time( $cloud_summary['last_request.ccss'] ) )
659 );
660 ?>
661 </div>
662 <?php endif; ?>
663 </div>
664
665 <div class="postbox litespeed-postbox litespeed-postbox-ucss">
666 <div class="inside">
667 <h3 class="litespeed-title">
668 <?php esc_html_e( 'Unique CSS', 'litespeed-cache' ); ?>
669 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
670 </h3>
671 <?php if ( ! empty( $ucss_summary['last_request'] ) ) : ?>
672 <p>
673 <?php
674 printf(
675 esc_html__( 'Last generated: %s', 'litespeed-cache' ),
676 '<code>' . esc_html( Utility::readable_time( $ucss_summary['last_request'] ) ) . '</code>'
677 );
678 ?>
679 </p>
680 <p>
681 <?php
682 printf(
683 esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
684 '<code>' . esc_html( $ucss_summary['last_spent'] ) . 's</code>'
685 );
686 ?>
687 </p>
688 <?php endif; ?>
689 <p>
690 <?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $ucss_count ) ? esc_html( $ucss_count ) : '-'; ?></code>
691 <a href="<?php echo ! empty( $ucss_count ) ? esc_url( Utility::build_url( Router::ACTION_UCSS, UCSS::TYPE_GEN ) ) : 'javascript:;'; ?>"
692 class="button button-secondary button-small <?php echo empty( $ucss_count ) ? 'disabled' : ''; ?>">
693 <?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
694 </a>
695 </p>
696 </div>
697 <?php if ( ! empty( $cloud_summary['last_request.ucss'] ) ) : ?>
698 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
699 <?php
700 printf(
701 esc_html__( 'Last requested: %s', 'litespeed-cache' ),
702 esc_html( Utility::readable_time( $cloud_summary['last_request.ucss'] ) )
703 );
704 ?>
705 </div>
706 <?php endif; ?>
707 </div>
708
709 <div class="postbox litespeed-postbox litespeed-postbox-lqip">
710 <div class="inside">
711 <h3 class="litespeed-title">
712 <?php esc_html_e( 'Low Quality Image Placeholder', 'litespeed-cache' ); ?>
713 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_media' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
714 </h3>
715 <?php if ( ! empty( $placeholder_summary['last_request'] ) ) : ?>
716 <p>
717 <?php
718 printf(
719 esc_html__( 'Last generated: %s', 'litespeed-cache' ),
720 '<code>' . esc_html( Utility::readable_time( $placeholder_summary['last_request'] ) ) . '</code>'
721 );
722 ?>
723 </p>
724 <p>
725 <?php
726 printf(
727 esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
728 '<code>' . esc_html( $placeholder_summary['last_spent'] ) . 's</code>'
729 );
730 ?>
731 </p>
732 <?php endif; ?>
733 <p>
734 <?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $placeholder_queue_count ) ? esc_html( $placeholder_queue_count ) : '-'; ?></code>
735 <a href="<?php echo ! empty( $placeholder_queue_count ) ? esc_url( Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ) ) : 'javascript:;'; ?>"
736 class="button button-secondary button-small <?php echo empty( $placeholder_queue_count ) ? 'disabled' : ''; ?>">
737 <?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
738 </a>
739 </p>
740 </div>
741 <?php if ( ! empty( $cloud_summary['last_request.lqip'] ) ) : ?>
742 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
743 <?php
744 printf(
745 esc_html__( 'Last requested: %s', 'litespeed-cache' ),
746 esc_html( Utility::readable_time( $cloud_summary['last_request.lqip'] ) )
747 );
748 ?>
749 </div>
750 <?php endif; ?>
751 </div>
752
753 <div class="postbox litespeed-postbox litespeed-postbox-vpi">
754 <div class="inside">
755 <h3 class="litespeed-title">
756 <?php esc_html_e( 'Viewport Image', 'litespeed-cache' ); ?> (VPI)
757 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_vpi' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
758 </h3>
759 <?php if ( ! empty( $vpi_summary['last_request'] ) ) : ?>
760 <p>
761 <?php
762 printf(
763 esc_html__( 'Last generated: %s', 'litespeed-cache' ),
764 '<code>' . esc_html( Utility::readable_time( $vpi_summary['last_request'] ) ) . '</code>'
765 );
766 ?>
767 </p>
768 <p>
769 <?php
770 printf(
771 esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
772 '<code>' . esc_html( $vpi_summary['last_spent'] ) . 's</code>'
773 );
774 ?>
775 </p>
776 <?php endif; ?>
777 <p>
778 <?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $vpi_queue_count ) ? esc_html( $vpi_queue_count ) : '-'; ?></code>
779 <a href="<?php echo ! empty( $vpi_queue_count ) ? esc_url( Utility::build_url( Router::ACTION_VPI, VPI::TYPE_GEN ) ) : 'javascript:;'; ?>"
780 class="button button-secondary button-small <?php echo empty( $vpi_queue_count ) ? 'disabled' : ''; ?>">
781 <?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
782 </a>
783 </p>
784 </div>
785 <?php if ( ! empty( $cloud_summary['last_request.vpi'] ) ) : ?>
786 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
787 <?php
788 printf(
789 esc_html__( 'Last requested: %s', 'litespeed-cache' ),
790 esc_html( Utility::readable_time( $cloud_summary['last_request.vpi'] ) )
791 );
792 ?>
793 </div>
794 <?php endif; ?>
795 </div>
796
797 <div class="postbox litespeed-postbox litespeed-postbox-crawler">
798 <div class="inside">
799 <h3 class="litespeed-title">
800 <?php esc_html_e( 'Crawler Status', 'litespeed-cache' ); ?>
801 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
802 </h3>
803 <p>
804 <code><?php echo esc_html( count( Crawler::cls()->list_crawlers() ) ); ?></code> <?php esc_html_e( 'Crawler(s)', 'litespeed-cache' ); ?>
805 </p>
806 <p>
807 <?php esc_html_e( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $crawler_summary['curr_crawler'] ); ?></code>
808 </p>
809 <?php if ( ! empty( $crawler_summary['curr_crawler_beginning_time'] ) ) : ?>
810 <p>
811 <span class="litespeed-bold"><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</span>
812 <?php echo esc_html( Utility::readable_time( $crawler_summary['curr_crawler_beginning_time'] ) ); ?>
813 </p>
814 <?php endif; ?>
815 <?php if ( ! empty( $crawler_summary['last_start_time'] ) ) : ?>
816 <p class="litespeed-desc">
817 <span class="litespeed-bold"><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</span>
818 <?php echo esc_html( Utility::readable_time( $crawler_summary['last_start_time'] ) ); ?>
819 </p>
820 <?php endif; ?>
821 <?php if ( ! empty( $crawler_summary['end_reason'] ) ) : ?>
822 <p class="litespeed-desc">
823 <span class="litespeed-bold"><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</span>
824 <?php echo esc_html( $crawler_summary['end_reason'] ); ?>
825 </p>
826 <?php endif; ?>
827 <?php if ( ! empty( $crawler_summary['last_crawled'] ) ) : ?>
828 <p class="litespeed-desc">
829 <?php
830 printf(
831 esc_html__( '%1$s %2$d item(s)', 'litespeed-cache' ),
832 '<span class="litespeed-bold">' . esc_html__( 'Last crawled:', 'litespeed-cache' ) . '</span>',
833 esc_html( $crawler_summary['last_crawled'] )
834 );
835 ?>
836 </p>
837 <?php endif; ?>
838 </div>
839 </div>
840
841 <div class="postbox litespeed-postbox litespeed-postbox-quiccloud <?php echo empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ? 'litespeed-postbox--quiccloud' : ''; ?>">
842 <div class="inside">
843 <h3 class="litespeed-title litespeed-dashboard-title--w-btn">
844 <span class="litespeed-quic-icon"></span><?php esc_html_e( 'QUIC.cloud CDN', 'litespeed-cache' ); ?>
845 <?php if ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) : ?>
846 <a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" class="litespeed-title-right-icon" target="_blank"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
847 <?php else : ?>
848 <a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cdn' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
849 <?php endif; ?>
850 </h3>
851 <?php if ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) : ?>
852 <div class="litespeed-text-center litespeed-empty-space-medium">
853 <p class="litespeed-margin-bottom20">
854 <?php
855 Doc::learn_more(
856 esc_url( Utility::build_url( Router::ACTION_CLOUD, $cloud_instance->activated() ? Cloud::TYPE_ENABLE_CDN : Cloud::TYPE_ACTIVATE ) ),
857 '<span class="dashicons dashicons-saved"></span>' . esc_html__( 'Enable QUIC.cloud CDN', 'litespeed-cache' ),
858 true,
859 'button button-primary litespeed-button-cta'
860 );
861 ?>
862 </p>
863 <p class="litespeed-margin-bottom10 litespeed-top20 litespeed-text-md">
864 <strong class="litespeed-qc-text-gradient"><?php esc_html_e( 'Best available WordPress performance', 'litespeed-cache' ); ?></strong>
865 </p>
866 <p class="litespeed-margin-bottom20 litespeed-margin-top-remove">
867 <?php
868 printf(
869 esc_html__( 'Globally fast TTFB, easy setup, and %s!', 'litespeed-cache' ),
870 '<a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" target="_blank">' . esc_html__( 'more', 'litespeed-cache' ) . '</a>'
871 );
872 ?>
873 </p>
874 </div>
875 <?php else : ?>
876 <?php echo wp_kses_post( $cloud_instance->load_qc_status_for_dash( 'cdn_dash_mini' ) ); ?>
877 <?php endif; ?>
878 </div>
879 <?php if ( $cloud_instance->activated() ) : ?>
880 <div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
881 <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_STATUS ) ); ?>"
882 class="button button-<?php echo 'cdn' !== $cloud_summary['qc_activated'] ? 'link' : 'secondary'; ?> button-small">
883 <?php if ( 'cdn' === $cloud_summary['qc_activated'] ) : ?>
884 <span class="dashicons dashicons-update"></span>
885 <?php endif; ?>
886 <?php esc_html_e( 'Refresh Status', 'litespeed-cache' ); ?>
887 <span class="screen-reader-text"><?php esc_html_e( 'Refresh QUIC.cloud status', 'litespeed-cache' ); ?></span>
888 </a>
889 </div>
890 <?php endif; ?>
891 </div>
892
893 <?php
894 $promo_mini = $cloud_instance->load_qc_status_for_dash( 'promo_mini' );
895 if ( $promo_mini ) :
896 echo wp_kses_post( $promo_mini );
897 endif;
898 ?>
899
900 <?php if ( $cloud_instance->activated() ) : ?>
901 <?php
902 $news = $cloud_instance->load_qc_status_for_dash( 'news_dash' );
903 if ( $news ) :
904 ?>
905 <div class="postbox litespeed-postbox">
906 <div class="inside litespeed-text-center">
907 <h3 class="litespeed-title">
908 <?php esc_html_e( 'News', 'litespeed-cache' ); ?>
909 </h3>
910 <div class="litespeed-top20">
911 <?php echo wp_kses_post( $news ); ?>
912 </div>
913 </div>
914 </div>
915 <?php endif; ?>
916 <?php endif; ?>
917 </div>
918 </div>
919 </div>
920 </div>
921 </div>