wp_privacy_send_personal_data_export_email( int $request_id )

Send an email to the user with a link to the personal data export file


Parameters

$request_id

(int) (Required) The request ID for this personal data export.


Return

(true|WP_Error) True on success or WP_Error on failure.


Source

File: wp-admin/includes/file.php

function wp_privacy_send_personal_data_export_email( $request_id ) {
	// Get the request data.
	$request = wp_get_user_request_data( $request_id );

	if ( ! $request || 'export_personal_data' !== $request->action_name ) {
		return new WP_Error( 'invalid', __( 'Invalid request ID when sending personal data export email.' ) );
	}

	/** 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 );

/* translators: Do not translate EXPIRATION, LINK, SITENAME, SITEURL: those are placeholders. */
$email_text = __(
'Hello,

Your request for an export of personal data has been completed. You may
download your personal data by clicking on the link below. For privacy
and security, we will automatically delete the file on ###EXPIRATION###,
so please download it before then.

###LINK###

Regards,
All at ###SITENAME###
###SITEURL###'
);

	/**
	 * Filters the text of the email sent with a personal data export file.
	 *
	 * The following strings have a special meaning and will get replaced dynamically:
	 * ###EXPIRATION###         The date when the URL will be automatically deleted.
	 * ###LINK###               URL of the personal data export file for the user.
	 * ###SITENAME###           The name of the site.
	 * ###SITEURL###            The URL to the site.
	 *
	 * @since WP-4.9.6
	 *
	 * @param string $email_text     Text in the email.
	 * @param int    $request_id     The request ID for this personal data export.
	 */
	$content = apply_filters( 'wp_privacy_personal_data_email_content', $email_text, $request_id );

	$email_address = $request->email;
	$export_file_url = get_post_meta( $request_id, '_export_file_url', true );
	$site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
	$site_url = home_url();

	$content = str_replace( '###EXPIRATION###', $expiration_date, $content );
	$content = str_replace( '###LINK###', esc_url_raw( $export_file_url ), $content );
	$content = str_replace( '###EMAIL###', $email_address, $content );
	$content = str_replace( '###SITENAME###', $site_name, $content );
	$content = str_replace( '###SITEURL###', esc_url_raw( $site_url ), $content );

	$mail_success = wp_mail(
		$email_address,
		sprintf(
			__( '[%s] Personal Data Export' ),
			$site_name
		),
		$content
	);

	if ( ! $mail_success ) {
		return new WP_Error( 'error', __( 'Unable to send personal data export email.' ) );
	}

	return true;
}


Changelog

Changelog
Version Description
WP-4.9.6 Introduced.