| Server IP : 172.67.159.97 / Your IP : 216.73.217.154 Web Server : nginx/1.24.0 System : Linux wordpress-sites 6.8.0-134-generic #134-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 26 18:43:11 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.1.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/rebeccaone.com/wp-content/plugins/envira-gallery/src/Compress/ |
Upload File : |
<?php
/**
* Envira Compression Container.
*
* @since 1.9.2
*
* @package Envira Gallery
*/
namespace Envira\Compress;
// Exit if accessed directly.
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
use Envira\Compress\Settings;
use Envira\Compress\Image as Envira_Image;
/**
* Compression Container Class
*
* @since 1.9.2
*/
final class Container {
/**
* Class Constructor
*
* @since 1.9.2
*/
public function __construct() {
$this->init();
}
/**
* Compression Init Method
*
* @since 1.9.2
*
* @return void
*/
public function init() {
if ( ! \envira_license_checker() ) {
return;
}
if ( defined( 'ENVIRA_COMPRESSION_STANDALONE' ) ) {
return;
}
if ( is_admin() ) {
$settings = new Settings();
}
add_action( 'envira_gallery_insert_image_complete', [ &$this, 'handle_envira_compression' ], 12, 2 );
add_filter( 'wp_generate_attachment_metadata', [ $this, 'handle_attachement_compression' ], 12, 2 );
add_action( 'wp_ajax_envira_async_optimize_media', [ &$this, 'compress_on_upload' ] );
}
/**
* Helper Method to compress envira images only.
*
* @param array $metadata Attachment Metadata.
* @param int $attachment_id Attachment Id.
* @return void
*/
public function handle_envira_compression( $metadata, $attachment_id ) {
if ( 'envira' === \envira_get_setting( 'compression_setting', 'disabled' ) ) {
$this->async_upload( $metadata, $attachment_id );
}
}
/**
* Undocumented function
*
* @param array $metadata Metadata array.
* @param int $attachment_id Attachment ID.
* @return array
*/
public function handle_attachement_compression( $metadata, $attachment_id ) {
if ( 'all_media' === \envira_get_setting( 'compression_setting', 'disabled' ) ) {
$this->async_upload( $metadata, $attachment_id );
}
return $metadata;
}
/**
* Async Compress Images.
*
* @return void
*/
public function compress_on_upload() {
check_admin_referer( 'envira_compress_media', 'nonce' );
if ( \current_user_can( 'upload_files' ) ) {
$attachment_id = isset( $_POST['attachment_id'] ) ? intval( wp_unslash( $_POST['attachment_id'] ) ) : '';
$metadata = isset( $_POST['metadata'] ) ? array_map( 'sanitize_text_field', wp_unslash( $_POST['metadata'] ) ) : [];
if ( $metadata ) {
$image = new Envira_Image( $attachment_id, $metadata );
$compress = $image->compress();
}
}
}
/**
* Undocumented function
*
* @param array $metadata Attachment Metadata.
* @param int $attachment_id Attachment Id.
* @return void
*/
public function async_upload( $metadata, $attachment_id ) {
if ( ! is_numeric( $attachment_id ) ) {
return;
}
if ( ! is_array( $metadata ) ) {
return;
}
$body = [
'action' => 'envira_async_optimize_media',
'nonce' => \wp_create_nonce( 'envira_compress_media' ),
'metadata' => $metadata,
'attachment_id' => $attachment_id,
];
$args = [
'timeout' => 0.1,
'blocking' => false,
'body' => $body,
'cookies' => isset( $_COOKIE ) && is_array( $_COOKIE ) ? $_COOKIE : [],
'sslverify' => false,
];
\wp_remote_post( admin_url( 'admin-ajax.php' ), $args );
}
}