--- a/wp/wp-admin/includes/privacy-tools.php Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-admin/includes/privacy-tools.php Fri Sep 05 18:40:08 2025 +0200
@@ -275,7 +275,7 @@
foreach ( (array) $group_item_data as $group_item_datum ) {
$value = $group_item_datum['value'];
// If it looks like a link, make it a link.
- if ( false === strpos( $value, ' ' ) && ( 0 === strpos( $value, 'http://' ) || 0 === strpos( $value, 'https://' ) ) ) {
+ if ( ! str_contains( $value, ' ' ) && ( str_starts_with( $value, 'http://' ) || str_starts_with( $value, 'https://' ) ) ) {
$value = '<a href="' . esc_url( $value ) . '">' . esc_html( $value ) . '</a>';
}
@@ -535,7 +535,7 @@
wp_delete_file( $archive_pathname );
}
- $zip = new ZipArchive;
+ $zip = new ZipArchive();
if ( true === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) {
if ( ! $zip->addFile( $json_report_pathname, 'export.json' ) ) {
$error = __( 'Unable to archive the personal data export file (JSON format).' );
@@ -595,13 +595,11 @@
// Localize message content for user; fallback to site default for visitors.
if ( ! empty( $request->user_id ) ) {
- $locale = get_user_locale( $request->user_id );
+ $switched_locale = switch_to_user_locale( $request->user_id );
} else {
- $locale = get_locale();
+ $switched_locale = switch_to_locale( get_locale() );
}
- $switched_locale = switch_to_locale( $locale );
-
/** This filter is documented in wp-includes/functions.php */
$expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS );
$expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration );
@@ -706,10 +704,10 @@
$content = apply_filters( 'wp_privacy_personal_data_email_content', $email_text, $request_id, $email_data );
$content = str_replace( '###EXPIRATION###', $expiration_date, $content );
- $content = str_replace( '###LINK###', esc_url_raw( $export_file_url ), $content );
+ $content = str_replace( '###LINK###', sanitize_url( $export_file_url ), $content );
$content = str_replace( '###EMAIL###', $request_email, $content );
$content = str_replace( '###SITENAME###', $site_name, $content );
- $content = str_replace( '###SITEURL###', esc_url_raw( $site_url ), $content );
+ $content = str_replace( '###SITEURL###', sanitize_url( $site_url ), $content );
$headers = '';