PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
1.1.33 1.1.32 1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Integrations / edd / triggers / edd-order-status-changes.php
suretriggers / src / Integrations / edd / triggers Last commit date
edd-license-renewed.php 6 months ago edd-license-updated.php 6 months ago edd-licensekey-activated.php 3 years ago edd-licensekey-deactivated.php 3 years ago edd-licensekey-status-changed-to-active.php 3 years ago edd-licensekey-status-changed-to-disabled.php 3 years ago edd-licensekey-status-changed-to-expired.php 3 years ago edd-licensekey-status-changed-to-inactive.php 3 years ago edd-new-licensekey-created.php 3 years ago edd-order-created.php 7 months ago edd-order-status-changes.php 1 year ago edd-purchase-one-product.php 1 year ago edd-purchase-product.php 1 year ago edd-purchase-refund.php 3 years ago edd-subscription-renewal.php 2 years ago
edd-order-status-changes.php
138 lines
1 <?php
2 /**
3 * EDDOrderStatusChanges.
4 * php version 5.6
5 *
6 * @category EDDOrderStatusChanges
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Integrations\EDD\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\EDD\EDD;
18 use SureTriggers\Traits\SingletonLoader;
19
20 if ( ! class_exists( 'EDDOrderStatusChanges' ) ) :
21
22 /**
23 * EDDOrderStatusChanges
24 *
25 * @category EDDOrderStatusChanges
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 *
32 * @psalm-suppress UndefinedTrait
33 */
34 class EDDOrderStatusChanges {
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'EDD';
42
43 /**
44 * Trigger name.
45 *
46 * @var string
47 */
48 public $trigger = 'edd_order_status_changes';
49
50 use SingletonLoader;
51
52 /**
53 * Constructor
54 *
55 * @since 1.0.0
56 */
57 public function __construct() {
58 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers Trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68
69 $triggers[ $this->integration ][ $this->trigger ] = [
70 'label' => __( 'Order Status Changes', 'suretriggers' ),
71 'action' => $this->trigger,
72 'common_action' => 'edd_update_payment_status',
73 'function' => [ $this, 'trigger_listener' ],
74 'priority' => 10,
75 'accepted_args' => 3,
76 ];
77
78 return $triggers;
79 }
80
81 /**
82 * Trigger listener
83 *
84 * @param int $order_id The order ID.
85 * @param string $new_status The new status.
86 * @param string $old_status The old status.
87 *
88 * @since 1.0.0
89 * @return void
90 */
91 public function trigger_listener( $order_id, $new_status, $old_status ) {
92 if ( ! function_exists( 'edd_get_order' ) ) {
93 return;
94 }
95
96 $order = edd_get_order( $order_id );
97
98 $downloads = [];
99
100 foreach ( $order->get_items() as $item ) {
101 $downloads[] = [
102 'id' => $item->product_id,
103 'name' => get_the_title( $item->product_id ),
104 'quantity' => $item->quantity,
105 'price' => $item->price,
106 ];
107 }
108
109 $context = [
110 'order_id' => $order_id,
111 'customer_id' => $order->customer_id,
112 'email' => $order->email,
113 'total' => $order->total,
114 'downloads' => $downloads,
115 'date_created' => $order->date_created,
116 ];
117
118 $context['old_status'] = $old_status;
119 $context['new_status'] = $new_status;
120
121 AutomationController::sure_trigger_handle_trigger(
122 [
123 'trigger' => $this->trigger,
124 'context' => $context,
125 ]
126 );
127 }
128 }
129
130 /**
131 * Ignore false positive
132 *
133 * @psalm-suppress UndefinedMethod
134 */
135 EDDOrderStatusChanges::get_instance();
136
137 endif;
138