PluginProbe
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization / 4.2.11
Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization v4.2.11
4.2.13 4.2.12 4.2.11 4.2.10 4.2.9 4.2.8 4.2.7 4.2.6 4.2.5 2.5.5 2.5.6 2.5.7 3.0.0 3.0.1 3.1.0 3.1.1 3.1.2 3.1.3 3.10.0 3.11.0 3.11.1 3.11.2 3.11.3 3.12.0 3.12.1 All 134 releases
optimole-wp / inc / compatibilities / hummingbird.php

hummingbird.php in Optimole – Optimize Images | Convert WebP & AVIF | CDN & Lazy Load | Image Optimization 4.2.11, at inc/compatibilities/hummingbird.php

75 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * Class Optml_hummingbird.
5 *
6 * @reason Clear cache on Hummingbird.
7 */
8 class Optml_hummingbird extends Optml_compatibility {
9
10 /**
11 * Should we load the integration logic.
12 *
13 * @return bool Should we load.
14 */
15 public function should_load() {
16 include_once ABSPATH . 'wp-admin/includes/plugin.php';
17
18 return is_plugin_active( 'hummingbird-performance/wp-hummingbird.php' );
19 }
20
21 /**
22 * Register integration details.
23 *
24 * @return void
25 */
26 public function register() {
27 add_action( 'optml_clear_cache', [ $this, 'add_clear_cache_action' ] );
28 }
29
30
31 /**
32 * Should we early load the compatibility?
33 *
34 * @return bool Whether to load the compatibility or not.
35 */
36 public function should_load_early() {
37 return true;
38 }
39
40 /**
41 * Clear cache for Hummingbird.
42 *
43 * @param string|bool $location The location to clear the cache for. If true, clear the cache globally. If a string, clear the cache for a particular url.
44 * @return void
45 */
46 public function add_clear_cache_action( $location ) {
47 // @phpstan-ignore-next-line - we need to check that method exists explicitly as it might change in the future.
48 if ( ! class_exists( '\Hummingbird\Core\Utils' ) || ! method_exists( '\Hummingbird\Core\Utils', 'get_module' ) ) { // @phpstan-ignore-line
49 return;
50 }
51
52 $page_cache = \Hummingbird\Core\Utils::get_module( 'page_cache' );
53
54 if ( ! $page_cache ) {
55 return;
56 }
57
58 // Clear all cache
59 if ( true === $location ) {
60 $page_cache->clear_cache();
61 return;
62 }
63
64 // Clear specific URL
65 if ( ! is_string( $location ) || empty( $location ) ) {
66 return;
67 }
68
69 $url_path = wp_parse_url( $location, PHP_URL_PATH );
70 if ( $url_path ) {
71 $page_cache->clear_cache( trailingslashit( $url_path ), true );
72 }
73 }
74 }
75