PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.3.2
Brevo – Email, SMS, Web Push, Chat, and more. v3.3.2
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 / model / model-users.php
mailin / model Last commit date
index.php 11 years ago model-contacts.php 5 years ago model-forms.php 2 years ago model-lang.php 5 years ago model-users.php 8 months ago
model-users.php
292 lines
1 <?php
2 /**
3 * Model class <i>SIB_Model_Users</i> represents account
4 *
5 * @package SIB_Model
6 */
7 class SIB_Model_Users {
8
9 /**
10 * Tab table name
11 */
12 const TABLE_NAME = 'sib_model_users';
13
14 /**
15 * Holds found campaign count
16 *
17 * @var $found_count
18 */
19 static $found_count;
20
21 /**
22 * Holds all campaign count
23 *
24 * @var $all_count
25 */
26 static $all_count;
27
28 /** Create Table */
29 public static function createTable() {
30 global $wpdb;
31 $table_name = $wpdb->prefix . self::TABLE_NAME;
32
33 //Check if table exists
34 $table_check_query = 'SHOW TABLES LIKE ' . "'" . $table_name. "'" . ';';
35 $wpdb->query($table_check_query);
36
37 //table doesnot exist
38 if (empty($wpdb->last_result)) {
39 // create list table.
40 $creation_query =
41 'CREATE TABLE IF NOT EXISTS ' . $table_name . ' (
42 `id` int(20) NOT NULL AUTO_INCREMENT,
43 `email` varchar(255),
44 `code` varchar(100),
45 `listIDs` longtext,
46 `redirectUrl` varchar(255),
47 `info` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
48 `frmid` int(2),
49 `user_added_date` DATETIME NOT NULL,
50 PRIMARY KEY (`id`)
51 );';
52 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
53 $wpdb->query($creation_query);
54 }
55 }
56
57 /**
58 * Remove table
59 */
60 public static function removeTable() {
61 global $wpdb;
62 $query = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . self::TABLE_NAME . ';';
63 $wpdb->query( $query ); // db call ok; no-cache ok.
64 }
65
66 /**
67 * Get data by id
68 *
69 * @param int $id - user id.
70 * @return bool|mixed
71 */
72 public static function get_data( $id ) {
73 global $wpdb;
74 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where id = %d",array(esc_sql($id)));
75 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
76
77 if ( is_array( $results ) ) {
78 return $results[0];
79 } else {
80 return false;
81 }
82 }
83
84 /**
85 * Get data by code
86 *
87 * @param string $code - code.
88 * @return array|bool|null|object|void
89 */
90 public static function get_data_by_code( $code ) {
91 global $wpdb;
92 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where code like %s",array(esc_sql($code)));
93 $results = $wpdb->get_row( $query,ARRAY_A ); // db call ok; no-cache ok.
94
95 if ( is_array( $results ) && count( $results ) > 0 ) {
96 return $results;
97 } else {
98 return false;
99 }
100 }
101
102 /**
103 * Get code by email.
104 *
105 * @param string $email - email.
106 * @param int $formID - form ID.
107 * @return array|bool|null|object|void
108 */
109 public static function get_data_by_email( $email, $formID ) {
110 global $wpdb;
111 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where email = %s and frmid = %d",array(esc_sql($email),esc_sql($formID)));
112 $results = $wpdb->get_row( $query,ARRAY_A ); // db call ok; no-cache ok.
113
114 if ( is_array( $results ) && count( $results ) > 0 ) {
115 return $results;
116 } else {
117 return false;
118 }
119 }
120
121 /**
122 * Add record
123 *
124 * @param array $data - record data.
125 * @return null|string
126 */
127 public static function add_record( $data ) {
128 global $wpdb;
129
130 foreach ($data as $key => $value) {
131 if(!in_array($key, array("listIDs","info")))
132 $data[$key] = esc_sql($value);
133 }
134
135 $query = $wpdb->prepare('INSERT INTO ' . $wpdb->prefix . self::TABLE_NAME . ' (email,code,info,frmid,listIDs,redirectUrl,user_added_date) VALUES (%s, %s, %s, %d, %s, %s, %s) ',array( $data["email"], $data["code"], $data["info"], $data["frmid"], $data["listIDs"], $data["redirectUrl"], $data["user_added_date"] ));
136 $wpdb->query( $query ); // db call ok; no-cache ok.
137 $index = $wpdb->get_var( 'SELECT LAST_INSERT_ID();' ); // db call ok; no-cache ok.
138
139 return $index;
140 }
141
142 /**
143 * Check email exist
144 *
145 * @param string $email - email.
146 * @param string $id - id.
147 * @return bool
148 */
149 public static function is_exist_same_email( $email, $id = '' ) {
150 global $wpdb;
151
152 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where email like %s",array(esc_sql($email)));
153 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
154
155 if ( is_array( $results ) && (count( $results ) > 0) ) {
156 if ( '' === $id ) {
157 return true;
158 }
159 if ( isset( $results ) && is_array( $results ) ) {
160 foreach ( $results as $result ) {
161 if ( $result['id'] != $id ) {
162 return true;
163 }
164 }
165 }
166 }
167
168 return false;
169 }
170
171 /**
172 * Remove guest
173 *
174 * @param int $id - id.
175 */
176 public static function remove_record( $id ) {
177 global $wpdb;
178
179 $query = $wpdb->prepare("DELETE from " . $wpdb->prefix . self::TABLE_NAME . " where id = %d",array(esc_sql($id)));
180 $wpdb->query( $query ); // db call ok; no-cache ok.
181 }
182
183 /**
184 * Get all guests by pagenum, per_page
185 *
186 * @param string $orderby - ORDER BY.
187 * @param string $order - sort order.
188 * @param int $pagenum - page number.
189 * @param int $per_page - count per page.
190 * @return array|null|object
191 */
192 public static function get_all( $orderby = 'email', $order = 'asc', $pagenum = 1, $per_page = 15 ) {
193 global $wpdb;
194
195 $limit = ($pagenum - 1) * $per_page;
196 $query = 'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' ORDER BY %s %s LIMIT %d,%d';
197 $query = $wpdb->prepare($query,array(esc_sql($orderby), esc_sql($order), esc_sql($limit), esc_sql($per_page)));
198
199
200 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
201 self::$found_count = self::get_count_element();
202
203 if ( ! is_array( $results ) ) {
204 $results = array();
205 return $results;
206 }
207
208 return $results;
209 }
210
211 /** Get all records of table */
212 public static function get_all_records() {
213 global $wpdb;
214
215 $query = $wpdb->prepare('select * from ' . $wpdb->prefix . self::TABLE_NAME . ' order by %s %s;', array("email","asc"));
216 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
217
218 if ( ! is_array( $results ) ) {
219 $results = array();
220 return $results;
221 }
222
223 return $results;
224 }
225
226 /** Get count of row */
227 public static function get_count_element() {
228 global $wpdb;
229
230 $query = 'Select count(*) from ' . $wpdb->prefix . self::TABLE_NAME . ';';
231
232 $count = $wpdb->get_var( $query ); // db call ok; no-cache ok.
233
234 return $count;
235 }
236
237 /** Add prefix to the table */
238 public static function add_prefix() {
239 global $wpdb;
240 if ( $wpdb->get_var( "SHOW TABLES LIKE '" . self::TABLE_NAME . "'" ) == self::TABLE_NAME ) {
241 $query = 'ALTER TABLE ' . self::TABLE_NAME . ' RENAME TO ' . $wpdb->prefix . self::TABLE_NAME . ';';
242 $wpdb->query( $query ); // db call ok; no-cache ok.
243 }
244 }
245
246 /** Add column to the table */
247 public static function add_user_added_date_column() {
248 global $wpdb;
249 $user_added = 'user_added_date';
250 $result = $wpdb->query( $wpdb->prepare( 'SHOW COLUMNS FROM ' . $wpdb->prefix . self::TABLE_NAME . ' LIKE %s ', $user_added ) ); // db call ok; no-cache ok.
251
252 if ( empty( $result ) ) {
253 $query = 'ALTER TABLE ' . $wpdb->prefix . self::TABLE_NAME . ' ADD COLUMN user_added_date DATETIME NOT NULL';
254 $wpdb->query( $query );
255 }
256 }
257
258 /**
259 * add new column to the table which will reflect sent DOI flag
260 */
261 public static function add_flag_doi_sent() {
262 global $wpdb;
263 $doi_sent = 'doi_sent';
264 $result = $wpdb->query( $wpdb->prepare( 'SHOW COLUMNS FROM ' . $wpdb->prefix . self::TABLE_NAME . ' LIKE %s ', $doi_sent ) ); // db call ok; no-cache ok.
265
266 if ( empty( $result ) ) {
267 $query = 'ALTER TABLE ' . $wpdb->prefix . self::TABLE_NAME . ' ADD COLUMN ' . $doi_sent . ' int(20) NOT NULL DEFAULT 0';
268 $wpdb->query( $query );
269 }
270 }
271
272 /** Update user data to the table */
273 public static function update_element( $data ) {
274 global $wpdb;
275 $query = $wpdb->prepare( 'update ' . $wpdb->prefix . self::TABLE_NAME . ' set info= %s where id= %d;', array( $data['info'], esc_sql( $data['id'] ) ) );
276 $wpdb->query( $query );
277
278 return true;
279 }
280
281 /**
282 * update to mark the DOI sent
283 */
284 public static function make_doi_sent($email) {
285 global $wpdb;
286 $query = $wpdb->prepare('update ' . $wpdb->prefix . self::TABLE_NAME . ' set doi_sent= %d where email= %s;', array(esc_sql(1), esc_sql($email) ));
287 $wpdb->query($query);
288
289 return true;
290 }
291 }
292