(int) ($dist['top_3'] ?? 0), '4_10' => (int) ($dist['4_10'] ?? 0), '11_50' => (int) ($dist['10_50'] ?? 0), // GSC's `10_50` bucket starts at 11 '51_100' => (int) ($dist['51_100'] ?? 0), ]; } public function render(array $payload): string { $rows = [ __('Top 3', 'thinkrank') => $payload['top_3'], __('Position 4–10', 'thinkrank') => $payload['4_10'], __('Position 11–50', 'thinkrank') => $payload['11_50'], __('Position 51–100', 'thinkrank') => $payload['51_100'], ]; $html = ''; foreach ($rows as $label => $count) { $html .= '' . '' . '' . ''; } $html .= '
' . esc_html($label) . '' . esc_html(number_format_i18n((int) $count)) . '
'; return $html; } public function fallback_html(): string { return '

' . esc_html__('Search Console data unavailable. Connect Search Console to see position distribution.', 'thinkrank') . '

'; } }