diff options
author | Sergey Biryukov <sergeybiryukov@git.wordpress.org> | 2020-07-06 00:32:15 +0000 |
---|---|---|
committer | Sergey Biryukov <sergeybiryukov@git.wordpress.org> | 2020-07-06 00:32:15 +0000 |
commit | 13dee8f174075708eb0b5acf2cb3ad59ec2a88e9 (patch) | |
tree | cb451578751b3886b98f8ebdae966ff57b957e84 /src/wp-admin/includes/privacy-tools.php | |
parent | 27ccafd0e9d407262ae94570989b1f28cea6df1d (diff) | |
download | wordpress-13dee8f174075708eb0b5acf2cb3ad59ec2a88e9.tar.gz wordpress-13dee8f174075708eb0b5acf2cb3ad59ec2a88e9.zip |
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.
git-svn-id: https://develop.svn.wordpress.org/trunk@48330 602fd350-edb4-49c9-b593-d223f7449a82
Diffstat (limited to 'src/wp-admin/includes/privacy-tools.php')
-rw-r--r-- | src/wp-admin/includes/privacy-tools.php | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/src/wp-admin/includes/privacy-tools.php b/src/wp-admin/includes/privacy-tools.php index 1edbcae495..d9480481f2 100644 --- a/src/wp-admin/includes/privacy-tools.php +++ b/src/wp-admin/includes/privacy-tools.php @@ -277,7 +277,7 @@ function wp_privacy_generate_personal_data_export_group_html( $group_data, $grou $group_html .= '</table>'; } - if ( 1 < $groups_count ) { + if ( $groups_count > 1 ) { $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 .= '</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>' ); // Create TOC. - if ( 1 < $groups_count ) { + if ( $groups_count > 1 ) { fwrite( $file, '<div id="table_of_contents">' ); fwrite( $file, '<h2>' . esc_html__( 'Table of Contents' ) . '</h2>' ); fwrite( $file, '<ul>' ); @@ -464,52 +464,39 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) { /* * Now, generate the ZIP. * - * If an archive has already been generated, then remove it and reuse the - * filename, to avoid breaking any URLs that may have been previously sent - * via email. + * If an archive has already been generated, then remove it and reuse the filename, + * to avoid breaking any URLs that may have been previously sent via email. */ $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 ); - // These are used for backward compatibility. - $archive_url = get_post_meta( $request_id, '_export_file_url', true ); + // This one stored an absolute path and is used for backward compatibility. $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 ) ) { $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 ) ) { - // 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_url = $exports_url . $archive_filename; - // Add the new postmeta that is used since version 5.4. - update_post_meta( $request_id, '_export_file_name', wp_normalize_path( $archive_filename ) ); + update_post_meta( $request_id, '_export_file_name', $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_path' ); } 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_url = $exports_url . $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', 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' ); + update_post_meta( $request_id, '_export_file_name', $archive_filename ); } + $archive_url = $exports_url . $archive_filename; + if ( ! empty( $archive_pathname ) && file_exists( $archive_pathname ) ) { wp_delete_file( $archive_pathname ); } @@ -568,10 +555,6 @@ function wp_privacy_send_personal_data_export_email( $request_id ) { // Get the request. $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 ) { return new WP_Error( 'invalid_request', __( 'Invalid request ID when sending personal data export email.' ) ); } @@ -589,9 +572,12 @@ function wp_privacy_send_personal_data_export_email( $request_id ) { $expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS ); $expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration ); - $export_file_url = $exports_url . $export_file_name; - $site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); - $site_url = home_url(); + $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; + + $site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); + $site_url = home_url(); /** * Filters the recipient of the personal data export email notification. |