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 / fluentaffiliate / actions / delete-affiliate-group.php
suretriggers / src / Integrations / fluentaffiliate / actions Last commit date
add-affiliate-to-group.php 5 months ago create-affiliate-group.php 5 months ago create-affiliate.php 5 months ago create-referral.php 5 months ago delete-affiliate-group.php 5 months ago get-affiliate-group.php 5 months ago get-affiliate.php 5 months ago remove-affiliate-from-group.php 5 months ago update-affiliate-group.php 5 months ago update-affiliate-status.php 5 months ago
delete-affiliate-group.php
148 lines
1 <?php
2 /**
3 * DeleteAffiliateGroup.
4 * php version 5.6
5 *
6 * @category DeleteAffiliateGroup
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\FluentAffiliate\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19
20 /**
21 * DeleteAffiliateGroup
22 *
23 * @category DeleteAffiliateGroup
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 DeleteAffiliateGroup extends AutomateAction {
31
32 /**
33 * Integration type.
34 *
35 * @var string
36 */
37 public $integration = 'FluentAffiliate';
38
39 /**
40 * Action name.
41 *
42 * @var string
43 */
44 public $action = 'fluentaffiliate_delete_affiliate_group';
45
46 use SingletonLoader;
47
48 /**
49 * Register a action.
50 *
51 * @param array $actions actions.
52 * @return array
53 */
54 public function register( $actions ) {
55
56 $actions[ $this->integration ][ $this->action ] = [
57 'label' => __( 'Delete Affiliate Group (PRO)', 'suretriggers' ),
58 'action' => $this->action,
59 'function' => [ $this, 'action_listener' ],
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 selectedOptions.
71 * @return array|void
72 * @throws Exception Exception.
73 */
74 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
75
76 // Check if FluentAffiliate AffiliateGroup model exists.
77 if ( ! class_exists( 'FluentAffiliate\App\Models\AffiliateGroup' ) ) {
78 return [
79 'status' => 'error',
80 'message' => __( 'FluentAffiliate Pro plugin is not installed or activated.', 'suretriggers' ),
81 ];
82 }
83
84 // Extract selected options.
85 $group_id = isset( $selected_options['group_id'] ) ? absint( $selected_options['group_id'] ) : 0;
86
87 // Validate required fields.
88 if ( empty( $group_id ) ) {
89 return [
90 'status' => 'error',
91 'message' => __( 'Group ID is required.', 'suretriggers' ),
92 ];
93 }
94
95 // Get the affiliate group.
96 $group = \FluentAffiliate\App\Models\AffiliateGroup::find( $group_id );
97
98 if ( ! $group ) {
99 return [
100 'status' => 'error',
101 'message' => __( 'Affiliate group not found.', 'suretriggers' ),
102 ];
103 }
104
105 // Delete affiliate group.
106 try {
107 // Store group data before deletion.
108 $group_data = [
109 'group_id' => $group->id,
110 'group_name' => isset( $group->meta_key ) ? $group->meta_key : '',
111 'rate_type' => isset( $group->value['rate_type'] ) ? $group->value['rate_type'] : '',
112 'rate' => isset( $group->value['rate'] ) ? $group->value['rate'] : 0,
113 'status' => isset( $group->value['status'] ) ? $group->value['status'] : '',
114 'notes' => isset( $group->value['notes'] ) ? $group->value['notes'] : '',
115 ];
116
117 // Fire before delete hook.
118 do_action( 'fluent_affiliate/before_delete_affiliate_group', $group ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
119
120 // Delete the group.
121 $group->delete();
122
123 // Fire after delete hook.
124 do_action( 'fluent_affiliate/after_delete_affiliate_group', $group ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
125
126 // Prepare response data.
127 $context = array_merge(
128 $group_data,
129 [
130 'deleted_at' => gmdate( 'Y-m-d H:i:s' ),
131 'status' => 'success',
132 ]
133 );
134
135 return $context;
136
137 } catch ( \Exception $e ) {
138 return [
139 'status' => 'error',
140 'message' => sprintf( __( 'Error deleting affiliate group: %s', 'suretriggers' ), $e->getMessage() ),
141 ];
142 }
143 }
144
145 }
146
147 DeleteAffiliateGroup::get_instance();
148