CU VRG@ zUks"CURLPX_REPLY_COMMAND_NOT_SUPPORTEDxCU VR@ zU>oYCURLPX_REPLY_CONNECTION_REFUSED!\BUoBUP_ zUٿX#CURLPX_REPLY_GENERAL_SERVER_FAILURE!xCU VRg_ zUuz݈CURLPX_REPLY_HOST_UNREACHABLE!\BUpBUP_ zUJ'}Y'} CURLPX_REPLY_NETWORK_UNREACHABLEQwCU VR^ zUŹu2|KCURLPX_REPLY_NOT_ALLOWED p|BU VR] zU#jVlCURLPX_REPLY_TTL_EXPIREDa p|BU VRg] zU޻=HhCURLPX_REPLY_UNASSIGNED p|BU VR] zU/rCURLPX_REQUEST_FAILEDp|BU VR\ zU_h-CURLPX_RESOLVE_HOSTAp|BU VRG\ zU}w CURLPX_SEND_AUTHp|BU VR[ zUr]eeCURLPX_SEND_CONNECTp|BU VR[ zUjeCURLPX_SEND_REQUEST!p|BU VR'[ zU-j.CURLPX_UNKNOWN_FAILp|BU VRZ zUʐj.CURLPX_UNKNOWN_MODEap|BU VRgZ zUTe3CURLPX_USER_REJECTEDp|BU VR7B zUނCURLHSTS_ENABLE!wBUuBUp@Z zUl6wCURLHSTS_READONLYFILEQp|BU VRY zUOn̸ CURLOPT_HSTS!wBUpvBUp@wY zU#~KLCURLOPT_HSTS_CTRLp|BU VRX zUAhCURL_VERSION_HSTSAp|BU VRGX zUJv=n/CURLAUTH_AWS_SIGV4p|BU VR @W zULCCURLOPT_AWS_SIGV4p|BU VR @W zUPtCURLINFO_REFERER!p|BU VR @'W zU+ cnoCURLOPT_DOH_SSL_VERIFYHOSTp|BU VR @V zUAgnoCURLOPT_DOH_SSL_VERIFYPEERap|BU VR @gV zUK uCURLOPT_DOH_SSL_VERIFYSTATUSp|BU VR @V zUYW){*CURL_VERSION_GSASLp|BU VR @U zU{ZO=c]ǍCURLOPT_CAINFO_BLOBAp|BU VR @GU zU\WgCURLOPT_PROXY_CAINFO_BLOBp|BU VR @T zUcLxW4CURLSSLOPT_AUTO_CLIENT_CERTp|BU VR @T zUb@CURLOPT_MAXLIFETIME_CONN!\BU@{BU PW^ zU&*"CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256lBU0qBU'T zU CURLOPT_MIME_OPTIONSlBU VRwS zUEx:CURLMIMEOPT_FORMESCAPE!lBU VRS zUOIwqCURLOPT_SSH_HOSTKEYFUNCTIONkBU VRR zUJyAn CURLOPT_PROTOCOLS_STRakBU VRWR zUnjCURLOPT_REDIR_PROTOCOLS_STRkBU VRQ zUiWCURLOPT_WS_OPTIONSjBU VRY zU~jqԘCURLWS_RAW_MODE!`BUP~BUp@Q zUJm`uCURLOPT_CA_CACHE_TIMEOUTiBU VRP zUC [CURLOPT_QUICK_EXITiBU VRgP zUpٹxhs ) * 100 ) : 0; $date_completed = ( new \DateTime( 'now', wp_timezone() ) )->setTimestamp( $state->get( 'complete_timestamp' ) ); $estimated_time_in_seconds = $state->get( 'migration', 'estimated_time_in_seconds' ) + ( 60 * 5 ); $data = [ 'estimated_time_in_seconds' => $estimated_time_in_seconds, 'estimated_time_in_minutes' => round( $estimated_time_in_seconds / 60, 0 ), 'date_completed' => $date_completed->format( 'F j, Y, g:i a' ), 'completed_timestamp' => $date_completed->getTimestamp(), 'total_events_in_progress' => $total_events_in_progress, 'total_events_migrated' => $total_events_migrated, 'total_events' => $total_events, 'total_events_remaining' => $total_events_remaining, 'total_events_failed' => $total_events_with_failure, 'has_changes' => $total_events_migrated > 0, 'migration_phase' => $state->get_phase(), 'is_completed' => $state->is_completed(), 'is_running' => $state->is_running(), 'progress_percent' => $progress_percent, 'has_errors' => $total_events_with_failure > 0 ]; return new Site_Report( $data ); } /** * Retrieves a sorted list of Event_Report objects. * * @since 6.0.0 * * @param int $page The page to retrieve in a pagination request. If -1, it will retrieve all * reports in the database. * @param int $count The number of event reports to retrieve. If $page is -1 this will be * ignored. * @param array $filter An option set of filters to apply to the search. * * @return array A sorted list of Event_Report objects. */ public function get_event_reports( $page = - 1, $count = 20, $filter = [] ) { $event_repo = tribe( Events::class ); // Get all the events that have been touched by migration $post_ids = $event_repo->get_events_migrated( $page, $count, $filter ); $event_reports = []; foreach ( $post_ids as $post_id ) { $event_reports[] = new Event_Report( get_post( $post_id ) ); } return $event_reports; } /** * Get all of the site report data. * * @since 6.0.0 * * @return array */ public function get_data() { return $this->data; } /** * Getter for site report data. * * @since 6.0.0 * * @param string $prop The key of the data. * * @return mixed|null */ public function __get( $prop ) { return isset( $this->data[ $prop ] ) ? $this->data[ $prop ] : null; } /** * The JSON serializer. * * @since 6.0.0 */ #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->data; } }