Estoy intentando hacer un complemento para autenticar usando una API externa, pero no está registrando o novo usuário no sistema, ¿podem me ayudar?
función alc_wp_auth($usuario, $nombre de usuario, $contraseña)
{
global $alc_wp_api_base_url;
// Certifique-se de que um nome de usuário e uma senha estejam presente para que possamos trabalhar com eles
if($nombre de usuario == ” || $contraseña == ”)
{
devolver;
}
si (is_user_logged_in())
{
wp_logout();
}
$creds = matriz (
‘user_login’ => $nombre de usuario,
‘contraseña_usuario’ => $contraseña,
‘recordar’ => verdadero,
);
$usuario = wp_signon ($creds, falso);
si (is_a ($usuario, ‘WP_User’))
{
wp_set_current_user ($usuario->ID, $usuario->usuario_login);
if ( is_user_logged_in() )
{
return $user;
}
}
demás
{
$response = wp_remote_get( $alc_wp_api_base_url."/login/login?userName=".urlencode($username)."&password=".$password,array('timeout' => 120, 'httpversion' => '1.1'));
$external = false;
$ext_auth = alc_wp_response($response);
if (!is_null($ext_auth))
{
$external = true;
}
if( !$external )
{
// User does not exist, send back an error message
$user = new WP_Error( 'denied', __("ERROR: User/pass bad") );
}
else
{
// External user exists, try to load the user info from the WordPress user table
$userobj = new WP_User();
$user = $userobj->get_data_by( 'email', $ext_auth->email ); // Does not return a WP_User object :(
$user = new WP_User($user->ID); // Attempt to load up the user with that ID
if( $user->ID == 0 )
{
// O usuário não existe atualmente na tabela de usuários do WordPress.
// Você chegou a uma bifurcação na estrada, escolha seu destino sabiamente
// Se você não quiser adicionar novos usuários ao WordPress se eles não
// já existirem, descomente a linha a seguir e remova o código de criação do usuário
//$user = new WP_Error( 'denied', __("ERROR: Not a valid user for this system") );
// Configure as informações mínimas necessárias do usuário para este exemplo
$userdata = array( 'user_email' => $ext_auth->email,
'user_login' => $ext_auth->email,
'first_name' => $ext_auth->name,
'last_name' => $ext_auth->name,
);
$new_user_id = wp_insert_user( $userdata ); // A new user has been created
// Carregue as novas informações do usuário
$user = new WP_User ($new_user_id);
}
}
}
// Comente esta linha se você deseja recorrer à autenticação do WordPress
// Útil para momentos em que o serviço externo está offline
//remove_action(‘authenticate’, ‘wp_authenticate_username_password’, 20);
si (is_a ($usuario, ‘WP_User’))
{
wp_set_current_user ($usuario->ID, $usuario->usuario_login);
if ( is_user_logged_in() )
{
return $user;
}
}
return $user;
}
La página con la que necesito ayuda: [log in to see the link]