PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
1.1.37 1.1.36 1.1.35 1.1.34 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 / mailpoet / actions / remove-subscriber-from-list.php
suretriggers / src / Integrations / mailpoet / actions Last commit date
add-subscriber-to-list.php 1 year ago remove-subscriber-from-list.php 1 year ago update-subscriber-status.php 11 months ago update-subscriber-to-new-list.php 11 months ago
remove-subscriber-from-list.php
130 lines
1 <?php
2 /**
3 * RemoveSubscriberFromList.
4 * php version 5.6
5 *
6 * @category RemoveSubscriberFromList
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\MailPoet\Actions;
15
16 use Exception;
17 use SureTriggers\Integrations\AutomateAction;
18 use SureTriggers\Traits\SingletonLoader;
19 use MailPoet\Entities\SubscriberEntity;
20
21 /**
22 * RemoveSubscriberFromList
23 *
24 * @category RemoveSubscriberFromList
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 */
31 class RemoveSubscriberFromList extends AutomateAction {
32
33
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'MailPoet';
41
42 /**
43 * Action name.
44 *
45 * @var string
46 */
47 public $action = 'remove_subscriber_from_list';
48
49 use SingletonLoader;
50
51 /**
52 * Register a action.
53 *
54 * @param array $actions actions.
55 *
56 * @return array
57 */
58 public function register( $actions ) {
59
60 $actions[ $this->integration ][ $this->action ] = [
61 'label' => __( 'Remove User from List', 'suretriggers' ),
62 'action' => $this->action,
63 'function' => [ $this, 'action_listener' ],
64 ];
65 return $actions;
66 }
67
68 /**
69 * Action listener.
70 *
71 * @param int $user_id user_id.
72 * @param int $automation_id automation_id.
73 * @param array $fields fields.
74 * @param array $selected_options selectedOptions.
75 * @return array|void
76 * @throws Exception Exception.
77 */
78 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
79
80 if ( ! class_exists( '\MailPoet\API\API' ) || ! class_exists( '\MailPoet\API\MP\v1\APIException' ) ) {
81 return;
82 }
83
84 // Shorthand.
85 $list_id = $selected_options['mailpoet_list'];
86 $mailpoet_subscribers = $selected_options['mailpoet_subscribers'];
87 $subscriber_id = '';
88
89 // Bail if not list selected.
90 if ( '' === $list_id ) {
91 return;
92 }
93
94 if ( isset( $mailpoet_subscribers ) && ! empty( $mailpoet_subscribers ) ) {
95 $subscriber_id = $mailpoet_subscribers;
96 }
97
98 try {
99
100 $list_ids = [];
101
102 $list_id = $list_id;
103 $subscriber_id = $subscriber_id;
104 $mailpoet = \MailPoet\API\API::MP( 'v1' );
105 $subscriber = $mailpoet->getSubscriber( $subscriber_id );
106 $subscriptions = $subscriber['subscriptions'];
107
108 if ( ! empty( $subscriptions ) && 'all' === $list_id ) {
109 foreach ( $subscriptions as $subscription ) {
110 $list_ids[] = $subscription['segment_id'];
111 }
112 } else {
113 foreach ( $list_id as $value ) {
114 $list_ids[] = $value['value'];
115 }
116 }
117
118 $mailpoet->unsubscribeFromLists( $subscriber_id, $list_ids );
119
120 $context['response'] = 'Subscriber Removed from the list.';
121 return $context;
122 } catch ( \MailPoet\API\MP\v1\APIException $e ) {
123 throw new Exception( $e->getMessage() );
124 }
125 }
126
127 }
128
129 RemoveSubscriberFromList::get_instance();
130