(int) ($traffic['sessions'] ?? 0), 'users' => (int) ($traffic['active_users'] ?? $traffic['users'] ?? 0), 'pageviews' => (int) ($traffic['pageviews'] ?? 0), ]; } public function has_data(array $payload): bool { return (int) ($payload['sessions'] ?? 0) > 0 || (int) ($payload['users'] ?? 0) > 0; } public function render(array $payload): string { if (!$this->has_data($payload)) { return ''; } $tiles = [ Email_Report_Html::stat([ 'label' => __('Sessions', 'thinkrank'), 'value' => number_format_i18n((int) $payload['sessions']), 'icon' => 'sessions', ]), Email_Report_Html::stat([ 'label' => __('Active users', 'thinkrank'), 'value' => number_format_i18n((int) $payload['users']), 'icon' => 'users', ]), ]; return Email_Report_Html::heading(__('Site traffic', 'thinkrank'), __('From Google Analytics 4, all channels', 'thinkrank')) . Email_Report_Html::stat_grid($tiles) . Email_Report_Html::link(__('Open the analytics dashboard', 'thinkrank'), Email_Report_Html::admin_link('analytics', 'dashboard')); } public function fallback_html(): string { return ''; } }