WP_Application_Passwords::create_new_application_password() │ public static │ WP 5.6.0
Создает Пароль приложения.
Метод класса: WP_Application_Passwords{}
Возвращает
Массив|WP_Error
.
Первый ключ в массиве - это новый пароль, второй - его подробная информация.
WP_Error возвращается при ошибке или если пароль приложения с указанным названием уже существует.
Использование
$result = WP_Application_Passwords::create_new_application_password( $user_id, $args );
- $user_id(число) (обязательный)
- ID пользователя пароль приложения для которого будет создаваться.
- $args(массив)
Информация о пароле приложения. Возможные ключи массива:
name
(обязательный) — Название пароля приложения.
app_id
— ID приложения. Если не указать ID будет создан автоматически.
Примеры
#1 Пример создания пароля приложения
$result = WP_Application_Passwords::create_new_application_password( 2, [
'name' => 'Where2Smoke',
] );
print_r( $result );
/*
Array
(
[0] => cnBofvLCpiUmok25tHRItN3q
[1] => Array
(
[uuid] => 851e6fab-907d-41ad-828c-5cf52b099b17
[app_id] =>
[name] => test
[password] => $P$BKLDsV0npRnbF7awAcnFwfy43V5TjK/
[created] => 1615031943
[last_used] =>
[last_ip] =>
)
)
*/
$password = $result[0];
$new_password = WP_Application_Passwords::chunk_password( $password );
echo $new_password; //> cnBo fvLC piUm ok25 tHRI tN3q
Список изменений
С версии 5.6.0 |
Введена. |
С версии 5.7.0 |
Returns WP_Error if application name already exists. |
Код WP_Application_Passwords::create_new_application_password() WP Application Passwords::create new application password
WP 6.7.1
public static function create_new_application_password( $user_id, $args = array() ) {
if ( ! empty( $args['name'] ) ) {
$args['name'] = sanitize_text_field( $args['name'] );
}
if ( empty( $args['name'] ) ) {
return new WP_Error( 'application_password_empty_name', __( 'An application name is required to create an application password.' ), array( 'status' => 400 ) );
}
$new_password = wp_generate_password( static::PW_LENGTH, false );
$hashed_password = wp_hash_password( $new_password );
$new_item = array(
'uuid' => wp_generate_uuid4(),
'app_id' => empty( $args['app_id'] ) ? '' : $args['app_id'],
'name' => $args['name'],
'password' => $hashed_password,
'created' => time(),
'last_used' => null,
'last_ip' => null,
);
$passwords = static::get_user_application_passwords( $user_id );
$passwords[] = $new_item;
$saved = static::set_user_application_passwords( $user_id, $passwords );
if ( ! $saved ) {
return new WP_Error( 'db_error', __( 'Could not save application password.' ) );
}
$network_id = get_main_network_id();
if ( ! get_network_option( $network_id, self::OPTION_KEY_IN_USE ) ) {
update_network_option( $network_id, self::OPTION_KEY_IN_USE, true );
}
/**
* Fires when an application password is created.
*
* @since 5.6.0
*
* @param int $user_id The user ID.
* @param array $new_item {
* The details about the created password.
*
* @type string $uuid The unique identifier for the application password.
* @type string $app_id A UUID provided by the application to uniquely identify it.
* @type string $name The name of the application password.
* @type string $password A one-way hash of the password.
* @type int $created Unix timestamp of when the password was created.
* @type null $last_used Null.
* @type null $last_ip Null.
* }
* @param string $new_password The generated application password in plain text.
* @param array $args {
* Arguments used to create the application password.
*
* @type string $name The name of the application password.
* @type string $app_id A UUID provided by the application to uniquely identify it.
* }
*/
do_action( 'wp_create_application_password', $user_id, $new_item, $new_password, $args );
return array( $new_password, $new_item );
}
Cвязанные функции