Privacy: Add wp_privacy_personal_data_export_file_created
filter.
This runs immediately after the data export file has been successfully created, allowing plugins to introduce some workflow customizations. For example, a plugin could password-protect the export file, for peace of mind, even though the CSPRN in the filename makes brute force attacks nearly impossible. See #43546. git-svn-id: https://develop.svn.wordpress.org/trunk@43047 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
a1fe96576f
commit
a159bf4e16
@ -2122,22 +2122,42 @@ function wp_privacy_generate_personal_data_export_file( $request_id ) {
|
|||||||
fclose( $file );
|
fclose( $file );
|
||||||
|
|
||||||
// Now, generate the ZIP.
|
// Now, generate the ZIP.
|
||||||
|
$error = false;
|
||||||
$archive_filename = $file_basename . '.zip';
|
$archive_filename = $file_basename . '.zip';
|
||||||
$archive_pathname = $exports_dir . $archive_filename;
|
$archive_pathname = $exports_dir . $archive_filename;
|
||||||
$archive_url = $exports_url . $archive_filename;
|
$archive_url = $exports_url . $archive_filename;
|
||||||
|
|
||||||
$zip = new ZipArchive;
|
$zip = new ZipArchive;
|
||||||
|
if ( true === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) {
|
||||||
|
if ( ! $zip->addFile( $html_report_pathname, 'index.html' ) ) {
|
||||||
|
$error = __( 'Unable to add data to export file.' );
|
||||||
|
}
|
||||||
|
|
||||||
if ( TRUE === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) {
|
|
||||||
$zip->addFile( $html_report_pathname, 'index.html' );
|
|
||||||
$zip->close();
|
$zip->close();
|
||||||
|
|
||||||
|
if ( ! $error ) {
|
||||||
|
/**
|
||||||
|
* Fires right after all personal data has been written to the export file.
|
||||||
|
*
|
||||||
|
* @since 4.9.6
|
||||||
|
*
|
||||||
|
* @param string $archive_pathname The full path to the export file on the filesystem.
|
||||||
|
* @param string $archive_url The URL of the archive file.
|
||||||
|
* @param string $html_report_pathname The full path to the personal data report on the filesystem.
|
||||||
|
*/
|
||||||
|
do_action( 'wp_privacy_personal_data_export_file_created', $archive_pathname, $archive_url, $html_report_pathname );
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
wp_send_json_error( __( 'Unable to open export file (archive) for writing' ) );
|
$error = __( 'Unable to open export file (archive) for writing.' );
|
||||||
}
|
}
|
||||||
|
|
||||||
// And remove the HTML file.
|
// And remove the HTML file.
|
||||||
unlink( $html_report_pathname );
|
unlink( $html_report_pathname );
|
||||||
|
|
||||||
|
if ( $error ) {
|
||||||
|
wp_send_json_error( $error );
|
||||||
|
}
|
||||||
|
|
||||||
// Save the export file in the request.
|
// Save the export file in the request.
|
||||||
update_post_meta( $request_id, '_export_file_url', $archive_url );
|
update_post_meta( $request_id, '_export_file_url', $archive_url );
|
||||||
update_post_meta( $request_id, '_export_file_path', $archive_pathname );
|
update_post_meta( $request_id, '_export_file_path', $archive_pathname );
|
||||||
|
Loading…
Reference in New Issue
Block a user