get_var( " SELECT COUNT(*) FROM {$wpdb->prefix}aiapg_logs l LEFT JOIN {$wpdb->prefix}aiapg_schedules s ON l.schedule_id = s.id " ); // -------------------- // Logs with pagination // -------------------- // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $logs = $wpdb->get_results( $wpdb->prepare( " SELECT l.*, s.name as schedule_name FROM {$wpdb->prefix}aiapg_logs l LEFT JOIN {$wpdb->prefix}aiapg_schedules s ON l.schedule_id = s.id ORDER BY l.run_time DESC LIMIT %d OFFSET %d ", $per_page, $offset ) ); // Calculate pagination $total_pages = ceil($total_logs / $per_page); $pagination_args = array( 'base' => add_query_arg('paged', '%#%'), 'format' => '', 'prev_text' => esc_html__('« Previous', 'ai-auto-post-image-generator'), 'next_text' => esc_html__('Next »', 'ai-auto-post-image-generator'), 'total' => $total_pages, 'current' => $current_page, ); // Get log statistics $stats = array( // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 'total_runs' => (int) $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->prefix}aiapg_logs"), // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 'successful_runs' => (int) $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->prefix}aiapg_logs WHERE status = %s", 'success')), // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 'failed_runs' => (int) $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM {$wpdb->prefix}aiapg_logs WHERE status = %s", 'error')), // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 'total_posts' => (int) $wpdb->get_var($wpdb->prepare("SELECT SUM(posts_created) FROM {$wpdb->prefix}aiapg_logs WHERE posts_created > %d", 0)), ); ?>
|
run_time))); ?> run_time))); ?> |
schedule_name): ?> schedule_name); ?> | status === 'success'): ?> | posts_created > 0): ?> posts_created); ?> 0 |
text_model): ?>
text_model); ?>
image_model): ?>
image_model); ?>
|
details) ? maybe_unserialize($log->details) : array(); if (!is_array($details)) { $details = array(); } if (is_array($details) && isset($details['duration'])) { echo esc_html($details['duration']); } else { echo '—'; } ?> |
status === 'error'): ?>
|