diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index 3c068e186d..f9feb381bc 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -1886,9 +1886,8 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { } // Create the exports folder if needed. - $upload_dir = wp_upload_dir(); - $exports_dir = trailingslashit( $upload_dir['basedir'] . '/exports' ); - $exports_url = trailingslashit( $upload_dir['baseurl'] . '/exports' ); + $exports_dir = wp_privacy_exports_dir(); + $exports_url = wp_privacy_exports_url(); $result = wp_mkdir_p( $exports_dir ); if ( is_wp_error( $result ) ) { diff --git a/wp-includes/functions.php b/wp-includes/functions.php index e5e8d16d4d..dd2ff35e7d 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -5936,6 +5936,52 @@ function wp_privacy_anonymize_data( $type, $data = '' ) { return apply_filters( 'wp_privacy_anonymize_data', $anonymous, $type, $data ); } +/** + * Returns the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @see wp_privacy_exports_url + * + * @return string Exports directory. + */ +function wp_privacy_exports_dir() { + $upload_dir = wp_upload_dir(); + $exports_dir = trailingslashit( $upload_dir['basedir'] ) . 'wp-personal-data-exports/'; + + /** + * Filters the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @param string $exports_dir Exports directory. + */ + return apply_filters( 'wp_privacy_exports_dir', $exports_dir ); +} + +/** + * Returns the URL of the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @see wp_privacy_exports_dir + * + * @return string Exports directory URL. + */ +function wp_privacy_exports_url() { + $upload_dir = wp_upload_dir(); + $exports_url = trailingslashit( $upload_dir['baseurl'] ) . 'wp-personal-data-exports/'; + + /** + * Filters the URL of the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @param string $exports_url Exports directory URL. + */ + return apply_filters( 'wp_privacy_exports_url', $exports_url ); +} + /** * Schedule a `WP_Cron` job to delete expired export files. * @@ -5965,8 +6011,7 @@ function wp_schedule_delete_old_privacy_export_files() { function wp_privacy_delete_old_export_files() { require_once( ABSPATH . 'wp-admin/includes/file.php' ); - $upload_dir = wp_upload_dir(); - $exports_dir = trailingslashit( $upload_dir['basedir'] . '/exports' ); + $exports_dir = wp_privacy_exports_dir(); $export_files = list_files( $exports_dir, 100, array( 'index.html' ) ); /** diff --git a/wp-includes/version.php b/wp-includes/version.php index be07777030..c788255a69 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.9.6-RC1-43283'; +$wp_version = '4.9.6-RC1-43285'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.