prefix . 'eistat_';
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
$eistat_date = isset($_GET['date']) ? sanitize_text_field(wp_unslash($_GET['date'])) : '';
// phpcs:ignore WordPress.Security.NonceVerification.Recommended
$eistat_source = isset($_GET['source']) ? sanitize_text_field(wp_unslash($_GET['source'])) : '';
if (!preg_match('/^\d{4}-\d{2}-\d{2}$/', $eistat_date) || empty($eistat_source)) {
echo '
' . esc_html__('Invalid parameters.', 'statinform') . '
';
return;
}
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_totals = $wpdb->get_row($wpdb->prepare(
"SELECT COUNT(*) AS sessions, SUM(pageviews) AS pv,
SUM(TIMESTAMPDIFF(SECOND, first_seen, last_seen)) AS dur
FROM {$eistat_p}sessions
WHERE date = %s AND source = %s",
$eistat_date, $eistat_source
));
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_entry_pages = $wpdb->get_results($wpdb->prepare(
"SELECT entry_page_url, COUNT(*) AS c
FROM {$eistat_p}sessions
WHERE date = %s AND source = %s
GROUP BY entry_page_url
ORDER BY c DESC LIMIT 15",
$eistat_date, $eistat_source
));
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_exit_pages = $wpdb->get_results($wpdb->prepare(
"SELECT exit_page_url, COUNT(*) AS c
FROM {$eistat_p}sessions
WHERE date = %s AND source = %s
GROUP BY exit_page_url
ORDER BY c DESC LIMIT 15",
$eistat_date, $eistat_source
));
// phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.PreparedSQL.NotPrepared, PluginCheck.Security.DirectDB.UnescapedDBParameter
$eistat_referrers = $wpdb->get_results($wpdb->prepare(
"SELECT referrer_host, COUNT(*) AS c
FROM {$eistat_p}sessions
WHERE date = %s AND source = %s AND referrer_host != ''
GROUP BY referrer_host
ORDER BY c DESC LIMIT 15",
$eistat_date, $eistat_source
));
$eistat_sessions = (int) $eistat_totals->sessions;
$eistat_avg_pv = $eistat_sessions > 0 ? round($eistat_totals->pv / $eistat_sessions, 2) : 0;
$eistat_avg_dur = $eistat_sessions > 0 ? round($eistat_totals->dur / $eistat_sessions) : 0;
?>
←
|
|
| referrer_host); ?> |
c)); ?> |