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

namespace AutomateWoo;

if ( ! 
defined'ABSPATH' ) ) exit;

/**
 *    @class Action_Clear_Queued_Events
 * @since 2.2
 */
class Action_Clear_Queued_Events extends Action {


    function 
load_admin_details() {
        
$this->title __'Clear Queued Events''automatewoo' );
        
$this->group __'AutomateWoo''automatewoo' );
        
$this->description __"Clears a customer's currently queued events for selected workflows."'automatewoo' );
    }


    function 
load_fields() {

        
$workflows = new Fields\Workflow();
        
$workflows->set_required();
        
$workflows->set_title__'Workflows''automatewoo' ) );
        
$workflows->set_multiple();

        
$user = new Fields\Text();
        
$user->set_name('email');
        
$user->set_title__'Customer email''automatewoo' ) );
        
$user->set_variable_validation();
        
$user->set_required();

        
$this->add_field($workflows);
        
$this->add_field($user);
    }


    function 
run() {
        
$email Clean::email$this->get_option'email'true ) );
        
$workflows $this->get_option'workflow' );

        if ( empty( 
$workflows ) || ! $email ) {
            return;
        }

        if ( ! 
$customer Customer_Factory::get_by_email$email ) ) {
            return;
        }

        
$query = new Queue_Query();
        
$query->where_workflow$workflows );
        
$query->where_customer_or_legacy_user$customertrue );
        
$results $query->get_results();

        foreach ( 
$results as $result ) {
            
$result->delete();
        }
    }

}