$entry['url'] ?? '', 'clicks' => (int) $entry['cur_clicks'], 'change' => $delta, ]; } usort($rows, static fn($a, $b) => $b['change'] <=> $a['change']); return [ 'rows' => array_slice($rows, 0, self::MAX_ROWS), ]; } public function has_data(array $payload): bool { return !empty($payload['rows']); } public function render(array $payload): string { $rows = Top_Posts_Renderer::page_rows($payload['rows'] ?? []); if ($rows === []) { return ''; } return Email_Report_Html::heading( $this->label(), __('Pages that gained the most clicks vs the previous period', 'thinkrank') ) . Email_Report_Html::list_rows($rows, 'up') . Email_Report_Html::link(__('See all pages', 'thinkrank'), Email_Report_Html::admin_link('analytics', 'dashboard')); } public function fallback_html(): string { return ''; } }