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 / mail-mint / actions / add-lists-to-contact.php
suretriggers / src / Integrations / mail-mint / actions Last commit date
add-lists-to-contact.php 11 months ago add-recipients-to-campaign.php 1 month ago add-tag-to-contact.php 11 months ago create-contact.php 11 months ago delete-contact.php 11 months ago list-campaigns.php 11 months ago list-contacts.php 11 months ago list-lists.php 11 months ago list-tags.php 11 months ago remove-list-from-contact.php 11 months ago remove-tag-from-contact.php 11 months ago
add-lists-to-contact.php
120 lines
1 <?php
2 /**
3 * AddListsToContact.
4 * php version 5.6
5 *
6 * @category AddListsToContact
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\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18 use Mint\MRM\DataBase\Models\ContactModel;
19 use Mint\MRM\DataBase\Models\ContactGroupModel;
20 use Exception;
21
22 /**
23 * AddListsToContact
24 *
25 * @category AddListsToContact
26 * @package SureTriggers
27 * @author BSF <username@example.com>
28 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
29 * @link https://www.brainstormforce.com/
30 * @since 1.0.0
31 */
32 class AddListsToContact extends AutomateAction {
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'MailMint';
40
41 /**
42 * Action name.
43 *
44 * @var string
45 */
46 public $action = 'mail_mint_add_lists_to_contact';
47
48 use SingletonLoader;
49
50 /**
51 * Register a action.
52 *
53 * @param array $actions actions.
54 * @return array
55 */
56 public function register( $actions ) {
57 $actions[ $this->integration ][ $this->action ] = [
58 'label' => __( 'Add Lists To Contact', 'suretriggers' ),
59 'action' => $this->action,
60 'function' => [ $this, 'action_listener' ],
61 ];
62
63 return $actions;
64 }
65
66 /**
67 * Action listener.
68 *
69 * @param int $user_id user_id.
70 * @param int $automation_id automation_id.
71 * @param array $fields fields.
72 * @param array $selected_options selectedOptions.
73 *
74 * @return array|void
75 * @throws Exception Error.
76 */
77 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
78 if ( ! class_exists( 'Mint\MRM\DataBase\Models\ContactGroupModel' ) || ! class_exists( 'Mint\MRM\DataBase\Models\ContactModel' ) ) {
79 return;
80 }
81 $contact_data = [];
82
83 $contact_id = $selected_options['contact_id'] ? $selected_options['contact_id'] : 0;
84 $selected_tags = $selected_options['contact_lists'] ? explode( ',', $selected_options['contact_lists'] ) : [];
85 if ( ! ContactModel::is_contact_ids_exists( [ $contact_id ] ) ) {
86 return [
87 'status' => 'error',
88 'message' => 'There is no contact with provided id.',
89 ];
90 }
91 $tags_data = [];
92 foreach ( $selected_tags as $tag ) {
93 $tags = ContactGroupModel::get_or_insert_contact_group_by_title( $tag, 'lists' );
94 $tags_data[] = $tags;
95 }
96
97
98 $contact_details = ContactGroupModel::set_lists_to_contact( $tags_data, $contact_id );
99
100 if ( $contact_details ) {
101 $contact_data = ContactModel::get( $contact_id );
102 $contact_tags = ContactGroupModel::get_lists_to_contact( [ 'id' => $contact_id ] );
103
104 foreach ( $contact_tags['lists'] as $tag ) {
105 $contact_data['lists'][] = [
106 'id' => $tag->id,
107 'title' => $tag->title,
108 ];
109 }
110 }
111
112 return $contact_data;
113 }
114
115
116
117 }
118
119 AddListsToContact::get_instance();
120