Como utilizar wp_set_password() no WordPress (PHP)1 min leitura

Explicação de como utilizar a função PHP wp_set_password() do WordPress e um exemplo prático de código para gerar uma nova senha aleatória para todos os usuários.

Com a função PHP wp_set_password() você define uma nova senha para um usuário do WordPress dado o seu ID. Segue abaixo um exemplo de uso:

<?php
$id_usuario = 1;
$senha = "s3nh4!mu1t0/s3gur@";

wp_set_password( $senha, $id_usuario );Code language: PHP (php)

Gerando uma nova senha aleatória para todos os usuários do WordPress

Digamos que a segurança de um site WordPress foi comprometida e por segurança você quer alterar as senhas de todos os usuários. É possível fazer isto utilizando a função wp_set_password(), junto com a função get_users() para listar os usuários e a função wp_generate_password() para gerar uma nova senha aleatória. Veja abaixo o código:

<?php
// Pega uma lista com todos os usuários
$usuarios = get_users( array( 'fields' => array( 'ID', 'user_login' ) ) );

// Matriz para guardar os usuários alterados
$usuarios_alterados = [];

// Acessa cada usuário encontrado
foreach ( $usuarios as $usuario ) {

	// Gera uma senha nova aleatória
	$senha = wp_generate_password();

	// Altera a senha do usuário
	wp_set_password( $senha, $usuario->ID );

	// Salva o login do usuário para ser listado
	$usuarios_alterados[] = $usuario->user_login;
}

if ( !empty( $usuarios_alterados ) ) {
	echo "Alterado a senha dos usuários: " . implode( ", ", $usuarios_alterados . "." );
} else {
	echo "Não foi alterado a senha de nenhum usuário.";
}Code language: PHP (php)

Para exibir a lista de logins alterados, utilizei a função PHP implode para juntar os elementos de uma matriz em uma string, definindo , (vírgula seguida de um espaço) como separador entre os elementos.

Similar Posts

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo