PluginProbe ʕ •ᴥ•ʔ
Brevo – Email, SMS, Web Push, Chat, and more. / 3.1.61
Brevo – Email, SMS, Web Push, Chat, and more. v3.1.61
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 3 years ago model-lang.php 5 years ago model-users.php 4 years ago
model-users.php
258 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 // create list table.
32 $creation_query =
33 'CREATE TABLE IF NOT EXISTS ' . $wpdb->prefix . self::TABLE_NAME . ' (
34 `id` int(20) NOT NULL AUTO_INCREMENT,
35 `email` varchar(255),
36 `code` varchar(100),
37 `listIDs` longtext,
38 `redirectUrl` varchar(255),
39 `info` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
40 `frmid` int(2),
41 `user_added_date` DATETIME NOT NULL,
42 PRIMARY KEY (`id`)
43 );';
44 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
45 $wpdb->query($creation_query);
46 }
47
48 /**
49 * Remove table
50 */
51 public static function removeTable() {
52 global $wpdb;
53 $query = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . self::TABLE_NAME . ';';
54 $wpdb->query( $query ); // db call ok; no-cache ok.
55 }
56
57 /**
58 * Get data by id
59 *
60 * @param int $id - user id.
61 * @return bool|mixed
62 */
63 public static function get_data( $id ) {
64 global $wpdb;
65 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where id = %d",array(esc_sql($id)));
66 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
67
68 if ( is_array( $results ) ) {
69 return $results[0];
70 } else {
71 return false;
72 }
73 }
74
75 /**
76 * Get data by code
77 *
78 * @param string $code - code.
79 * @return array|bool|null|object|void
80 */
81 public static function get_data_by_code( $code ) {
82 global $wpdb;
83 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where code like %s",array(esc_sql($code)));
84 $results = $wpdb->get_row( $query,ARRAY_A ); // db call ok; no-cache ok.
85
86 if ( is_array( $results ) && count( $results ) > 0 ) {
87 return $results;
88 } else {
89 return false;
90 }
91 }
92
93 /**
94 * Get code by email.
95 *
96 * @param string $email - email.
97 * @param int $formID - form ID.
98 * @return array|bool|null|object|void
99 */
100 public static function get_data_by_email( $email, $formID ) {
101 global $wpdb;
102 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where email = %s and frmid = %d",array(esc_sql($email),esc_sql($formID)));
103 $results = $wpdb->get_row( $query,ARRAY_A ); // db call ok; no-cache ok.
104
105 if ( is_array( $results ) && count( $results ) > 0 ) {
106 return $results;
107 } else {
108 return false;
109 }
110 }
111
112 /**
113 * Add record
114 *
115 * @param array $data - record data.
116 * @return null|string
117 */
118 public static function add_record( $data ) {
119 global $wpdb;
120
121 foreach ($data as $key => $value) {
122 if(!in_array($key, array("listIDs","info")))
123 $data[$key] = esc_sql($value);
124 }
125
126 $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"] ));
127 $wpdb->query( $query ); // db call ok; no-cache ok.
128 $index = $wpdb->get_var( 'SELECT LAST_INSERT_ID();' ); // db call ok; no-cache ok.
129
130 return $index;
131 }
132
133 /**
134 * Check email exist
135 *
136 * @param string $email - email.
137 * @param string $id - id.
138 * @return bool
139 */
140 public static function is_exist_same_email( $email, $id = '' ) {
141 global $wpdb;
142
143 $query = $wpdb->prepare("SELECT * from " . $wpdb->prefix . self::TABLE_NAME . " where email like %s",array(esc_sql($email)));
144 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
145
146 if ( is_array( $results ) && (count( $results ) > 0) ) {
147 if ( '' === $id ) {
148 return true;
149 }
150 if ( isset( $results ) && is_array( $results ) ) {
151 foreach ( $results as $result ) {
152 if ( $result['id'] != $id ) {
153 return true;
154 }
155 }
156 }
157 }
158
159 return false;
160 }
161
162 /**
163 * Remove guest
164 *
165 * @param int $id - id.
166 */
167 public static function remove_record( $id ) {
168 global $wpdb;
169
170 $query = $wpdb->prepare("DELETE from " . $wpdb->prefix . self::TABLE_NAME . " where id = %d",array(esc_sql($id)));
171 $wpdb->query( $query ); // db call ok; no-cache ok.
172 }
173
174 /**
175 * Get all guests by pagenum, per_page
176 *
177 * @param string $orderby - ORDER BY.
178 * @param string $order - sort order.
179 * @param int $pagenum - page number.
180 * @param int $per_page - count per page.
181 * @return array|null|object
182 */
183 public static function get_all( $orderby = 'email', $order = 'asc', $pagenum = 1, $per_page = 15 ) {
184 global $wpdb;
185
186 $limit = ($pagenum - 1) * $per_page;
187 $query = 'SELECT * FROM ' . $wpdb->prefix . self::TABLE_NAME . ' ORDER BY %s %s LIMIT %d,%d';
188 $query = $wpdb->prepare($query,array(esc_sql($orderby), esc_sql($order), esc_sql($limit), esc_sql($per_page)));
189
190
191 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
192 self::$found_count = self::get_count_element();
193
194 if ( ! is_array( $results ) ) {
195 $results = array();
196 return $results;
197 }
198
199 return $results;
200 }
201
202 /** Get all records of table */
203 public static function get_all_records() {
204 global $wpdb;
205
206 $query = $wpdb->prepare('select * from ' . $wpdb->prefix . self::TABLE_NAME . ' order by %s %s;', array("email","asc"));
207 $results = $wpdb->get_results( $query, ARRAY_A ); // db call ok; no-cache ok.
208
209 if ( ! is_array( $results ) ) {
210 $results = array();
211 return $results;
212 }
213
214 return $results;
215 }
216
217 /** Get count of row */
218 public static function get_count_element() {
219 global $wpdb;
220
221 $query = 'Select count(*) from ' . $wpdb->prefix . self::TABLE_NAME . ';';
222
223 $count = $wpdb->get_var( $query ); // db call ok; no-cache ok.
224
225 return $count;
226 }
227
228 /** Add prefix to the table */
229 public static function add_prefix() {
230 global $wpdb;
231 if ( $wpdb->get_var( "SHOW TABLES LIKE '" . self::TABLE_NAME . "'" ) == self::TABLE_NAME ) {
232 $query = 'ALTER TABLE ' . self::TABLE_NAME . ' RENAME TO ' . $wpdb->prefix . self::TABLE_NAME . ';';
233 $wpdb->query( $query ); // db call ok; no-cache ok.
234 }
235 }
236
237 /** Add column to the table */
238 public static function add_user_added_date_column() {
239 global $wpdb;
240 $user_added = 'user_added_date';
241 $result = $wpdb->query( $wpdb->prepare( 'SHOW COLUMNS FROM ' . $wpdb->prefix . self::TABLE_NAME . ' LIKE %s ', $user_added ) ); // db call ok; no-cache ok.
242
243 if ( empty( $result ) ) {
244 $query = 'ALTER TABLE ' . $wpdb->prefix . self::TABLE_NAME . ' ADD COLUMN user_added_date DATETIME NOT NULL';
245 $wpdb->query( $query );
246 }
247 }
248
249 /** Update user data to the table */
250 public static function update_element( $data ) {
251 global $wpdb;
252 $query = $wpdb->prepare( 'update ' . $wpdb->prefix . self::TABLE_NAME . ' set info= %s where id= %d;', array( $data['info'], esc_sql( $data['id'] ) ) );
253 $wpdb->query( $query );
254
255 return true;
256 }
257
258 }