PluginProbe ʕ •ᴥ•ʔ
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization / trunk
NitroPack – Performance, Page Speed & Cache Plugin for Core Web Vitals, CDN & Image Optimization vtrunk
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 1 month ago CacheWarmup.php 1 month ago CartCache.php 4 months ago Components.php 1 month ago EditorClearCache.php 1 month ago GeneratePreview.php 7 months ago HTMLCompression.php 3 months ago Logger.php 4 months ago OptimizationLevel.php 4 days ago Optimizations.php 1 month ago PurgeCache.php 4 days ago Shortcodes.php 4 months ago StockRefresh.php 2 months ago Subscription.php 4 months ago SystemReport.php 4 months ago TestMode.php 1 month 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 ) . 'assets/img/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 }