wp_back/wp-content/plugins/shortpixel-image-optimiser/class/external/pantheon.php
2024-05-20 15:37:46 +03:00

65 lines
1.3 KiB
PHP

<?php
namespace ShortPixel;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
class Pantheon {
public static $is_pantheon = false;
public function __construct()
{
add_action( 'shortpixel/image/optimised', array( $this, 'flush_image_caches' ), 10 );
if (! defined('SHORTPIXEL_TRUSTED_MODE'))
{
define('SHORTPIXEL_TRUSTED_MODE', true);
}
self::$is_pantheon = true;
}
public static function IsActive()
{
return self::$is_pantheon;
}
public function flush_image_caches( $imageItem )
{
$image_paths[] = $imageItem->getURL();
if ($imageItem->hasOriginal())
{
$image_paths[] = $imageItem->getOriginalFile()->getURL();
}
if (count($imageItem->get('thumbnails')) > 0)
{
foreach($imageItem->get('thumbnails') as $thumbObj)
{
$image_paths[] = $thumbObj->getURL();
}
}
$domain = get_site_url();
$image_paths = array_map(function($path) use ($domain)
{
return str_replace( $domain, '', $path);
},$image_paths);
if ( ! empty( $image_paths ) ) {
$image_paths = array_unique( $image_paths );
if ( function_exists( 'pantheon_wp_clear_edge_paths' ) ) {
// Do the flush
pantheon_wp_clear_edge_paths( $image_paths );
}
}
}
} // class
if ( ! empty( $_ENV['PANTHEON_ENVIRONMENT'] ) ) {
$p = new Pantheon(); // monitor hook.
}