# wp_privacy_process_personal_data_erasure_page()

URL: https://chugunov.pro/api-wordpress/functions/wp_privacy_process_personal_data_erasure_page/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.9.6.

## Сигнатура

```php
wp_privacy_process_personal_data_erasure_page( array $response, int $eraser_index, string $email_address, int $page, int $request_id ): array
```

## Описание

Перехватывает Ajax-ответы на постраничные запросы к обработчику удаления персональных данных и отслеживает статус запроса. После завершения всей обработки запрос помечается как выполненный.
См. также 'wp_privacy_personal_data_erasure_page'

## Параметры

- `$response` `array` — обязательный. Ответ обработчика удаления персональных данных для указанной страницы.
- `$eraser_index` `int` — обязательный. Индекс обработчика удаления персональных данных. Начинается с 1.
- `$email_address` `string` — обязательный. Адрес email пользователя, которому принадлежат эти персональные данные.
- `$page` `int` — обязательный. Страница персональных данных для этого обработчика удаления.
  
  Начинается с 1.
- `$request_id` `int` — обязательный. ID запроса для этого удаления персональных данных.

## Возвращаемое значение

`array`

## Исходный код

Файл: `wp-admin/includes/privacy-tools.php:915`

```php
function wp_privacy_process_personal_data_erasure_page( $response, $eraser_index, $email_address, $page, $request_id ) {
	/*
	 * If the eraser response is malformed, don't attempt to consume it; let it
	 * pass through, so that the default Ajax processing will generate a warning
	 * to the user.
	 */
	if ( ! is_array( $response ) ) {
		return $response;
	}

	if ( ! array_key_exists( 'done', $response ) ) {
		return $response;
	}

	if ( ! array_key_exists( 'items_removed', $response ) ) {
		return $response;
	}

	if ( ! array_key_exists( 'items_retained', $response ) ) {
		return $response;
	}

	if ( ! array_key_exists( 'messages', $response ) ) {
		return $response;
	}

	// Get the request.
	$request = wp_get_user_request( $request_id );

	if ( ! $request || 'remove_personal_data' !== $request->action_name ) {
		wp_send_json_error( __( 'Invalid request ID when processing personal data to erase.' ) );
	}

	/** This filter is documented in wp-admin/includes/ajax-actions.php */
	$erasers        = apply_filters( 'wp_privacy_personal_data_erasers', array() );
	$is_last_eraser = count( $erasers ) === $eraser_index;
	$eraser_done    = $response['done'];

	if ( ! $is_last_eraser || ! $eraser_done ) {
		return $response;
	}

	_wp_privacy_completed_request( $request_id );

	/**
	 * Fires immediately after a personal data erasure request has been marked completed.
	 *
	 * @since 4.9.6
	 *
	 * @param int $request_id The privacy request post ID associated with this request.
	 */
	do_action( 'wp_privacy_personal_data_erased', $request_id );

	return $response;
}
```

## История изменений

- 4.9.6 — Introduced.

## Связанные

Использует: [`wp_get_user_request`](https://chugunov.pro/api-wordpress/functions/wp_get_user_request/), [`_wp_privacy_completed_request`](https://chugunov.pro/api-wordpress/functions/_wp_privacy_completed_request/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`wp_send_json_error`](https://chugunov.pro/api-wordpress/functions/wp_send_json_error/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_privacy_process_personal_data_erasure_page/
