WC_Privacy_Erasers::download_data_eraser()public staticWC 3.4.0

Finds and removes customer download logs by email address.

Method of the class: WC_Privacy_Erasers{}

Return

Array. An array of personal data in name value pairs

Usage

$result = WC_Privacy_Erasers::download_data_eraser( $email_address, $page );
$email_address(string) (required)
The user email address.
$page(int) (required)
Page.

Changelog

Since 3.4.0 Introduced.

WC_Privacy_Erasers::download_data_eraser() code WC 8.6.1

public static function download_data_eraser( $email_address, $page ) {
	$page            = (int) $page;
	$user            = get_user_by( 'email', $email_address ); // Check if user has an ID in the DB to load stored personal data.
	$erasure_enabled = wc_string_to_bool( get_option( 'woocommerce_erasure_request_removes_download_data', 'no' ) );
	$response        = array(
		'items_removed'  => false,
		'items_retained' => false,
		'messages'       => array(),
		'done'           => true,
	);

	$downloads_query = array(
		'limit'  => -1,
		'page'   => $page,
		'return' => 'ids',
	);

	if ( $user instanceof WP_User ) {
		$downloads_query['user_id'] = (int) $user->ID;
	} else {
		$downloads_query['user_email'] = $email_address;
	}

	$customer_download_data_store = WC_Data_Store::load( 'customer-download' );

	// Revoke download permissions.
	if ( apply_filters( 'woocommerce_privacy_erase_download_personal_data', $erasure_enabled, $email_address ) ) {
		if ( $user instanceof WP_User ) {
			$result = $customer_download_data_store->delete_by_user_id( (int) $user->ID );
		} else {
			$result = $customer_download_data_store->delete_by_user_email( $email_address );
		}
		if ( $result ) {
			$response['messages'][]    = __( 'Removed access to downloadable files.', 'woocommerce' );
			$response['items_removed'] = true;
		}
	} else {
		$response['messages'][]     = __( 'Customer download permissions have been retained.', 'woocommerce' );
		$response['items_retained'] = true;
	}

	return $response;
}