WP_Application_Passwords::create_new_application_password( int $user_id, array $args = array() ): array|WP_Error
Creates a new application password.
Parameters
-
$user_id
int Required -
User ID.
-
$args
array Optional -
Arguments used to create the application password.
name
stringThe name of the application password.app_id
stringA UUID provided by the application to uniquely identify it.
Default:
array()
Return
array|WP_Error Application password details, or a WP_Error instance if an error occurs.
- stringThe unhashed generated application password.
1
arrayThe details about the created password.uuid
stringThe unique identifier for the application password.app_id
stringA UUID provided by the application to uniquely identify it.name
stringThe name of the application password.password
stringA one-way hash of the password.created
intUnix timestamp of when the password was created.last_used
nullNull.last_ip
nullNull.
Source
File:
wp-includes/class-wp-application-passwords.php
. View all referencespublic 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 ) ); } if ( self::application_name_exists_for_user( $user_id, $args['name'] ) ) { return new WP_Error( 'application_password_duplicate_name', __( 'Each application name should be unique.' ), array( 'status' => 409 ) ); } $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 unhashed generated application password. * @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 ); }
Hooks
-
do_action( 'wp_create_application_password',
int $user_id ,array $new_item ,string $new_password ,array $args ) -
Fires when an application password is created.
Changelog
Changelog Version Description 5.7.0 Returns WP_Error if application name already exists. 5.6.0 Introduced.
User Contributed Notes
You must log in before being able to contribute a note or feedback.
Basic Usage
Generate the application password for the logged-in users if not already exists.