estoy desarrollando un inicio de sesión / registro personalizado de wordpress. He intentado casi todo lo que he visto en la red, pero nada parece funcionar cuando intento configurar el usuario actual.
He simplificado el código en un script para que quede más claro:
Esto ha sido copiado del ejemplo de wp docs:
https://codex.wordpress.org/Function_Reference/wp_set_current_user
<?php
include_once($_SERVER['DOCUMENT_ROOT']."/wp-config.php");
include_once($_SERVER['DOCUMENT_ROOT']."/wp-includes/registration.php");
include_once($_SERVER['DOCUMENT_ROOT']."/wp-includes/user.php");
include_once ($_SERVER['DOCUMENT_ROOT']."https://stackoverflow.com/"."db_connect.php");
$user_id = 8;
$user = get_user_by( 'id', $user_id );
if( $user ) {
$curr_user= wp_set_current_user( $user_id, $user->user_login );
print_r($curr_user); // This trace is showed below.
wp_set_auth_cookie( $user_id );
do_action( 'wp_login', $user->user_login );
}
?>
Aquí muestro el rastro que parece que todo funciona como se esperaba:
WP_User Object ( [data] => stdClass Object ( [ID] => 8 [user_login] => email [user_pass] => **********************. [user_nicename] => email [user_email] => [email protected] [user_url] => [user_registered] => 2015-05-06 11:23:13 [user_activation_key] => [user_status] => 0 [display_name] => username ) [ID] => 8 [caps] => Array ( [subscriber] => 1 [bbp_participant] => 1 ) [cap_key] => wp_capabilities [roles] => Array ( [0] => subscriber [1] => bbp_participant ) [allcaps] => Array ( [read] => 1 [level_0] => 1 [spectate] => 1 [participate] => 1 [read_private_forums] => 1 [publish_topics] => 1 [edit_topics] => 1 [publish_replies] => 1 [edit_replies] => 1 [assign_topic_tags] => 1 [subscriber] => 1 [bbp_participant] => 1 ) [filter] => )
De todos modos, cuando vuelvo al wp_site No estoy conectado_. ¿Algunas ideas?
Gracias.
¿Estás construyendo un complemento de wordpress?
– sarath
11 de junio de 2015 a las 8:24
Es
wp_set_auth_cookie( $user_id );
trabajando como esperas?– rnevio
11 de junio de 2015 a las 8:27
@sarath No realmente, algo más simple, necesito iniciar sesión para mis usuarios desde un formulario que debe ser diferente al inicio de sesión de wp predeterminado, pero no hacerlo de la manera del complemento.
– Buendiadas
11 de junio de 2015 a las 8:28
¿Estás seguro de que tienes un usuario con id 8?
– sarath
11 de junio de 2015 a las 8:36
@satath Sí, (supongo que si no, el seguimiento sería un error) 🙁
– Buendiadas
11 de junio de 2015 a las 8:37