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( $customer, true ); $results = $query->get_results();
foreach ( $results as $result ) { $result->delete(); } }
}
|