WP_Application_Passwords::update_application_password( int $user_id, string $uuid, array $update = array() )

Updates an application password.


Parameters

$user_id

(Required) User ID.

$uuid

(Required) The password's UUID.

$update

(Optional) Information about the application password to update.

Default value: array()


Return

(true|WP_Error) True if successful, otherwise a WP_Error instance is returned on error.


Source

File: wp-includes/class-wp-application-passwords.php

	public static function update_application_password( $user_id, $uuid, $update = array() ) {
		$passwords = static::get_user_application_passwords( $user_id );

		foreach ( $passwords as &$item ) {
			if ( $item['uuid'] !== $uuid ) {
				continue;
			}

			if ( ! empty( $update['name'] ) ) {
				$update['name'] = sanitize_text_field( $update['name'] );
			}

			$save = false;

			if ( ! empty( $update['name'] ) && $item['name'] !== $update['name'] ) {
				$item['name'] = $update['name'];
				$save         = true;
			}

			if ( ! empty( $update['password'] ) && $item['password'] !== $update['password'] ) {
				$item['password'] = $update['password'];
				$save             = true;
			}

			if ( $save ) {
				$saved = static::set_user_application_passwords( $user_id, $passwords );

				if ( ! $saved ) {
					return new WP_Error( 'db_error', __( 'Could not save application password.' ) );
				}
			}

			/**
			 * Fires when an application password is updated.
			 *
			 * @since 5.6.0
			 * @since CP-2.3.0 The password is now hashed using bcrypt instead of phpass.
			 *                 Existing passwords may still be hashed using phpass.
			 *
			 * @param int   $user_id The user ID.
			 * @param array $item    The updated app password details.
			 * @param array $update  The information to update.
			 */
			do_action( 'wp_update_application_password', $user_id, $item, $update );

			return true;
		}

		return new WP_Error( 'application_password_not_found', __( 'Could not find an application password with that id.' ) );
	}

Changelog

Changelog
Version Description
5.6.0
CP-2.3.0 The actual password should now be hashed using bcrypt instead of phpass. See wp_hash_password(). Introduced. CP-2.3.0 The actual password should now be hashed using bcrypt instead of phpass. See wp_hash_password().