# wp_create_user_request()

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

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

## Сигнатура

```php
wp_create_user_request( string $email_address = '', string $action_name = '', array $request_data = array(), string $status = 'pending' ): int|WP_Error
```

## Описание

Запросы хранятся в типе записи user_request, поскольку они могут относиться как к пользователям сайта, так и к гостям без учётной записи.

## Параметры

- `$email_address` `string` — необязательный, по умолчанию `''`. Адрес электронной почты пользователя. Это может быть адрес как зарегистрированного, так и незарегистрированного пользователя.
- `$action_name` `string` — необязательный, по умолчанию `''`. Имя подтверждаемого действия. Обязательный.
- `$request_data` `array` — необязательный, по умолчанию `array()`. Дополнительные данные, которые вы хотите отправить вместе с запросом на проверку и передать действиям после подтверждения запроса.
- `$status` `string` — необязательный, по умолчанию `'pending'`. Необязательный статус запроса (pending или confirmed). Значение по умолчанию — 'pending'.

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

`int|WP_Error` — WP_Error

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

Файл: `wp-includes/user.php:4775`

```php
function wp_create_user_request( $email_address = '', $action_name = '', $request_data = array(), $status = 'pending' ) {
	$email_address = sanitize_email( $email_address );
	$action_name   = sanitize_key( $action_name );

	if ( ! is_email( $email_address ) ) {
		return new WP_Error( 'invalid_email', __( 'Invalid email address.' ) );
	}

	if ( ! in_array( $action_name, _wp_privacy_action_request_types(), true ) ) {
		return new WP_Error( 'invalid_action', __( 'Invalid action name.' ) );
	}

	if ( ! in_array( $status, array( 'pending', 'confirmed' ), true ) ) {
		return new WP_Error( 'invalid_status', __( 'Invalid request status.' ) );
	}

	$user    = get_user_by( 'email', $email_address );
	$user_id = $user && ! is_wp_error( $user ) ? $user->ID : 0;

	// Check for duplicates.
	$requests_query = new WP_Query(
		array(
			'post_type'     => 'user_request',
			'post_name__in' => array( $action_name ), // Action name stored in post_name column.
			'title'         => $email_address,        // Email address stored in post_title column.
			'post_status'   => array(
				'request-pending',
				'request-confirmed',
			),
			'fields'        => 'ids',
		)
	);

	if ( $requests_query->found_posts ) {
		return new WP_Error( 'duplicate_request', __( 'An incomplete personal data request for this email address already exists.' ) );
	}

	$request_id = wp_insert_post(
		array(
			'post_author'   => $user_id,
			'post_name'     => $action_name,
			'post_title'    => $email_address,
			'post_content'  => wp_json_encode( $request_data ),
			'post_status'   => 'request-' . $status,
			'post_type'     => 'user_request',
			'post_date'     => current_time( 'mysql', false ),
			'post_date_gmt' => current_time( 'mysql', true ),
		),
		true
	);

	return $request_id;
}
```

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

- 5.7.0 — Added the $status parameter.
- 4.9.6 — Introduced.

## Связанные

Использует: [`_wp_privacy_action_request_types`](https://chugunov.pro/api-wordpress/functions/_wp_privacy_action_request_types/), [`sanitize_email`](https://chugunov.pro/api-wordpress/functions/sanitize_email/), [`is_email`](https://chugunov.pro/api-wordpress/functions/is_email/), [`get_user_by`](https://chugunov.pro/api-wordpress/functions/get_user_by/), `WP_Query::__construct`, [`current_time`](https://chugunov.pro/api-wordpress/functions/current_time/), [`wp_insert_post`](https://chugunov.pro/api-wordpress/functions/wp_insert_post/), [`wp_json_encode`](https://chugunov.pro/api-wordpress/functions/wp_json_encode/), [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`sanitize_key`](https://chugunov.pro/api-wordpress/functions/sanitize_key/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/), `WP_Error::__construct`.
Используется в: [`_wp_personal_data_handle_actions`](https://chugunov.pro/api-wordpress/functions/_wp_personal_data_handle_actions/).

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