¿Establecer usuario después de wp_create_user?

2

Tengo un formulario que crea un nuevo usuario utilizando:

wp_create_user()

Esto funciona, pero después de esto quiero iniciar sesión automáticamente en el usuario.

Intenté usar:

$creds = array();
$creds['user_login'] = 'username';
$creds['user_password'] = 'password';
$creds['remember'] = true;
$user = wp_signon( $creds, false );
    if ( is_wp_error($user) ) {
       $msg =  $user->get_error_message();
       die($msg);
    } else {
        $output_form = true;
    }

Pero esto crea un mensaje de error de "encabezados ya enviados" porque no está en la parte superior de la página.

¿Hay alguna forma de iniciar sesión automáticamente en el usuario después de haber creado al usuario?

    
pregunta redconservatory 05.08.2011 - 16:48

2 respuestas

3

Aquí hay una función que escribí que los enganches en las formas de gravedad crean un formulario de usuario, pero se puede agregar a cualquier acción en la que esté asociada su función wp_create_user.

function my_auto_login( $user_id ) {
    wp_set_auth_cookie( $user_id, false, is_ssl() );
    wp_redirect( admin_url( 'profile.php' ) );
    exit;
}

La parte importante es wp_set_auth_cookie . Esto debe activarse después de que el usuario sea la mejor (¿única?) Forma de iniciar sesión automáticamente sin completar el formulario de inicio de sesión.

    
respondido por el Chris_O 07.08.2011 - 13:57
2

Probablemente debería usar el gancho de acción init para capturar y procesar el formulario de registro. Este gancho se llama antes de que se envíe algo al navegador. Si el formulario valida ...

  • Crea el usuario con wp_create_user
  • Inicia sesión en el usuario con wp_signon
  • Redirige al usuario usando wp_redirect a la página de tu elección
respondido por el Chris Carson 05.08.2011 - 17:04

Lea otras preguntas en las etiquetas