Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/plugins/sitepress-multilingual-cms/classes/editor/ATEDetailedErrorMessage.php
Назад
<?php namespace WPML\TM\Editor; use WPML\FP\Str; use WPML\FP\Cast; use WPML\FP\Obj; use WPML\FP\Relation; use WPML\LIB\WP\Option; use WPML\TM\ATE\ClonedSites\ApiCommunication; use WPML\UIPage; use function WPML\FP\pipe; class ATEDetailedErrorMessage { const ERROR_DETAILS_OPTION = 'wpml_ate_error_details'; /** * Parses error data and saves it to options table. * * @param $errorResponse * * @return void */ public static function saveDetailedError( $errorResponse ) { $errorCode = $errorResponse->get_error_code(); $errorMessage = $errorResponse->get_error_message(); $errorData = $errorResponse->get_error_data( $errorCode ); $errorDetails = [ 'code' => $errorCode, 'message' => $errorMessage, 'error_data' => $errorData, ]; self::saveErrorDetailsInOptions( $errorDetails ); } /** * Returns single or multiple formatted error message depending on errors array existence in response. * * @param string $appendText * * @return string|null */ public static function readDetailedError( $appendText = null ) { $errorDetails = Option::getOr( self::ERROR_DETAILS_OPTION, [] ); $detailedError = self::hasValidExplainedMessage( $errorDetails ) ? self::formattedDetailedErrors( $errorDetails, $appendText ) : ( self::isSiteMigrationError( $errorDetails ) ? self::formattedSiteMigrationError( $errorDetails ) : null ); self::deleteErrorDetailsFromOptions(); // deleting the option after message is ready to be displayed. return $detailedError; } /** * Checks if valid explained message exists in error response. * * @param array $errorDetails * * @return mixed */ private static function hasValidExplainedMessage( $errorDetails ) { $hasExplainedMessage = pipe( Obj::path( [ 'error_data', 0, 'explained_message' ] ), Str::len(), Cast::toBool() ); return $hasExplainedMessage( $errorDetails ); } /** * Checks if error is "Site moved or copied" (Happens when error code is 426) * * @param array $errorDetails * * @return mixed */ private static function isSiteMigrationError( $errorDetails ) { $isSiteMigrationError = pipe( Obj::prop( 'code' ), Cast::toInt(), Relation::equals( ApiCommunication::SITE_CLONED_ERROR ) ); return $isSiteMigrationError( $errorDetails ); } /** * The purpose of this function is to avoid the case when redirect is happened and data saved in this static class is lost * * @return void */ private static function saveErrorDetailsInOptions( $errorDetails ) { Option::updateWithoutAutoLoad( self::ERROR_DETAILS_OPTION, $errorDetails ); } /** * Deletes the error details from options. * * @return void */ private static function deleteErrorDetailsFromOptions() { Option::delete( self::ERROR_DETAILS_OPTION ); } /** * Returns multiple formatted error messages from errors array. * * @param array $errorDetails * @param string $appendText * * @return string */ private static function formattedDetailedErrors( array $errorDetails, $appendText ) { $appendText = $appendText ? '<div>' . $appendText . '</div>' : ''; $allErrors = '<div>'; foreach ( Obj::prop( 'error_data', $errorDetails ) as $error ) { $allErrors .= '<div>' . Obj::propOr( '', 'explained_message', $error ) . '</div>'; } return $allErrors . $appendText . '</div>'; } private static function formattedSiteMigrationError( $errorDetails ) { return '<div>' . Obj::prop( 'message', $errorDetails ) . '</div>'; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка