A WordPress-centric search engine for devs and theme authors



wp_privacy_send_personal_data_export_email ›

Since4.9.6
Deprecatedn/a
wp_privacy_send_personal_data_export_email ( $request_id )
Parameters:
  • (int) $request_id The request ID for this personal data export.
    Required: Yes
Returns:
  • (true|WP_Error) True on success or `WP_Error` on failure.
Defined at:
Codex:

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



Source

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-admin/includes/file.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, EMAIL, SITENAME, SITEURL: those are placeholders. */
$email_text = __(
'Howdy,

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###

This email has been sent to ###EMAIL###.

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.
	 * ###EMAIL###              The email we are sending to.
	 * ###SITENAME###           The name of the site.
	 * ###SITEURL###            The URL to the site.
	 *
	 * @since 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 = is_multisite() ? get_site_option( 'site_name' ) : get_option( 'blogname' );
	$site_url = network_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###', wp_specialchars_decode( $site_name, ENT_QUOTES ), $content );
	$content = str_replace( '###SITEURL###', esc_url_raw( $site_url ), $content );

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

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

	return true;
}