Privacy: Simplify the logic for updating the meta values for personal data export requests from absolute to relative paths.
Follow-up to [48127]. See #44038. Built from https://develop.svn.wordpress.org/trunk@48330 git-svn-id: http://core.svn.wordpress.org/trunk@48099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
08dbc4c3bb
commit
8a815f22e7
|
@ -277,7 +277,7 @@ function wp_privacy_generate_personal_data_export_group_html( $group_data, $grou
|
||||||
$group_html .= '</table>';
|
$group_html .= '</table>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( 1 < $groups_count ) {
|
if ( $groups_count > 1 ) {
|
||||||
$group_html .= '<div class="return-to-top">';
|
$group_html .= '<div class="return-to-top">';
|
||||||
$group_html .= '<a href="#top"><span aria-hidden="true">↑ </span> ' . esc_html__( 'Return to top' ) . '</a>';
|
$group_html .= '<a href="#top"><span aria-hidden="true">↑ </span> ' . esc_html__( 'Return to top' ) . '</a>';
|
||||||
$group_html .= '</div>';
|
$group_html .= '</div>';
|
||||||
|
@ -433,7 +433,7 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) {
|
||||||
fwrite( $file, '<h1 id="top">' . esc_html__( 'Personal Data Export' ) . '</h1>' );
|
fwrite( $file, '<h1 id="top">' . esc_html__( 'Personal Data Export' ) . '</h1>' );
|
||||||
|
|
||||||
// Create TOC.
|
// Create TOC.
|
||||||
if ( 1 < $groups_count ) {
|
if ( $groups_count > 1 ) {
|
||||||
fwrite( $file, '<div id="table_of_contents">' );
|
fwrite( $file, '<div id="table_of_contents">' );
|
||||||
fwrite( $file, '<h2>' . esc_html__( 'Table of Contents' ) . '</h2>' );
|
fwrite( $file, '<h2>' . esc_html__( 'Table of Contents' ) . '</h2>' );
|
||||||
fwrite( $file, '<ul>' );
|
fwrite( $file, '<ul>' );
|
||||||
|
@ -464,52 +464,39 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) {
|
||||||
/*
|
/*
|
||||||
* Now, generate the ZIP.
|
* Now, generate the ZIP.
|
||||||
*
|
*
|
||||||
* If an archive has already been generated, then remove it and reuse the
|
* If an archive has already been generated, then remove it and reuse the filename,
|
||||||
* filename, to avoid breaking any URLs that may have been previously sent
|
* to avoid breaking any URLs that may have been previously sent via email.
|
||||||
* via email.
|
|
||||||
*/
|
*/
|
||||||
$error = false;
|
$error = false;
|
||||||
|
|
||||||
// This postmeta is used from version 5.4.
|
// This meta value is used from version 5.5.
|
||||||
$archive_filename = get_post_meta( $request_id, '_export_file_name', true );
|
$archive_filename = get_post_meta( $request_id, '_export_file_name', true );
|
||||||
|
|
||||||
// These are used for backward compatibility.
|
// This one stored an absolute path and is used for backward compatibility.
|
||||||
$archive_url = get_post_meta( $request_id, '_export_file_url', true );
|
|
||||||
$archive_pathname = get_post_meta( $request_id, '_export_file_path', true );
|
$archive_pathname = get_post_meta( $request_id, '_export_file_path', true );
|
||||||
|
|
||||||
// If archive_filename exists, make sure to remove deprecated postmeta.
|
// If a filename meta exists, use it.
|
||||||
if ( ! empty( $archive_filename ) ) {
|
if ( ! empty( $archive_filename ) ) {
|
||||||
$archive_pathname = $exports_dir . $archive_filename;
|
$archive_pathname = $exports_dir . $archive_filename;
|
||||||
$archive_url = $exports_url . $archive_filename;
|
|
||||||
|
|
||||||
// Remove the deprecated postmeta.
|
|
||||||
delete_post_meta( $request_id, '_export_file_url' );
|
|
||||||
delete_post_meta( $request_id, '_export_file_path' );
|
|
||||||
} elseif ( ! empty( $archive_pathname ) ) {
|
} elseif ( ! empty( $archive_pathname ) ) {
|
||||||
// Check if archive_pathname exists. If not, create the new postmeta and remove the deprecated.
|
// If a full path meta exists, use it and create the new meta value.
|
||||||
$archive_filename = basename( $archive_pathname );
|
$archive_filename = basename( $archive_pathname );
|
||||||
$archive_url = $exports_url . $archive_filename;
|
|
||||||
|
|
||||||
// Add the new postmeta that is used since version 5.4.
|
update_post_meta( $request_id, '_export_file_name', $archive_filename );
|
||||||
update_post_meta( $request_id, '_export_file_name', wp_normalize_path( $archive_filename ) );
|
|
||||||
|
|
||||||
// Remove the deprecated postmeta.
|
// Remove the back-compat meta values.
|
||||||
delete_post_meta( $request_id, '_export_file_url' );
|
delete_post_meta( $request_id, '_export_file_url' );
|
||||||
delete_post_meta( $request_id, '_export_file_path' );
|
delete_post_meta( $request_id, '_export_file_path' );
|
||||||
} else {
|
} else {
|
||||||
// If there's no archive_filename or archive_pathname create a new one.
|
// If there's no filename or full path stored, create a new file.
|
||||||
$archive_filename = $file_basename . '.zip';
|
$archive_filename = $file_basename . '.zip';
|
||||||
$archive_url = $exports_url . $archive_filename;
|
|
||||||
$archive_pathname = $exports_dir . $archive_filename;
|
$archive_pathname = $exports_dir . $archive_filename;
|
||||||
|
|
||||||
// Add the new postmeta that is used since version 5.4.
|
update_post_meta( $request_id, '_export_file_name', $archive_filename );
|
||||||
update_post_meta( $request_id, '_export_file_name', wp_normalize_path( $archive_filename ) );
|
|
||||||
|
|
||||||
// Remove the deprecated postmeta.
|
|
||||||
delete_post_meta( $request_id, '_export_file_url' );
|
|
||||||
delete_post_meta( $request_id, '_export_file_path' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$archive_url = $exports_url . $archive_filename;
|
||||||
|
|
||||||
if ( ! empty( $archive_pathname ) && file_exists( $archive_pathname ) ) {
|
if ( ! empty( $archive_pathname ) && file_exists( $archive_pathname ) ) {
|
||||||
wp_delete_file( $archive_pathname );
|
wp_delete_file( $archive_pathname );
|
||||||
}
|
}
|
||||||
|
@ -568,10 +555,6 @@ function wp_privacy_send_personal_data_export_email( $request_id ) {
|
||||||
// Get the request.
|
// Get the request.
|
||||||
$request = wp_get_user_request( $request_id );
|
$request = wp_get_user_request( $request_id );
|
||||||
|
|
||||||
// Get the export file URL.
|
|
||||||
$exports_url = wp_privacy_exports_url();
|
|
||||||
$export_file_name = get_post_meta( $request_id, '_export_file_name', true );
|
|
||||||
|
|
||||||
if ( ! $request || 'export_personal_data' !== $request->action_name ) {
|
if ( ! $request || 'export_personal_data' !== $request->action_name ) {
|
||||||
return new WP_Error( 'invalid_request', __( 'Invalid request ID when sending personal data export email.' ) );
|
return new WP_Error( 'invalid_request', __( 'Invalid request ID when sending personal data export email.' ) );
|
||||||
}
|
}
|
||||||
|
@ -589,7 +572,10 @@ function wp_privacy_send_personal_data_export_email( $request_id ) {
|
||||||
$expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS );
|
$expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS );
|
||||||
$expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration );
|
$expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration );
|
||||||
|
|
||||||
|
$exports_url = wp_privacy_exports_url();
|
||||||
|
$export_file_name = get_post_meta( $request_id, '_export_file_name', true );
|
||||||
$export_file_url = $exports_url . $export_file_name;
|
$export_file_url = $exports_url . $export_file_name;
|
||||||
|
|
||||||
$site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
|
$site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
|
||||||
$site_url = home_url();
|
$site_url = home_url();
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '5.5-alpha-48329';
|
$wp_version = '5.5-alpha-48330';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue