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
|
<?php
namespace AutomateWoo;
if ( ! defined( 'ABSPATH' ) ) { exit; }
/** * @class Trigger_Subscription_Trial_End * @since 2.1.0 */ class Trigger_Subscription_Trial_End extends Trigger {
/** * Sets supplied data for the trigger. * * @var array */ public $supplied_data_items = [ 'customer', 'subscription' ];
/** * Method to set title, group, description and other admin props */ public function load_admin_details() { $this->title = __( 'Subscription Trial End', 'automatewoo' ); $this->group = Subscription_Workflow_Helper::get_group_name(); }
/** * Registers any fields used on for a trigger */ public function load_fields() { $this->add_field( Subscription_Workflow_Helper::get_products_field() ); }
/** * Register the hooks for when this trigger should run */ public function register_hooks() { add_action( 'woocommerce_scheduled_subscription_trial_end', [ $this, 'handle_trial_end' ], 20, 1 ); }
/** * Handle subscription trial end event. * * @param int $subscription_id */ public function handle_trial_end( $subscription_id ) { Subscription_Workflow_Helper::trigger_for_subscription( $this, $subscription_id ); }
/** * @param Workflow $workflow * @return bool */ public function validate_workflow( $workflow ) { $subscription = $workflow->data_layer()->get_subscription();
if ( ! $subscription ) { return false; }
if ( ! Subscription_Workflow_Helper::validate_products_field( $workflow ) ) { return false; }
return true; } }
|