@@ -208,79 +208,69 @@ public function prepare_items() {
208
208
// @codingStandardsIgnoreLine
209
209
$ orderby = ! empty ( $ _REQUEST ['orderby ' ] ) ? sanitize_sql_orderby ( wp_unslash ( $ _REQUEST ['orderby ' ] ) ) : 'date_recorded ' ;
210
210
211
- // @codingStandardsIgnoreLine
212
- $ log_type = ! empty ( $ _REQUEST ['type ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['type ' ] ) ) : false ;
213
- // @codingStandardsIgnoreLine
214
- $ country = ! empty ( $ _REQUEST ['country ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['country ' ] ) ) : false ;
215
- // @codingStandardsIgnoreLine
216
- $ user_ip = ! empty ( $ _REQUEST ['s ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['s ' ] ) ) : false ;
211
+ $ log_type = ! empty ( $ _REQUEST ['type ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['type ' ] ) ) : false ;
212
+ $ country = ! empty ( $ _REQUEST ['country ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['country ' ] ) ) : false ;
213
+ $ user_ip = ! empty ( $ _REQUEST ['s ' ] ) ? sanitize_text_field ( wp_unslash ( $ _REQUEST ['s ' ] ) ) : false ;
217
214
218
215
// Define the database table.
219
216
$ database_table = $ wpdb ->prefix . \ZeroSpam \Includes \DB ::$ tables ['log ' ];
220
217
221
- // Prepare the select statements.
222
- $ select_array = array ( '* ' );
223
-
224
218
// Order & add extra select statements.
219
+ $ order_statement = '' ;
225
220
switch ( $ orderby ) {
226
221
case 'user_ip ' :
227
- $ order_statement = "ORDER BY user_ip $ order " ;
222
+ $ order_statement = " ORDER BY user_ip $ order " ;
228
223
break ;
229
224
case 'country ' :
230
- $ order_statement = "ORDER BY country $ order " ;
225
+ $ order_statement = " ORDER BY country $ order " ;
231
226
break ;
232
227
case 'region ' :
233
- $ order_statement = "ORDER BY country $ order " ;
228
+ $ order_statement = " ORDER BY country $ order " ;
234
229
break ;
235
230
case 'date_recorded ' :
236
- $ order_statement = "ORDER BY date_recorded $ order " ;
231
+ $ order_statement = " ORDER BY date_recorded $ order " ;
237
232
break ;
238
233
case 'log_type ' :
239
- $ order_statement = "ORDER BY log_type $ order " ;
234
+ $ order_statement = " ORDER BY log_type $ order " ;
240
235
break ;
241
236
}
242
237
243
238
// Where.
244
- $ where_array = array ();
239
+ $ where_array = array ();
240
+ $ where_statement = '' ;
245
241
246
242
if ( $ log_type ) {
247
- $ where_array [] = "log_type = ' $ log_type' " ;
243
+ $ where_array [] = "`log_type` = %s " ;
244
+ $ database_query_arguments [] = $ log_type ;
248
245
}
249
246
250
247
if ( $ country ) {
251
- $ where_array [] = "country = ' $ country' " ;
248
+ $ where_array [] = "`country` = %s " ;
249
+ $ database_query_arguments [] = $ country ;
252
250
}
253
251
254
252
if ( $ user_ip ) {
255
- $ where_array [] = "user_ip = ' $ user_ip' " ;
253
+ $ where_array [] = "`user_ip` = %s " ;
254
+ $ database_query_arguments [] = $ user_ip ;
256
255
}
257
256
257
+ if ( $ where_array ) {
258
+ $ where_statement .= 'WHERE ' ;
259
+ $ where_statement .= implode ( ' AND ' , $ where_array );
260
+ }
261
+
262
+
258
263
// Limit.
259
264
$ limit_statement = "LIMIT $ per_page " ;
260
265
if ( $ offset ) {
261
266
$ limit_statement .= ", $ offset " ;
262
267
}
263
268
264
- // Create the query.
265
- $ database_query = 'SELECT ' ;
266
-
267
- $ select_statement = implode ( ', ' , $ select_array );
268
- $ database_query .= $ select_statement . ' ' ;
269
-
270
- $ database_query .= "FROM $ database_table " ;
271
-
272
- if ( $ where_array ) {
273
- $ database_query .= 'WHERE ' ;
274
- $ database_query .= implode ( ' AND ' , $ where_array );
275
- }
276
-
277
- if ( ! empty ( $ order_statement ) ) {
278
- $ database_query .= $ order_statement . ' ' ;
279
- }
280
-
281
- $ database_query .= $ limit_statement ;
269
+ $ database_query = $ wpdb ->prepare (
270
+ "SELECT * FROM ` $ database_table` $ where_statement$ order_statement $ limit_statement " ,
271
+ $ database_query_arguments
272
+ );
282
273
283
- // @codingStandardsIgnoreLine
284
274
$ data = $ wpdb ->get_results ( $ database_query , ARRAY_A );
285
275
286
276
if ( ! $ data ) {
@@ -290,12 +280,6 @@ public function prepare_items() {
290
280
// Get total number of rows.
291
281
$ count_query = "SELECT COUNT(*) FROM $ database_table " ;
292
282
293
- if ( $ where_array ) {
294
- $ count_query .= 'WHERE ' ;
295
- $ count_query .= implode ( ' AND ' , $ where_array );
296
- }
297
-
298
- // @codingStandardsIgnoreLine
299
283
$ total_items = $ wpdb ->get_var ( $ count_query );
300
284
301
285
$ this ->set_pagination_args (
0 commit comments