¿Cómo usar current_user_can ()?

4

Porque no está funcionando para mí. Este código comprueba si un usuario se acaba de registrar. Quiero redirigirlo a una página personalizada si es así. De lo contrario, redirigirlo a la página de inicio o la página de administración.

function mylogin_redirect($redirect_to, $url_redirect_to = '', $user = null) {
    if( $user->ID ) {
        $user_info = get_userdata( $user->ID ); 
        // If user_registered date/time is less than 48hrs from now
        // Message will show for 48hrs after registration
        if ( strtotime( $user_info->user_registered ) > ( time() - 172800 ) ) {
            return get_bloginfo('url') . "/custompage/";
        } elseif( current_user_can( 'manage_options' )) {
            return admin_url();
        } else {
            return get_bloginfo('url');
        }
    }
}
add_filter('login_redirect', 'mylogin_redirect');

Obtengo los resultados esperados para las dos opciones, pero el administrador. elseif( current_user_can( 'manage_options' )) { return admin_url(); } no parece ser analizado.

    
pregunta Joann 24.11.2010 - 18:04

1 respuesta

6

Probablemente porque el $current_user global aún no es válido, que es usado por current_user_can() .

Sin embargo, puedes usar esto en su lugar;

if ($user->has_cap('manage_options')) { return admin_url(); }
    
respondido por el TheDeadMedic 24.11.2010 - 18:26

Lea otras preguntas en las etiquetas