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 / actions / update-purchase-meta.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-meta.php
163 lines
1 <?php
2 /**
3 * UpdatePurchaseMeta.
4 * php version 5.6
5 *
6 * @category UpdatePurchaseMeta
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 * UpdatePurchaseMeta
21 *
22 * @category UpdatePurchaseMeta
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 UpdatePurchaseMeta 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_meta';
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 Meta', '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'] ) || empty( $selected_options['purchase_meta'] ) ) {
81 return [
82 'status' => 'error',
83 'message' => 'Missing required parameters (purchase_id, purchase_meta)',
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_meta = [];
98
99 foreach ( $selected_options['purchase_meta'] as $meta ) {
100 $meta_key = sanitize_text_field( $meta['meta_key'] );
101 $meta_value = isset( $meta['meta_value'] ) ? $meta['meta_value'] : '';
102
103 if ( empty( $meta_key ) ) {
104 continue;
105 }
106
107 $old_value = '';
108 if ( function_exists( 'edd_get_payment_meta' ) ) {
109 $old_value = edd_get_payment_meta( $payment_id, $meta_key, true );
110 } else {
111 $old_value = get_post_meta( $payment_id, $meta_key, true );
112 }
113
114 $updated = false;
115 if ( function_exists( 'edd_update_payment_meta' ) ) {
116 $updated = edd_update_payment_meta( $payment_id, $meta_key, $meta_value );
117 } else {
118 $updated = update_post_meta( $payment_id, $meta_key, $meta_value );
119 }
120
121 if ( false !== $updated ) {
122 $new_value = '';
123 if ( function_exists( 'edd_get_payment_meta' ) ) {
124 $new_value = edd_get_payment_meta( $payment_id, $meta_key, true );
125 } else {
126 $new_value = get_post_meta( $payment_id, $meta_key, true );
127 }
128
129 $updated_meta[] = [
130 'meta_key' => $meta_key,
131 'old_value' => $old_value,
132 'new_value' => $new_value,
133 'status' => 'updated',
134 ];
135 } else {
136 $updated_meta[] = [
137 'meta_key' => $meta_key,
138 'old_value' => $old_value,
139 'new_value' => $meta_value,
140 'status' => 'failed',
141 ];
142 }
143 }
144
145 $response_data = [
146 'purchase_id' => $payment_id,
147 'purchase_key' => $payment->key,
148 'customer_email' => $payment->email,
149 'customer_id' => $payment->customer_id,
150 'updated_meta' => $updated_meta,
151 'updated_at' => gmdate( 'Y-m-d H:i:s' ),
152 ];
153
154 return [
155 'status' => 'success',
156 'message' => 'Purchase meta operations completed',
157 'data' => $response_data,
158 ];
159 }
160 }
161
162 UpdatePurchaseMeta::get_instance();
163