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> |