65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			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.
 | 
						|
}
 |