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 / mail-mint / triggers / list-applied-to-contact.php
suretriggers / src / Integrations / mail-mint / triggers Last commit date
campaign-email-sent.php 2 years ago list-applied-to-contact.php 2 years ago tag-applied-to-contact.php 2 years ago
list-applied-to-contact.php
131 lines
1 <?php
2 /**
3 * ListAppliedToContact.
4 * php version 5.6
5 *
6 * @category ListAppliedToContact
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\MailMint\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Integrations\WordPress\WordPress;
18 use SureTriggers\Traits\SingletonLoader;
19 use Mint\MRM\DataBase\Models\ContactModel;
20 use Mint\MRM\DataBase\Models\ContactGroupModel;
21 use Exception;
22
23 if ( ! class_exists( 'ListAppliedToContact' ) ) :
24
25 /**
26 * ListAppliedToContact
27 *
28 * @category ListAppliedToContact
29 * @package SureTriggers
30 * @author BSF <username@example.com>
31 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
32 * @link https://www.brainstormforce.com/
33 * @since 1.0.0
34 *
35 * @psalm-suppress UndefinedTrait
36 */
37 class ListAppliedToContact {
38
39 /**
40 * Integration type.
41 *
42 * @var string
43 */
44 public $integration = 'MailMint';
45
46 /**
47 * Trigger name.
48 *
49 * @var string
50 */
51 public $trigger = 'mail_mint_lists_added_to_contact';
52
53 use SingletonLoader;
54
55 /**
56 * Constructor
57 *
58 * @since 1.0.0
59 */
60 public function __construct() {
61 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
62 }
63
64 /**
65 * Register action.
66 *
67 * @param array $triggers trigger data.
68 *
69 * @return array
70 */
71 public function register( $triggers ) {
72 $triggers[ $this->integration ][ $this->trigger ] = [
73 'label' => __( 'Lists Added To Contact', 'suretriggers' ),
74 'action' => $this->trigger,
75 'common_action' => 'mailmint_list_applied',
76 'function' => [ $this, 'trigger_listener' ],
77 'priority' => 10,
78 'accepted_args' => 2,
79 ];
80 return $triggers;
81 }
82
83 /**
84 * Trigger listener
85 *
86 * @param array $lists List of lists.
87 * @param int|array $contact_id Contact Id.
88 * @throws Exception Error.
89 * @return void
90 */
91 public function trigger_listener( $lists, $contact_id ) {
92 if ( ! class_exists( 'Mint\MRM\DataBase\Models\ContactGroupModel' ) || ! class_exists( 'Mint\MRM\DataBase\Models\ContactModel' ) ) {
93 return;
94 }
95 if ( ! ContactModel::is_contact_ids_exists( [ $contact_id ] ) ) {
96 throw new Exception( 'There is no contact with provided id.' );
97 }
98 if ( empty( $lists ) ) {
99 return;
100 }
101
102 $new_lists = array_filter(
103 $lists,
104 function ( $list ) {
105 return ! isset( $list['created_at'] );
106 }
107 );
108 foreach ( $new_lists as $newlist ) {
109 $context['contact_id'] = $contact_id;
110 $context['contact'] = ContactModel::get( $contact_id );
111 $context['lists'] = ContactGroupModel::get( $newlist['id'] );
112 AutomationController::sure_trigger_handle_trigger(
113 [
114 'trigger' => $this->trigger,
115 'context' => $context,
116 ]
117 );
118 }
119
120 }
121 }
122
123 /**
124 * Ignore false positive
125 *
126 * @psalm-suppress UndefinedMethod
127 */
128 ListAppliedToContact::get_instance();
129
130 endif;
131