Leave a Reply

2 comments

  1. I would do something like this:

    function wpse38285_wp_login( $user_login ) {
        set_transient( $user_login, '1', 0 );
    }
    add_action( 'wp_login', 'wpse38285_wp_login' );
    
    function wpse38285_wp_footer() {
        global $current_user;
        get_currentuserinfo();
    
        if ( ! is_user_logged_in() )
            return;
    
        if ( ! get_transient( $current_user->user_login ) )
            return;
    
        $js = <<<JS
        <script type="text/javascript">
            jQuery('<div />')
                .html('<p>You are now logged in as <strong>$current_user->user_login</strong><br /><small>(click to close)</small></p>')
                .css({
                    'width': '300px',
                    'position': 'absolute',
                    'left': '50%',
                    'marginLeft': '-160px',
                    'top': '100px',
                    'backgroundColor': '#cdcdcd',
                    'textAlign': 'center',
                    'padding': '10px'
                })
                .appendTo('body')
                .on('click', function() { jQuery(this).remove(); } );
        </script>
    JS;
        echo $js;
        delete_transient( $current_user->user_login );
    }
    add_action( 'wp_footer', 'wpse38285_wp_footer' );
    

    Set a never-expiring transient for the user after logging on. If a transient is set for that user, inject some JavaScript code and delete the transient.