Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/12/2010, 12:24
bengiss
 
Fecha de Ingreso: junio-2009
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Pregunta Problema para obtener password al fallar login

Hola a todos,

Actualmente estoy trabajando en el siguiente plugin:

Código PHP:
remove_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
add_filter( 'authenticate', 'dr_email_login_authenticate', 20, 3 );
add_action('wp_login_failed', 'login_failed_func');

function 
login_failed_func($email){
    
$errors = new WP_Error();
    
// Validar formato de email
    
if ( ! is_email( $email ) ) {
        return 
$errors->add( 'invalid_email', __( '<strong>ERROR</strong>: The email address isn’t correct.' ) );
    
// Validar que el email no existe en la BD
    
} elseif ( get_user_by_email($email) ) {
        return 
$errors->add( 'email_exists', __( '<strong>ERROR</strong>: This email is already registered, please choose another one.' ) );
    }
    
    echo 
'Usuario no existe';
    
}

function 
dr_email_login_authenticate( $user, $username, $password ) {
    
$user = get_user_by_email( $username );
    if ( 
$user ) {
            
$username = $user->user_login;
        } 
    return 
wp_authenticate_username_password( null, $username, $password );
} 
Como pueden ver me permite logear con el email y la contraseña, el problema es que uno de los requerimientos es que si el email no existe en la BD que automaticamente se registre el usuario en la BD con el email y la contraseña que se escribio en el formulario.

Puedo llegar al punto en el que valido si el email existe, pero el action wp_login_failed solo me pasa el usuario (o email en este caso) y no la contraseña, y necesito ambos para hacer el registro automatico.

Trate utilizando $_REQUEST['user_pass'] pero no me muestra nada...

Alguno sabe que puedo hacer para obtener el password??

Saludos y gracias de antemano!