403)); } global $wpdb; $dwarpal_table_name = $wpdb->prefix . 'dwarpal_traffic'; // One short read. No row count, no page links, no full-length addresses. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- Session limit so a locked log cannot hang the admin request. $wpdb->query('SET SESSION max_statement_time=3'); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.InterpolatedNotPrepared -- Newest rows by primary key. URI is clipped in SQL. $dwarpal_traffic = $wpdb->get_results( 'SELECT id, ip_address, LEFT(request_uri, 120) AS request_uri, method, status_code, is_human, is_bot, user_id, created_at FROM `' . esc_sql($dwarpal_table_name) . '` ORDER BY id DESC LIMIT 30', ARRAY_A ); if (!is_array($dwarpal_traffic)) { $dwarpal_traffic = array(); } ?>