HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux wordpress-ubuntu-s-2vcpu-4gb-fra1-01 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64
User: root (0)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/delta/wp-content/plugins/wp-smushit/core/media/class-media-item-controller.php
<?php

namespace Smush\Core\Media;

use Smush\Core\Controller;
use Smush\Core\Error_Handler;
use Smush\Core\Helper;
use Smush\Core\Stats\Global_Stats;
use WP_Smush;

/**
 * Performs operations on the media item
 */
class Media_Item_Controller extends Controller {
	public function __construct() {
		$this->register_action( 'wp_ajax_ignore_bulk_image', array( $this, 'ignore_bulk_image' ) );
		$this->register_action( 'wp_ajax_remove_from_skip_list', array( $this, 'remove_from_skip_list' ) );
		$this->register_action( 'wp_ajax_wp_smush_ignore_all_failed_items', array(
			$this,
			'ignore_all_failed_items',
		) );
	}

	public function remove_from_skip_list() {
		check_ajax_referer( 'wp-smush-remove-skipped' );

		if ( ! Helper::is_user_allowed( 'upload_files' ) ) {
			wp_send_json_error( array(
				'error_message' => esc_html__( "You don't have permission to work with uploaded files.", 'wp-smushit' ),
			), 403 );
		}

		if ( ! isset( $_POST['id'] ) ) {
			wp_send_json_error();
		}

		$attachment_id = absint( $_POST['id'] );

		$changed = $this->change_attachment_ignored_status( $attachment_id, false );
		if ( ! $changed ) {
			wp_send_json_error();
		}

		wp_send_json_success(
			array(
				'html' => WP_Smush::get_instance()->library()->generate_markup( $attachment_id ),
			)
		);
	}

	public function ignore_bulk_image() {
		check_ajax_referer( 'wp-smush-ajax' );

		if ( ! Helper::is_user_allowed( 'upload_files' ) ) {
			wp_send_json_error( array(
				'error_msg' => esc_html__( "You don't have permission to work with uploaded files.", 'wp-smushit' ),
			), 403 );
		}

		if ( ! isset( $_POST['id'] ) ) {
			wp_send_json_error();
		}

		$attachment_id = absint( $_POST['id'] );
		$changed       = $this->change_attachment_ignored_status( $attachment_id, true );
		if ( ! $changed ) {
			wp_send_json_error();
		}

		wp_send_json_success( array(
			'html' => WP_Smush::get_instance()->library()->generate_markup( $attachment_id ),
		) );
	}

	public function ignore_all_failed_items() {
		check_ajax_referer( 'wp-smush-ajax' );

		if ( ! Helper::is_user_allowed() ) {
			wp_send_json_error( array(
				'message' => __( "You don't have permission to do this.", 'wp-smushit' ),
			), 403 );
		}

		$failed_images = Error_Handler::get_all_failed_images();
		if ( empty( $failed_images ) ) {
			wp_send_json_error( array( 'message' => __( 'Not found any failed items.', 'wp-smushit' ) ) );
		}

		foreach ( $failed_images as $failed_image_id ) {
			$this->change_attachment_ignored_status( $failed_image_id, true );
		}
		wp_send_json_success();
	}

	private function change_attachment_ignored_status( $attachment_id, $new_status ) {
		$media_item = Media_Item_Cache::get_instance()->get( $attachment_id );
		if ( ! $media_item->is_mime_type_supported() ) {
			return false;
		}

		$media_item->set_ignored( $new_status );
		$media_item->save();

		do_action( 'wp_smush_attachment_ignored_status_changed', $attachment_id, $new_status );

		return true;
	}
}