Automattic\WooCommerce\Internal\TransientFiles
TransientFilesEngine::get_transient_files_directory()
Get the base directory where transient files are stored.
The default base directory is the WordPress uploads directory plus "woocommerce_transient_files". This can be changed by using the woocommerce_transient_files_directory filter.
If the woocommerce_transient_files_directory filter is not used and the default base directory doesn't exist, it will be created. If the filter is used it's the responsibility of the caller to ensure that the custom directory exists, otherwise an exception will be thrown.
The actual directory for each existing file will be the base directory plus the expiration date of the file formatted as 'yyyy-mm-dd'.
Method of the class: TransientFilesEngine{}
Hooks from the method
Return
String
. Effective base directory where transient files are stored.
Usage
$TransientFilesEngine = new TransientFilesEngine(); $TransientFilesEngine->get_transient_files_directory(): string;
TransientFilesEngine::get_transient_files_directory() TransientFilesEngine::get transient files directory code WC 9.5.1
public function get_transient_files_directory(): string { $upload_dir_info = $this->legacy_proxy->call_function( 'wp_upload_dir' ); $default_transient_files_directory = untrailingslashit( $upload_dir_info['basedir'] ) . '/woocommerce_transient_files'; /** * Filters the directory where transient files are stored. * * Note that this is used for both creating new files (with create_file_by_rendering_template) * and retrieving existing files (with get_file_by_*). * * @param string $transient_files_directory The default directory for transient files. * @return string The actual directory to use for storing transient files. * * @since 8.5.0 */ $transient_files_directory = apply_filters( 'woocommerce_transient_files_directory', $default_transient_files_directory ); $realpathed_transient_files_directory = $this->legacy_proxy->call_function( 'realpath', $transient_files_directory ); if ( false === $realpathed_transient_files_directory ) { if ( $transient_files_directory === $default_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" ); } // Create infrastructure to prevent listing the contents of the transient files directory. require_once ABSPATH . 'wp-admin/includes/file.php'; \WP_Filesystem(); $wp_filesystem = $this->legacy_proxy->get_global( 'wp_filesystem' ); $wp_filesystem->put_contents( $transient_files_directory . '/.htaccess', 'deny from all' ); $wp_filesystem->put_contents( $transient_files_directory . '/index.html', '' ); $realpathed_transient_files_directory = $this->legacy_proxy->call_function( 'realpath', $transient_files_directory ); } else { throw new Exception( "The base transient files directory doesn't exist: $transient_files_directory" ); } } return untrailingslashit( $realpathed_transient_files_directory ); }