File "class-media-item-controller.php"
Full Path: /home/digimqhe/flashdigi.uk/list/media/class-media-item-controller.php
File size: 2.9 KB
MIME-type: text/x-php
Charset: utf-8
<?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;
}
}