PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / actions / update-purchase.php
suretriggers / src / Integrations / edd / actions Last commit date
create-discount.php 10 months ago create-purchase.php 8 months ago delete-discount.php 10 months ago edd-create-discount.php 10 months ago fetch-discount-details.php 10 months ago find-user-have-active-inactive-license-for-specific-download.php 2 years ago find-user-have-subscription-for-specific-download.php 2 years ago find-user-purchased-download.php 10 months ago revoke-purchase.php 8 months ago update-license-status.php 8 months ago update-purchase-meta.php 8 months ago update-purchase.php 8 months ago
update-purchase.php
149 lines
1 <?php
2 /**
3 * UpdatePurchase.
4 * php version 5.6
5 *
6 * @category UpdatePurchase
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\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * UpdatePurchase
21 *
22 * @category UpdatePurchase
23 * @package SureTriggers
24 * @author BSF <username@example.com>
25 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
26 * @link https://www.brainstormforce.com/
27 * @since 1.0.0
28 */
29 class UpdatePurchase extends AutomateAction {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'EDD';
37
38 /**
39 * Action name.
40 *
41 * @var string
42 */
43 public $action = 'edd_update_purchase';
44
45 use SingletonLoader;
46
47 /**
48 * Register action.
49 *
50 * @param array $actions action data.
51 * @return array
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Update Purchase', 'suretriggers' ),
56 'action' => $this->action,
57 'function' => [ $this, 'action_listener' ],
58 ];
59
60 return $actions;
61 }
62
63 /**
64 * Action listener.
65 *
66 * @param int $user_id user_id.
67 * @param int $automation_id automation_id.
68 * @param array $fields fields.
69 * @param array $selected_options selected_options.
70 * @return array|bool
71 */
72 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
73 if ( ! class_exists( 'EDD_Payment' ) ) {
74 return [
75 'status' => 'error',
76 'message' => 'EDD plugin is not active.',
77 ];
78 }
79
80 if ( empty( $selected_options['purchase_id'] ) ) {
81 return [
82 'status' => 'error',
83 'message' => 'Missing required parameter: purchase_id',
84 ];
85 }
86
87 $payment_id = intval( $selected_options['purchase_id'] );
88
89 $payment = new \EDD_Payment( $payment_id );
90 if ( ! $payment->ID ) {
91 return [
92 'status' => 'error',
93 'message' => 'Purchase not found with ID: ' . $payment_id,
94 ];
95 }
96
97 $updated_fields = [];
98
99 if ( isset( $selected_options['status'] ) && ! empty( $selected_options['status'] ) ) {
100 $new_status = sanitize_text_field( $selected_options['status'] );
101 $old_status = $payment->status;
102
103 $payment->status = $new_status;
104 $payment->save();
105
106 $updated_fields['status'] = [
107 'old_value' => $old_status,
108 'new_value' => $new_status,
109 ];
110 }
111
112 if ( isset( $selected_options['note'] ) && ! empty( $selected_options['note'] ) ) {
113 $note = sanitize_textarea_field( $selected_options['note'] );
114
115 if ( function_exists( 'edd_insert_payment_note' ) ) {
116 edd_insert_payment_note( $payment_id, $note );
117 $updated_fields['note'] = [
118 'value' => $note,
119 'added' => true,
120 ];
121 } else {
122 $updated_fields['note'] = [
123 'value' => $note,
124 'added' => false,
125 'error' => 'EDD function edd_insert_payment_note not found',
126 ];
127 }
128 }
129
130
131 $response_data = [
132 'purchase_id' => $payment_id,
133 'purchase_key' => $payment->key,
134 'customer_email' => $payment->email,
135 'customer_id' => $payment->customer_id,
136 'updated_fields' => $updated_fields,
137 'updated_at' => gmdate( 'Y-m-d H:i:s' ),
138 ];
139
140 return [
141 'status' => 'success',
142 'message' => 'Purchase updated successfully',
143 'data' => $response_data,
144 ];
145 }
146 }
147
148 UpdatePurchase::get_instance();
149