C:\xampp\htdocs\landing\wp-content\plugins\wp-smushit\core\modules\async\class-editor.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/**
 * Class Editor
 *
 * @package Smush\Core\Modules\Async
 * @since 2.5
 *
 * @author Umesh Kumar <umesh@incsub.com>
 *
 * @copyright (c) 2016, Incsub (http://incsub.com)
 */

namespace Smush\Core\Modules\Async;

use 
Exception;

if ( ! 
defined'WPINC' ) ) {
    die;
}

/**
 * Class Editor
 */
class Editor extends Abstract_Async {

    
/**
     * Argument count.
     *
     * @var int $argument_count
     */
    
protected $argument_count 2;

    
/**
     * Priority.
     *
     * @var int $priority
     */
    
protected $priority 12;

    
/**
     * Whenever a attachment metadata is generated
     * Had to be hooked on generate and not update, else it goes in infinite loop
     *
     * @var string
     */
    
protected $action 'wp_save_image_editor_file';

    
/**
     * Prepare data for the asynchronous request
     *
     * @throws Exception If for any reason the request should not happen.
     *
     * @param array $data An array of data sent to the hook.
     *
     * @return array
     */
    
protected function prepare_data$data ) {
        
// Store the post data in $data variable.
        
if ( ! empty( $data ) ) {
            
$data array_merge$data$_POST );
        }

        
// Store the image path.
        
$data['filepath']  = ! empty( $data[1] ) ? $data[1] : '';
        
$data['wp-action'] = ! empty( $data['action'] ) ? $data['action'] : '';
        unset( 
$data['action'], $data[1] );

        return 
$data;
    }

    
/**
     * Run the async task action
     *
     * TODO: Add a check for image
     * TODO: See if auto smush is enabled or not
     * TODO: Check if async is enabled or not
     */
    
protected function run_action() {
        if ( isset( 
$_POST['wp-action'], $_POST['do'], $_POST['postid'] )
             && 
'image-editor' === $_POST['wp-action']
             && 
check_ajax_referer'image_editor-' $_POST['postid'] )
             && 
'open' != $_POST['do']
        ) {
            
$postid = ! empty( $_POST['postid'] ) ? $_POST['postid'] : '';
            
// Allow the Asynchronous task to run.
            
do_action"wp_async_$this->action"$postid$_POST );
        }
    }

}
x

Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586