PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / Mailster / triggers / mailster-subscriber-unsubscribed.php
suretriggers / src / Integrations / Mailster / triggers Last commit date
mailster-campaign-link-clicked.php 1 month ago mailster-campaign-opened.php 1 month ago mailster-new-subscriber-added.php 1 month ago mailster-subscriber-added-to-list.php 1 month ago mailster-subscriber-bounced.php 1 month ago mailster-subscriber-confirmed.php 1 month ago mailster-subscriber-deleted.php 1 month ago mailster-subscriber-removed-from-list.php 1 month ago mailster-subscriber-status-changed.php 1 month ago mailster-subscriber-unsubscribed.php 1 month ago mailster-tag-added-to-subscriber.php 1 month ago mailster-tag-removed-from-subscriber.php 1 month ago
mailster-subscriber-unsubscribed.php
115 lines
1 <?php
2 /**
3 * MailsterSubscriberUnsubscribed trigger.
4 * php version 5.6
5 *
6 * @category MailsterSubscriberUnsubscribed
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\Mailster\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * MailsterSubscriberUnsubscribed
21 *
22 * @category MailsterSubscriberUnsubscribed
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 MailsterSubscriberUnsubscribed {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'Mailster';
37
38 /**
39 * Trigger name.
40 *
41 * @var string
42 */
43 public $trigger = 'mailster_subscriber_unsubscribed';
44
45 use SingletonLoader;
46
47 /**
48 * Constructor
49 *
50 * @since 1.0.0
51 */
52 public function __construct() {
53 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
54 }
55
56 /**
57 * Register a trigger.
58 *
59 * @param array $triggers triggers.
60 * @return array
61 */
62 public function register( $triggers ) {
63 $triggers[ $this->integration ][ $this->trigger ] = [
64 'label' => __( 'Subscriber Unsubscribed', 'suretriggers' ),
65 'action' => $this->trigger,
66 'common_action' => 'mailster_unsubscribe',
67 'function' => [ $this, 'trigger_listener' ],
68 'priority' => 10,
69 'accepted_args' => 4,
70 ];
71
72 return $triggers;
73 }
74
75 /**
76 * Trigger listener.
77 *
78 * Fires from Mailster's `mailster_unsubscribe` action
79 * (classes/subscribers.class.php) when a subscriber unsubscribes,
80 * optionally in the context of a specific campaign.
81 *
82 * @param int $subscriber_id Subscriber ID.
83 * @param int|null $campaign_id Campaign ID the unsubscribe originated from, if any.
84 * @param int|null $status Status the subscriber was set to.
85 * @param int|null $index Link index, if unsubscribed via a tracked link.
86 * @return void
87 */
88 public function trigger_listener( $subscriber_id, $campaign_id = null, $status = null, $index = null ) {
89 if ( empty( $subscriber_id ) || ! function_exists( 'mailster' ) ) {
90 return;
91 }
92
93 $subscriber = mailster( 'subscribers' )->get( absint( $subscriber_id ) );
94
95 $campaign_id = is_numeric( $campaign_id ) ? absint( $campaign_id ) : 0;
96
97 $context = [
98 'subscriber_id' => absint( $subscriber_id ),
99 'email' => is_object( $subscriber ) && isset( $subscriber->email ) ? sanitize_email( (string) $subscriber->email ) : '',
100 'campaign_id' => $campaign_id,
101 'campaign_title' => $campaign_id ? get_the_title( $campaign_id ) : '',
102 'status' => is_numeric( $status ) ? absint( $status ) : 2,
103 ];
104
105 AutomationController::sure_trigger_handle_trigger(
106 [
107 'trigger' => $this->trigger,
108 'context' => $context,
109 ]
110 );
111 }
112 }
113
114 MailsterSubscriberUnsubscribed::get_instance();
115