PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.1.83
Brevo – Email, SMS, Web Push, Chat, and more. v3.1.83
2.9.13 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.2 3.1.20 3.1.21 3.1.22 3.1.23 3.1.24 3.1.25 3.1.26 3.1.27 3.1.28 3.1.29 3.1.3 3.1.30 3.1.31 3.1.32 3.1.33 3.1.34 3.1.35 3.1.36 3.1.37 3.1.38 3.1.39 3.1.4 3.1.40 3.1.41 3.1.42 3.1.43 3.1.44 3.1.45 3.1.46 3.1.47 3.1.48 3.1.49 3.1.5 3.1.50 3.1.51 3.1.52 3.1.53 3.1.54 3.1.55 3.1.56 3.1.57 3.1.58 3.1.59 3.1.6 3.1.60 3.1.61 3.1.62 3.1.63 3.1.64 3.1.65 3.1.66 3.1.67 3.1.68 3.1.69 3.1.7 3.1.70 3.1.71 3.1.72 3.1.73 3.1.74 3.1.75 3.1.76 3.1.77 3.1.78 3.1.79 3.1.8 3.1.80 3.1.81 3.1.82 3.1.83 3.1.84 3.1.85 3.1.86 3.1.87 3.1.88 3.1.89 3.1.9 3.1.90 3.1.91 3.1.92 3.1.93 3.1.94 3.1.95 3.1.96 3.1.97 3.1.98 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 trunk 1.0 1.5 2.0.8 2.9.10 2.9.11 2.9.12
mailin / inc / sendinblue.php
mailin / inc Last commit date
templates 2 years ago SendinblueAccount.php 5 years ago SendinblueApiClient.php 1 year ago function.wp_mail.php 8 years ago index.php 8 years ago mailin.php 3 years ago sendinblue.php 3 years ago sib-api-manager.php 2 years ago sib-form-preview.php 2 years ago sib-sms-code.php 3 years ago table-forms.php 1 year ago
sendinblue.php
176 lines
1 <?php
2 class Sendinblue
3 {
4 public $api_key;
5 public $base_url;
6 public $curl_opts = array();
7
8 public function __construct($api_key)
9 {
10 if (!function_exists('curl_init')) {
11 throw new Exception('Sendinblue requires CURL module');
12 }
13 $this->base_url = 'https://in-automate.brevo.com/p';
14 $this->api_key = $api_key;
15 //create a session cookie
16 if (!array_key_exists('session_id', $_COOKIE)) {
17 $domain = self::get_app_domain();
18 //store session_id cookie
19 $session_id = md5(uniqid(time()));
20 $expiry_time = self::get_default_cookie_expiry();
21 setcookie("session_id", $session_id, $expiry_time, "/", $domain, is_ssl());
22 }
23 }
24
25 /**
26 * @param $input
27 * @return mixed
28 */
29 private function do_request($input)
30 {
31 $input['key'] = $this->api_key;
32 $url = $this->base_url . "?" . http_build_query($input);
33 $data = wp_remote_retrieve_body(wp_remote_request($url, ['method' => 'GET']));
34
35 return json_decode($data, true);
36 }
37
38 /**
39 * @return string
40 */
41 private static function get_app_domain()
42 {
43 $url = get_site_url();
44 $parsed_url = parse_url($url);
45 return !empty($parsed_url['host']) ? $parsed_url['host'] : 'localhost';
46 }
47
48 /**
49 * @return int
50 */
51 private static function get_default_cookie_expiry()
52 {
53 return time() + 8640;
54 }
55
56
57 /**
58 * @param string $email
59 * @param int $expiry_time
60 * @return void
61 */
62 private function set_email_cookie($email)
63 {
64 if (is_string($email)) {
65 $expiry_time = self::get_default_cookie_expiry();
66 $domain = self::get_app_domain();
67 setcookie("email_id", sanitize_email($email), $expiry_time, "/", $domain, is_ssl());
68 }
69 }
70
71 public function identify($data)
72 {
73 $data['sib_type'] = 'identify';
74
75 if (!array_key_exists('name', $data)) {
76 $data['name'] = "Contact Created";
77 }
78 $url = esc_url_raw((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
79 if (!array_key_exists('url', $data)) {
80 $data['url'] = $url;
81 }
82 if (isset($_COOKIE['session_id']) && $_COOKIE['session_id'] != '') {
83 $data['session_id'] = sanitize_text_field($_COOKIE['session_id']);
84 }
85 //store email_id cookie
86 $this->set_email_cookie($data['email_id']);
87 return $this->do_request($data);
88 }
89
90 public function track($data)
91 {
92 $data['sib_type'] = 'track';
93 $url = esc_url_raw((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
94 if (!array_key_exists('url', $data)) {
95 $data['url'] = $url;
96 }
97
98 if (!array_key_exists('sib_name', $data)) {
99 if (array_key_exists('name', $data)) {
100 $data['sib_name'] = $data['name'];
101 }
102 }
103
104 //get email cookie
105
106 if (isset($_COOKIE['email_id']) && $_COOKIE['email_id'] != '') {
107 $data['email_id'] = sanitize_email($_COOKIE['email_id']);
108 }
109 if (isset($_COOKIE['session_id']) && $_COOKIE['session_id'] != '') {
110 $data['session_id'] = sanitize_text_field($_COOKIE['session_id']);
111 }
112
113 //store email cookie
114 $obj = $this->do_request($data);
115 if (isset($obj['email_id']) && $obj['email_id'] != '') {
116 $this->set_email_cookie($obj['email_id']);
117 }
118 }
119
120 public function page($data)
121 {
122 $data['sib_type'] = 'page';
123 $url = esc_url_raw((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
124 if (!array_key_exists('url', $data)) {
125 $data['url'] = $url;
126 }
127 //get email cookie
128 if (isset($_COOKIE['email_id']) && $_COOKIE['email_id'] != '') {
129 $data['email_id'] = sanitize_email($_COOKIE['email_id']);
130 }
131 if (isset($_COOKIE['session_id']) && $_COOKIE['session_id'] != '') {
132 $data['session_id'] = sanitize_text_field($_COOKIE['session_id']);
133 }
134 //referrer
135 if (!array_key_exists('referrer', $data) && array_key_exists('HTTP_REFERER', $_SERVER)) {
136 $data['referrer'] = sanitize_text_field( wp_unslash( $_SERVER['HTTP_REFERER'] ) );
137 }
138 //pathname
139 if (!array_key_exists('pathname', $data)) {
140 $data['pathname'] = sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) );
141 }
142
143 //name
144 if (!array_key_exists('name', $data)) {
145 $data['name'] = sanitize_text_field( wp_unslash( $_SERVER['REQUEST_URI'] ) );
146 }
147
148 //store email cookie
149 $obj = $this->do_request($data);
150 if (isset($obj['email_id']) && $obj['email_id'] != '') {
151 $this->set_email_cookie($obj['email_id']);
152 }
153 }
154
155 public function trackLink($data)
156 {
157 $data['sib_type'] = 'trackLink';
158 //get email cookie
159 if (isset($_COOKIE['email_id']) && $_COOKIE['email_id'] != '') {
160 $data['email_id'] = sanitize_email($_COOKIE['email_id']);
161 }
162 if (isset($_COOKIE['session_id']) && $_COOKIE['session_id'] != '') {
163 $data['session_id'] = sanitize_text_field($_COOKIE['session_id']);
164 }
165 $url = esc_url_raw((isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
166 if (!array_key_exists('url', $data)) {
167 $data['url'] = $url;
168 }
169 //store email cookie
170 $obj = $this->do_request($data);
171 if (isset($obj['email_id']) && $obj['email_id'] != '') {
172 $this->set_email_cookie($obj['email_id']);
173 }
174 }
175 }
176