diff --git src/wp-admin/includes/class-wp-community-events.php src/wp-admin/includes/class-wp-community-events.php
index 2eda6a0834..b2b50b9d30 100644
|
|
|
class WP_Community_Events { |
| 98 | 98 | $response_code = wp_remote_retrieve_response_code( $response ); |
| 99 | 99 | $response_body = json_decode( wp_remote_retrieve_body( $response ), true ); |
| 100 | 100 | $response_error = null; |
| 101 | | $debugging_info = compact( 'api_url', 'request_args', 'response_code', 'response_body' ); |
| 102 | 101 | |
| 103 | 102 | if ( is_wp_error( $response ) ) { |
| 104 | 103 | $response_error = $response; |
| … |
… |
class WP_Community_Events { |
| 116 | 115 | } |
| 117 | 116 | |
| 118 | 117 | if ( is_wp_error( $response_error ) ) { |
| 119 | | $this->maybe_log_events_response( $response_error->get_error_message(), $debugging_info ); |
| 120 | | |
| 121 | 118 | return $response_error; |
| 122 | 119 | } else { |
| 123 | 120 | $expiration = false; |
| … |
… |
class WP_Community_Events { |
| 157 | 154 | $response_body = $this->trim_events( $response_body ); |
| 158 | 155 | $response_body = $this->format_event_data_time( $response_body ); |
| 159 | 156 | |
| 160 | | // Avoid bloating the log with all the event data, but keep the count. |
| 161 | | $debugging_info['response_body']['events'] = count( $debugging_info['response_body']['events'] ) . ' events trimmed.'; |
| 162 | | |
| 163 | | $this->maybe_log_events_response( 'Valid response received', $debugging_info ); |
| 164 | | |
| 165 | 157 | return $response_body; |
| 166 | 158 | } |
| 167 | 159 | } |
| … |
… |
class WP_Community_Events { |
| 414 | 406 | |
| 415 | 407 | return $response_body; |
| 416 | 408 | } |
| 417 | | |
| 418 | | /** |
| 419 | | * Logs responses to Events API requests. |
| 420 | | * |
| 421 | | * All responses are logged when debugging, even if they're not WP_Errors. |
| 422 | | * Debugging info is still needed for "successful" responses, because |
| 423 | | * the API might have returned a different location than the one the user |
| 424 | | * intended to receive. In those cases, knowing the exact `request_url` is |
| 425 | | * critical. |
| 426 | | * |
| 427 | | * Errors are logged instead of being triggered, to avoid breaking the JSON |
| 428 | | * response when called from AJAX handlers and `display_errors` is enabled. |
| 429 | | * |
| 430 | | * @since 4.8.0 |
| 431 | | * |
| 432 | | * @param string $message A description of what occurred. |
| 433 | | * @param array $details Details that provide more context for the |
| 434 | | * log entry. |
| 435 | | */ |
| 436 | | protected function maybe_log_events_response( $message, $details ) { |
| 437 | | if ( ! WP_DEBUG_LOG ) { |
| 438 | | return; |
| 439 | | } |
| 440 | | |
| 441 | | error_log( sprintf( |
| 442 | | '%s: %s. Details: %s', |
| 443 | | __METHOD__, |
| 444 | | trim( $message, '.' ), |
| 445 | | wp_json_encode( $details ) |
| 446 | | ) ); |
| 447 | | } |
| 448 | 409 | } |