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 / fluentcrm / triggers / email-clicked-fluentcrm.php
suretriggers / src / Integrations / fluentcrm / triggers Last commit date
add-tag-to-contact-fluentcrm.php 1 year ago campaign-sent-fluentcrm.php 10 months ago company-assigned-to-contact-fluentcrm.php 10 months ago company-created-fluentcrm.php 10 months ago company-deleted-fluentcrm.php 10 months ago company-unassigned-from-contact-fluentcrm.php 10 months ago company-updated-fluentcrm.php 10 months ago contact-added-to-list-fluentcrm.php 2 years ago contact-custom-fields-updated-fluentcrm.php 2 years ago contact-deleted-fluentcrm.php 10 months ago contact-removed-from-list-fluentcrm.php 2 years ago contact-status-set-to-specific-status-fluentcrm.php 3 months ago contact-updated-fluentcrm.php 2 years ago email-bounced-fluentcrm.php 10 months ago email-clicked-fluentcrm.php 10 months ago email-opened-fluentcrm.php 10 months ago email-unsubscribed-fluentcrm.php 10 months ago new-contact-added-fluentcrm.php 3 years ago tag-removed-from-contact.php 1 year ago
email-clicked-fluentcrm.php
142 lines
1 <?php
2 /**
3 * EmailClickedFluentCRM.
4 * php version 5.6
5 *
6 * @category EmailClickedFluentCRM
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\FluentCRM\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'EmailClickedFluentCRM' ) ) :
20
21 /**
22 * EmailClickedFluentCRM
23 *
24 * @category EmailClickedFluentCRM
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 * @psalm-suppress UndefinedTrait
32 */
33 class EmailClickedFluentCRM {
34
35
36 /**
37 * Integration type.
38 *
39 * @var string
40 */
41 public $integration = 'FluentCRM';
42
43
44 /**
45 * Trigger name.
46 *
47 * @var string
48 */
49 public $trigger = 'email_clicked_fluentcrm';
50
51 use SingletonLoader;
52
53
54 /**
55 * Constructor
56 *
57 * @since 1.0.0
58 */
59 public function __construct() {
60 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
61 }
62
63 /**
64 * Register action.
65 *
66 * @param array $triggers trigger data.
67 * @return array
68 */
69 public function register( $triggers ) {
70
71 $triggers[ $this->integration ][ $this->trigger ] = [
72 'label' => __( 'Email Clicked', 'suretriggers' ),
73 'action' => $this->trigger,
74 'common_action' => 'fluent_crm/email_url_clicked',
75 'function' => [ $this, 'trigger_listener' ],
76 'priority' => 10,
77 'accepted_args' => 2,
78 ];
79
80 return $triggers;
81 }
82
83 /**
84 * Trigger listener
85 *
86 * @param object $campaign_email Campaign email object.
87 * @param object $url_data URL data object.
88 * @return void
89 */
90 public function trigger_listener( $campaign_email, $url_data ) {
91 if ( empty( $campaign_email ) || ! is_object( $campaign_email ) || empty( $url_data ) || ! is_object( $url_data ) ) {
92 return;
93 }
94
95 // Get email data.
96 $email_data = method_exists( $campaign_email, 'toArray' ) ? $campaign_email->toArray() : [];
97
98 // Get URL data.
99 $url_info = method_exists( $url_data, 'toArray' ) ? $url_data->toArray() : [];
100
101 // Get subscriber details if subscriber_id exists.
102 if ( property_exists( $campaign_email, 'subscriber_id' ) && class_exists( 'FluentCrm\App\Models\Subscriber' ) ) {
103 $subscriber = \FluentCrm\App\Models\Subscriber::find( $campaign_email->subscriber_id );
104 if ( $subscriber && is_object( $subscriber ) && method_exists( $subscriber, 'toArray' ) ) {
105 $context['subscriber'] = $subscriber->toArray();
106 // Add custom fields if subscriber has custom_fields method.
107 if ( is_object( $subscriber ) && method_exists( $subscriber, 'custom_fields' ) ) {
108 $context['subscriber']['custom_fields'] = $subscriber->custom_fields();
109 }
110 }
111 }
112
113 // Get campaign details if campaign_id exists.
114 if ( property_exists( $campaign_email, 'campaign_id' ) && class_exists( 'FluentCrm\App\Models\Campaign' ) ) {
115 $campaign = \FluentCrm\App\Models\Campaign::find( $campaign_email->campaign_id );
116 if ( $campaign && is_object( $campaign ) && method_exists( $campaign, 'toArray' ) ) {
117 $context['campaign'] = $campaign->toArray();
118 }
119 }
120
121 $context['email'] = $email_data;
122 $context['url'] = $url_info;
123 $context['clicked_at'] = current_time( 'mysql' );
124
125 AutomationController::sure_trigger_handle_trigger(
126 [
127 'trigger' => $this->trigger,
128 'context' => $context,
129 ]
130 );
131 }
132 }
133
134 /**
135 * Ignore false positive
136 *
137 * @psalm-suppress UndefinedMethod
138 */
139 EmailClickedFluentCRM::get_instance();
140
141 endif;
142