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-license-status.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-license-status.php
175 lines
1 <?php
2 /**
3 * UpdateLicenseStatus.
4 * php version 5.6
5 *
6 * @category UpdateLicenseStatus
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 use Exception;
19
20 /**
21 * UpdateLicenseStatus
22 *
23 * @category UpdateLicenseStatus
24 * @package SureTriggers
25 * @author BSF <username@example.com>
26 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
27 * @link https://www.brainstormforce.com/
28 * @since 1.0.0
29 */
30 class UpdateLicenseStatus extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'EDD';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'edd_update_license_status';
45
46 use SingletonLoader;
47
48 /**
49 * Register action.
50 *
51 * @param array $actions action data.
52 * @return array
53 */
54 public function register( $actions ) {
55 $actions[ $this->integration ][ $this->action ] = [
56 'label' => __( 'Update License Status', 'suretriggers' ),
57 'action' => $this->action,
58 'function' => [ $this, 'action_listener' ],
59 ];
60
61 return $actions;
62 }
63
64 /**
65 * Action listener.
66 *
67 * @param int $user_id user_id.
68 * @param int $automation_id automation_id.
69 * @param array $fields fields.
70 * @param array $selected_options selected_options.
71 * @return array|bool
72 * @throws Exception Exception.
73 */
74 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
75 // Check if EDD Software Licensing is available.
76 if ( ! function_exists( 'edd_software_licensing' ) || ! class_exists( 'EDD_SL_License' ) ) {
77 return [
78 'status' => 'error',
79 'message' => 'EDD Software Licensing plugin is not active.',
80 ];
81 }
82
83 // Validate required parameters.
84 if ( empty( $selected_options['license_key'] ) || empty( $selected_options['status'] ) ) {
85 return [
86 'status' => 'error',
87 'message' => 'Missing required parameters (license_key, status)',
88 ];
89 }
90
91 $license_key = sanitize_text_field( $selected_options['license_key'] );
92 $new_status = sanitize_text_field( $selected_options['status'] );
93
94 // Validate status.
95 $valid_statuses = [ 'active', 'inactive', 'expired', 'disabled', 'site_inactive' ];
96 if ( ! in_array( $new_status, $valid_statuses, true ) ) {
97 return [
98 'status' => 'error',
99 'message' => 'Invalid license status. Valid statuses: ' . implode( ', ', $valid_statuses ),
100 ];
101 }
102
103 // Find license by key.
104 $license_id = edd_software_licensing()->get_license_by_key( $license_key );
105
106 if ( ! $license_id ) {
107 return [
108 'status' => 'error',
109 'message' => 'License not found with key: ' . $license_key,
110 ];
111 }
112
113 /**
114 * EDD Software License instance.
115 *
116 * @var \EDD_SL_License $license
117 */
118 $license = new \EDD_SL_License( $license_id );
119
120 if ( ! $license || ! $license->ID ) {
121 return [
122 'status' => 'error',
123 'message' => 'Failed to load license with ID: ' . $license_id,
124 ];
125 }
126
127 $old_status = $license->status;
128
129 // Update license status.
130 $license->update_meta( 'status', $new_status );
131 $license->status = $new_status;
132
133 // Trigger actions for other plugins to hook into.
134 do_action( 'edd_sl_license_status_updated', $license->ID, $new_status, $old_status );
135
136 // Trigger specific status actions.
137 switch ( $new_status ) {
138 case 'active':
139 do_action( 'edd_sl_license_activated', $license->ID );
140 break;
141 case 'inactive':
142 do_action( 'edd_sl_license_deactivated', $license->ID );
143 break;
144 case 'expired':
145 do_action( 'edd_sl_license_expired', $license->ID );
146 break;
147 case 'disabled':
148 do_action( 'edd_sl_license_disabled', $license->ID );
149 break;
150 }
151
152 $license_data = [
153 'license_id' => $license->ID,
154 'license_key' => $license->key,
155 'status' => $license->status,
156 'old_status' => $old_status,
157 'download_id' => $license->download_id,
158 'payment_id' => $license->payment_id,
159 'user_id' => $license->user_id,
160 'customer_email' => $license->customer->email,
161 'expiration_date' => $license->expiration ? gmdate( 'Y-m-d H:i:s', $license->expiration ) : '',
162 'activation_count' => $license->activation_count,
163 'activation_limit' => $license->activation_limit,
164 ];
165
166 return [
167 'status' => 'success',
168 'message' => 'License status updated successfully',
169 'license' => $license_data,
170 ];
171 }
172 }
173
174 UpdateLicenseStatus::get_instance();
175