← All changes
|
includes/integrations/class-google-search-console-client.php
+6
-76
2.2.0
→
2.12.0
View file →
| @@ -61,10 +61,16 @@ | ||
| 61 | 61 | 'message' => 'Google Search Console API connection successful', |
| 62 | 62 | 'sites_count' => count($result['siteEntry'] ?? []) |
| 63 | 63 | ]; |
| 64 | 64 | } catch (\Exception $e) { |
| 65 | + // `message` as well as `error`: the success branch above reports | |
| 66 | + // its outcome as `message`, and every consumer reads that key, so | |
| 67 | + // a failure that only set `error` was reported to the admin as an | |
| 68 | + // error with no reason at all (#852). `error` is kept for any | |
| 69 | + // caller that already reads it. | |
| 65 | 70 | return [ |
| 66 | 71 | 'success' => false, |
| 72 | + 'message' => $e->getMessage(), | |
| 67 | 73 | 'error' => $e->getMessage() |
| 68 | 74 | ]; |
| 69 | 75 | } |
| 70 | 76 | } |
| @@ -308,41 +314,8 @@ | ||
| 308 | 314 | } |
| 309 | 315 | } |
| 310 | 316 | |
| 311 | 317 | /** |
| 312 | - * Get page performance data for SEO analytics | |
| 313 | - * | |
| 314 | - * @param string $site_url Site URL to get data for | |
| 315 | - * @param string $date_range Date range for data | |
| 316 | - * @param int $limit Number of pages to retrieve | |
| 317 | - * @return array Page performance data | |
| 318 | - * @throws \Exception If API request fails | |
| 319 | - */ | |
| 320 | - public function get_page_performance(string $site_url, string $date_range = '30d', int $limit = 25): array { | |
| 321 | - $result = $this->get_search_performance($site_url, $date_range, ['page'], $limit); | |
| 322 | - | |
| 323 | - $pages = []; | |
| 324 | - $rows = $result['rows'] ?? []; | |
| 325 | - | |
| 326 | - foreach ($rows as $row) { | |
| 327 | - $pages[] = [ | |
| 328 | - 'page' => $row['keys'][0] ?? '', | |
| 329 | - 'clicks' => $row['clicks'] ?? 0, | |
| 330 | - 'impressions' => $row['impressions'] ?? 0, | |
| 331 | - 'ctr' => round(($row['ctr'] ?? 0) * 100, 2), // Convert to percentage | |
| 332 | - 'position' => round($row['position'] ?? 0, 1) | |
| 333 | - ]; | |
| 334 | - } | |
| 335 | - | |
| 336 | - return [ | |
| 337 | - 'pages' => $pages, | |
| 338 | - 'site_url' => $site_url, | |
| 339 | - 'date_range' => $date_range, | |
| 340 | - 'total_pages' => count($pages) | |
| 341 | - ]; | |
| 342 | - } | |
| 343 | - | |
| 344 | - /** | |
| 345 | 318 | * Get device performance breakdown for mobile SEO insights |
| 346 | 319 | * |
| 347 | 320 | * @param string $site_url Site URL to get data for |
| 348 | 321 | * @param string $date_range Date range for data |
| @@ -400,51 +373,8 @@ | ||
| 400 | 373 | 'appearances' => $appearances, |
| 401 | 374 | 'site_url' => $site_url, |
| 402 | 375 | 'date_range' => $date_range |
| 403 | 376 | ]; |
| 404 | - } | |
| 405 | - | |
| 406 | - /** | |
| 407 | - * Get site indexing status and coverage data | |
| 408 | - * | |
| 409 | - * @param string $site_url Site URL to check | |
| 410 | - * @return array Indexing status and coverage data | |
| 411 | - * @throws \Exception If API request fails | |
| 412 | - */ | |
| 413 | - public function get_indexing_status(string $site_url): array { | |
| 414 | - try { | |
| 415 | - // Get overall search performance to estimate indexed pages | |
| 416 | - $performance = $this->get_search_performance($site_url, '30d', ['page'], 1000); | |
| 417 | - $indexed_pages = count($performance['rows'] ?? []); | |
| 418 | - | |
| 419 | - // Get basic site info | |
| 420 | - $sites = $this->list_sites(); | |
| 421 | - $site_info = null; | |
| 422 | - | |
| 423 | - foreach ($sites['siteEntry'] ?? [] as $site) { | |
| 424 | - if ($site['siteUrl'] === $site_url) { | |
| 425 | - $site_info = $site; | |
| 426 | - break; | |
| 427 | - } | |
| 428 | - } | |
| 429 | - | |
| 430 | - return [ | |
| 431 | - 'site_url' => $site_url, | |
| 432 | - 'is_verified' => !is_null($site_info), | |
| 433 | - 'indexed_pages_estimate' => $indexed_pages, | |
| 434 | - 'permission_level' => $site_info['permissionLevel'] ?? 'none', | |
| 435 | - 'last_updated' => gmdate('Y-m-d H:i:s') | |
| 436 | - ]; | |
| 437 | - } catch (\Exception $e) { | |
| 438 | - return [ | |
| 439 | - 'site_url' => $site_url, | |
| 440 | - 'is_verified' => false, | |
| 441 | - 'indexed_pages_estimate' => 0, | |
| 442 | - 'permission_level' => 'none', | |
| 443 | - 'error' => $e->getMessage(), | |
| 444 | - 'last_updated' => gmdate('Y-m-d H:i:s') | |
| 445 | - ]; | |
| 446 | - } | |
| 447 | 377 | } |
| 448 | 378 | |
| 449 | 379 | /** |
| 450 | 380 | * Get keyword opportunities for SEO insights |