wp_create_user_request()
Создает и записывает запрос пользователя на выполнение действия с персональными данными: экспорт или удаление данных.
Запрос сохраняется как запись типа user_request. Это позволяет создавать такие запросы как для зарегистрированных пользователей сайта, так и для гостей без аккаунта.
Функция очищает email и название действия, проверяет корректность данных, ищет уже существующий незавершенный запрос с таким же email и действием, а затем создает новую запись запроса.
Функция только создает запрос. Она не отправляет пользователю письмо для подтверждения. Для отправки письма используйте wp_send_user_request() после успешного создания запроса.
Для одного email и одного действия нельзя создать новый запрос, пока уже есть незавершенный запрос в статусе request-pending или request-confirmed.
Хуков нет.
Возвращает
int|WP_Error.
int— ID созданного запроса.WP_Error— объект ошибки, если email некорректный, действие не поддерживается, статус указан неверно, уже существует незавершенный запрос или запись не удалось создать.
Использование
wp_create_user_request( $email_address, $action_name, $request_data, $status );
- $email_address(string) (обязательный)
- Email пользователя. Это может быть email зарегистрированного пользователя или гостя без аккаунта.
- $action_name(string) (обязательный)
Название действия, которое нужно подтвердить. Допустимые значения:
export_personal_dataиremove_personal_data.В
$action_nameможно передавать только поддерживаемые типы действий:export_personal_dataилиremove_personal_data. Другие значения приведут к ошибкеinvalid_action.- $request_data(array)
- Дополнительные данные, которые нужно сохранить вместе с запросом и передать в обработчики после подтверждения.
По умолчанию:[] - $status(string)
- Статус запроса. Можно указать
pendingилиconfirmed.
По умолчанию:'pending'
Примеры
#1 Создание запроса на экспорт персональных данных
Создает запрос на экспорт персональных данных для указанного email.
$request_id = wp_create_user_request(
'user@example.com',
'export_personal_data'
);
if ( is_wp_error( $request_id ) ) {
wp_die( $request_id->get_error_message() );
}
echo 'Запрос создан. ID: ' . esc_html( $request_id );
#2 Создание запроса и отправка письма для подтверждения
После создания запроса отправляет пользователю письмо с подтверждением действия.
$request_id = wp_create_user_request(
'user@example.com',
'remove_personal_data'
);
if ( is_wp_error( $request_id ) ) {
wp_die( $request_id->get_error_message() );
}
$result = wp_send_user_request( $request_id );
if ( is_wp_error( $result ) ) {
wp_die( $result->get_error_message() );
}
echo 'Письмо для подтверждения отправлено.';
#3 Создание подтвержденного запроса
Создает запрос сразу в статусе confirmed.
$request_id = wp_create_user_request(
'user@example.com',
'export_personal_data',
[
'source' => 'custom-form',
],
'confirmed'
);
if ( is_wp_error( $request_id ) ) {
wp_die( $request_id->get_error_message() );
}
echo 'Подтвержденный запрос создан.';
#4 Обработка ошибки при повторном запросе
Показывает, как отдельно обработать ситуацию, когда незавершенный запрос уже существует.
$request_id = wp_create_user_request(
'user@example.com',
'remove_personal_data'
);
if ( is_wp_error( $request_id ) ) {
if ( 'duplicate_request' === $request_id->get_error_code() ) {
echo 'Для этого email уже есть незавершенный запрос.';
} else {
echo esc_html( $request_id->get_error_message() );
}
}Список изменений
| С версии 4.9.6 | Введена. |
| С версии 5.7.0 | Added the $status parameter. |