Estoy creando usuarios manualmente mediante programación, y quiero iniciar sesión en el usuario recién creado. WP facilita el acceso a la contraseña hash, pero no a la versión de texto sin formato. ¿Hay alguna manera de usar wp_signon () sin la contraseña de texto sin formato?
Encontré una persona que dice haber hecho esto aquí , pero no funcionó para mí.
¡GRACIAS!
                    
                        login
                                authentication
                                
                    
                    
                        emersonthis
fuente
                
                fuente

Respuestas:
wp_set_auth_cookie()iniciará sesión en un usuario sin tener que conocer su contraseña.fuente
is_user_logged_in()no parece funcionar. ¿Sabes si se trata de algo diferente a las cookies?wp_set_current_userantes de iniciar sesión.wp_set_auth_cookie()a mi función de inicio de sesión. Creo que tengo que repensar eso. También buscaré wp_set_current_user e informaré de nuevo. ¡Muchas gracias por tu ayuda en esto!¡El siguiente código hace el trabajo para el inicio de sesión automático, sin ninguna contraseña!
fuente
get_user_by()devuelve falso en caso de error, por lo que debe verificar falso en lugar del objeto WP_ErrorHe encontrado otra solución aquí que utiliza un mejor enfoque (al menos en mi opinión ...). No es necesario configurar ninguna cookie, utiliza la API de Wordpress:
Creo que el código se explica por sí mismo:
El filtro busca el objeto WP_User para el nombre de usuario dado y lo devuelve. Una llamada a la función
wp_set_current_usercon el objeto WP_User devuelto porwp_signon, una verificación con la funciónis_user_logged_inpara asegurarse de que está conectado, ¡y eso es todo!¡Un código bonito y limpio en mi opinión!
fuente
$credentialsestá vacía o no. Si la matriz no está vacía (que es el caso en mi respuesta), los valores de la matriz se utilizan para autenticar al usuario.Esto funciona bien para mi:
fuente
Además de Mike, Paul y Sjoerd:
Para manejar mejor las
login.phpredirecciones:Para ser colocado
wp-config.phpjusto despuésFYI
Basado en la solución anterior, he lanzado un complemento para mantener al usuario conectado de un wordpress a otro sincronizando los datos del usuario y la sesión de cookies:
https://wordpress.org/plugins/user-session-synchronizer/
fuente