$filter_tool, 'status' => $filter_status, 'api_key_id' => $filter_key_id ?: null, 'remote_ip' => $filter_ip, 'date_from' => $filter_from, 'date_to' => $filter_to, ] ); $result = AICOM_Audit_Logger::query( $filters, $per_page, $page_num ); $logs = $result['items']; $total = $result['total']; $num_pages = (int) ceil( $total / $per_page ); // For key dropdown $api_keys = $wpdb->get_results( "SELECT id, label, key_prefix FROM {$wpdb->prefix}aicom_api_keys ORDER BY label", ARRAY_A ); $status_options = [ '', 'success', 'error', 'blocked_soft_lock', 'blocked_hard_lock', 'denied_scope', 'denied_allowlist', 'validation_failed', 'auth_failed', 'dependency_missing' ]; $period_options = [ 'today' => 'Today', '7days' => 'Last 7 Days', '30days' => 'Last 30 Days', 'year' => 'This Year', 'custom' => 'Custom Range', 'all' => 'All Time' ]; $base_url = admin_url( 'admin.php?page=aicom-audit-logs' ); ?>

Audit Logs ( total)

> to Reset

No log entries found.

Time Tool Status Duration Key IP Target
1 ) : ?>
'aicom-audit-logs', 'tool_name' => $filter_tool, 'status' => $filter_status, 'api_key_id' => $filter_key_id ?: null, 'remote_ip' => $filter_ip, 'period' => $filter_period, 'date_from' => $filter_from, 'date_to' => $filter_to, ] ); $base = admin_url( 'admin.php' ) . '?' . http_build_query( $pagination_args ); for ( $p = 1; $p <= $num_pages; $p++ ) : $url = $base . '&paged=' . $p; $cls = $p === $page_num ? 'button button-primary' : 'button'; ?>