/var/www/html_uk/wp-content/plugins/automatewoo/includes/Tools/Background_Processed_Abstract.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
<?php
// phpcs:ignoreFile

namespace AutomateWoo;

use 
AutomateWoo\Jobs\ToolTaskRunner;
use 
WP_Error;

if ( ! 
defined'ABSPATH' ) ) exit;

/**
 * Abstract class for tools that are processed in the background.
 *
 * @since 3.8
 */
abstract class Tool_Background_Processed_Abstract extends Tool_Abstract {

    
/** @var bool */
    
public $is_background_processed true;


    function 
__construct() {
        
$this->additional_description __'If you are processing a large number of items they will be processed in the background.''automatewoo' );
    }


    
/**
     * Method to handle individual background tasks.
     * $task array will not be sanitized.
     *
     * @param array $task
     * @return void
     */
    
abstract public function handle_background_task$task );

    
/**
     * Start the ToolRunner background job.
     *
     * @since 5.2.0
     *
     * @param array $tasks
     * @return bool|\WP_Error
     */
    
protected function start_background_job( array $tasks ) {
        try {
            
/** @var ToolTaskRunner $job */
            
$job AW()->job_service()->get_job'tools' );
            
$job->start$tasks );
        } catch ( 
\Exception $e ) {
            
Logger::error'tools'"Error encountered when starting the ToolRunner job: {$e->getMessage()});
            return new 
WP_Error'tool'__"An error occurred. Please check the 'automatewoo-tools' logs for more info."'automatewoo' ) );
        }

        return 
true;
    }

}