PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / 1.19.3
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization v1.19.3
1.19.8 1.19.7 1.19.6 1.19.5 trunk 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.12.0 1.13.0 1.14.0 1.15.0 1.15.1 1.15.2 1.15.3 1.16.0 1.16.1 1.16.2 1.16.3 1.16.4 1.16.5 1.16.6 1.16.7 1.16.8 1.17.0 1.17.6 1.17.7 1.17.8 1.17.9 1.18.0 1.18.1 1.18.2 1.18.3 1.18.4 1.18.5 1.18.6 1.18.7 1.18.8 1.18.9 1.19.0 1.19.1 1.19.2 1.19.3 1.19.4 1.3.19 1.3.20 1.4.0 1.4.1 1.5.0 1.5.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.16 1.5.17 1.5.18 1.5.19 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.8.0 1.8.1 1.8.3 1.9.0 1.9.1 1.9.2
nitropack / classes / WordPress / Settings / Optimizations.php
nitropack / classes / WordPress / Settings Last commit date
AutoPurge.php 4 months ago BeaverBuilder.php 4 months ago CPTOptimization.php 4 months ago CacheWarmup.php 3 months ago CartCache.php 4 months ago Components.php 4 months ago EditorClearCache.php 4 months ago GeneratePreview.php 7 months ago HTMLCompression.php 3 months ago Logger.php 4 months ago OptimizationLevel.php 3 months ago Optimizations.php 4 months ago PurgeCache.php 4 months ago Shortcodes.php 4 months ago StockRefresh.php 4 months ago Subscription.php 4 months ago SystemReport.php 4 months ago TestMode.php 4 months ago
Optimizations.php
91 lines
1 <?php
2 namespace NitroPack\WordPress\Settings;
3
4 use NitroPack\HttpClient\HttpClient;
5
6 defined( 'ABSPATH' ) || die( 'No script kiddies please!' );
7
8 /* Optimizations class to handle optimization related functionalities */
9 class Optimizations {
10 private static $instance = null;
11 public function __construct() {
12 add_action( 'wp_ajax_nitropack_fetch_optimizations', [ $this, 'nitropack_fetch_optimizations' ] );
13 }
14 public static function getInstance() {
15 if ( null === self::$instance ) {
16 self::$instance = new self();
17 }
18 return self::$instance;
19 }
20 /**
21 * Fetch optimization details from NitroPack API
22 */
23 public function fetch_optimizations() {
24 $planDetailsUrl = get_nitropack_integration_url( "optimization_details_json" );
25 $quickSetupHTTP = new HttpClient( $planDetailsUrl );
26 $quickSetupHTTP->timeout = 30;
27 $quickSetupHTTP->fetch( true, "GET" );
28 $resp = $quickSetupHTTP->getStatusCode() == 200 ? json_decode( $quickSetupHTTP->getBody(), true ) : false;
29 return $resp;
30 }
31 /**
32 * AJAX handler to fetch optimizations data
33 */
34 public function nitropack_fetch_optimizations() {
35 nitropack_verify_ajax_nonce( $_REQUEST );
36 $optimizations = $this->fetch_optimizations();
37 if ( ! $optimizations ) {
38 wp_send_json_error( 'Could not fetch optimizations data.' );
39 }
40 wp_send_json_success( $optimizations );
41 }
42
43 /**
44 * Render optimizations box in our Dashboard
45 */
46 public function render() {
47 $pending_optimizations = 0;
48 $total_optimized_pages = 0;
49 $purge_reason = 'N/A';
50 $last_cache_purge = 'Never';
51 $optimizations = $this->fetch_optimizations();
52 if ( $optimizations ) {
53 $last_cache_purge = ! empty( $optimizations['last_cache_purge']['timeAgo'] ) ? $optimizations['last_cache_purge']['timeAgo'] : $last_cache_purge;
54 $purge_reason = ! empty( $optimizations['last_cache_purge']['reason'] ) ? $optimizations['last_cache_purge']['reason'] : $purge_reason;
55 $pending_optimizations = ! empty( $optimizations['pending_count'] ) ? $optimizations['pending_count'] : $pending_optimizations;
56 $total_optimized_pages = ! empty( $optimizations['optimized_pages']['total'] ) ? $optimizations['optimized_pages']['total'] : $total_optimized_pages;
57 }
58 ?>
59 <div class="card card-optimized-pages">
60 <div class="card-header">
61 <h3><?php esc_html_e( 'Optimized pages', 'nitropack' ); ?></h3>
62 <div class="flex flex-row items-center" style="<?php echo $pending_optimizations ? '' : 'display: none;'; ?>"
63 id="pending-optimizations-section">
64 <img src="<?php echo plugin_dir_url( NITROPACK_FILE ) . 'view/images/loading.svg'; ?>" alt="loading"
65 class="w-4 h-4">
66 <span class="ml-2 mr-1 text-primary"> <?php esc_html_e( 'Processing', 'nitropack' ); ?>
67 <span id="pending-optimizations-count"><?php echo esc_html( $pending_optimizations ); ?></span>
68 <?php esc_html_e( 'page(s) in the background', 'nitropack' ); ?></span>
69 </div>
70 </div>
71 <div class="card-body">
72 <div class="card-body-inner">
73 <div class="optimized-pages"><span
74 data-optimized-pages-total><?php echo esc_html( $total_optimized_pages ); ?></span></div>
75 <div class="text-box">
76 <div class="time-ago"><?php esc_html_e( 'Last cache purge', 'nitropack' ); ?>: <span
77 data-last-cache-purge><?php echo esc_html( $last_cache_purge ); ?></span></div>
78 <div class="reason"><?php esc_html_e( 'Reason', 'nitropack' ); ?>: <span
79 data-purge-reason><?php echo esc_html( $purge_reason ); ?></span></div>
80 </div>
81 <?php $components = new Components();
82 echo $components->render_button( ['text' => 'Purge cache', 'classes' => 'btn btn-secondary', 'type' => 'button', 'attributes' => ['id' => 'optimizations-purge-cache', 'data-modal-target' => 'modal-purge-cache', 'data-modal-toggle' => 'modal-purge-cache' ] ] );
83 ?>
84
85 </div>
86 </div>
87 <?php require_once NITROPACK_PLUGIN_DIR . 'view/modals/modal-purge-cache.php'; ?>
88 </div>
89 <?php
90 }
91 }