Automattic\WooCommerce\Internal\TransientFiles
TransientFilesEngine::create_transient_file()
Create a transient file.
Метод класса: TransientFilesEngine{}
Хуков нет.
Возвращает
Строку
. The name of the transient file created (without path information).
Использование
$TransientFilesEngine = new TransientFilesEngine(); $TransientFilesEngine->create_transient_file( $file_contents, $expiration_date ): string;
- $file_contents(строка) (обязательный)
- The contents of the file.
- $expiration_date(строка|int) (обязательный)
- A string representing the expiration date formatted as "yyyy-mm-dd", or a number representing the expiration date as a timestamp (the time of day part will be ignored).
Код TransientFilesEngine::create_transient_file() TransientFilesEngine::create transient file WC 9.6.1
public function create_transient_file( string $file_contents, $expiration_date ): string { if ( is_numeric( $expiration_date ) ) { $expiration_date = gmdate( 'Y-m-d', $expiration_date ); } elseif ( ! is_string( $expiration_date ) || ! TimeUtil::is_valid_date( $expiration_date, 'Y-m-d' ) ) { $expiration_date = is_scalar( $expiration_date ) ? $expiration_date : gettype( $expiration_date ); throw new InvalidArgumentException( "$expiration_date is not a valid date, expected format: YYYY-MM-DD" ); } $expiration_date_object = DateTime::createFromFormat( 'Y-m-d', $expiration_date, TimeUtil::get_utc_date_time_zone() ); $today_date_object = new DateTime( $this->legacy_proxy->call_function( 'gmdate', 'Y-m-d' ), TimeUtil::get_utc_date_time_zone() ); if ( $expiration_date_object < $today_date_object ) { throw new InvalidArgumentException( "The supplied expiration date, $expiration_date, is in the past" ); } $filename = bin2hex( $this->legacy_proxy->call_function( 'random_bytes', 16 ) ); $transient_files_directory = $this->get_transient_files_directory(); $transient_files_directory .= '/' . $expiration_date_object->format( 'Y-m-d' ); if ( ! $this->legacy_proxy->call_function( 'is_dir', $transient_files_directory ) ) { if ( ! $this->legacy_proxy->call_function( 'wp_mkdir_p', $transient_files_directory ) ) { throw new Exception( "Can't create directory: $transient_files_directory" ); } } $filepath = $transient_files_directory . '/' . $filename; require_once ABSPATH . 'wp-admin/includes/file.php'; \WP_Filesystem(); $wp_filesystem = $this->legacy_proxy->get_global( 'wp_filesystem' ); if ( false === $wp_filesystem->put_contents( $filepath, $file_contents ) ) { throw new Exception( "Can't create file: $filepath" ); } return sprintf( '%03x%01x%02x%s', $expiration_date_object->format( 'Y' ), $expiration_date_object->format( 'm' ), $expiration_date_object->format( 'd' ), $filename ); }