prefix . 'accessiq_page_views'; // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $accessiq_total_pv = (int) $wpdb->get_var( 'SELECT COUNT(*) FROM `' . esc_sql( $accessiq_pv_table ) . '`' // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $accessiq_total_sessions_pv = (int) $wpdb->get_var( 'SELECT COUNT(DISTINCT session_id) FROM `' . esc_sql( $accessiq_pv_table ) . '`' // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared ); // Sessions list — last 50 unique sessions with page view data. // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $accessiq_journeys = $wpdb->get_results( $wpdb->prepare( // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared 'SELECT pv.session_id, COUNT(pv.id) AS page_count, SUM(pv.time_spent) AS total_time, MIN(pv.created_at) AS first_visit, (SELECT p2.page_url FROM `' . esc_sql( $accessiq_pv_table ) . '` p2 WHERE p2.session_id = pv.session_id ORDER BY p2.created_at ASC LIMIT 1) AS entry_url FROM `' . esc_sql( $accessiq_pv_table ) . '` pv GROUP BY pv.session_id ORDER BY first_visit DESC LIMIT %d', 50 ) ); ?>

🗺️ Journey Tracker

0 ? esc_html( number_format( $accessiq_total_pv / $accessiq_total_sessions_pv, 1 ) ) : '0'; ?>
🗺️

entry_url ? ( wp_parse_url( $accessiq_j->entry_url, PHP_URL_PATH ) ?: $accessiq_j->entry_url ) : '/'; $accessiq_total_sec = (int) $accessiq_j->total_time; $accessiq_time_str = $accessiq_total_sec >= 60 ? ( floor( $accessiq_total_sec / 60 ) . 'm ' . ( $accessiq_total_sec % 60 ) . 's' ) : ( $accessiq_total_sec . 's' ); ?>
page_count; ?> first_visit ) ) ); ?>