Skip to:
Content

BuddyPress.org

Ticket #6325: profile-universal-redirect.php

File profile-universal-redirect.php, 1.0 KB (added by dcavins, 4 years ago)

Redirect from /me/ to a user's profile, sending the user through the login screen if needed.

Line 
1<?php 
2function bp_universal_profile_redirect_catch_uri() {
3        // Allow for internationalization.
4        $me_string = __( 'me', 'buddypress' );
5        // Or direct filtration.
6        $me_string = apply_filters( 'bp_universal_user_profile_slug', $me_string );
7
8        // Catch URIs that start with the 'me string' and redirect to the user's profile.
9        if ( strpos( $_SERVER['REQUEST_URI'], '/' . $me_string . '/' ) === 0 ) {
10
11                if ( $current_user_id = get_current_user_id() ) {
12                        // For logged-in users, we replace '/myprofile/' and send them to their user domain.
13                        $target = bp_loggedin_user_domain() . str_replace( '/' . $me_string . '/', '', $_SERVER['REQUEST_URI'] );
14                } else {
15                        // If the user is not logged in, we send them to login screen
16                        // with the redirect args set to return them here. Then, case #1 kicks in.
17                        $target = wp_login_url( ( is_ssl() ? 'https://' : 'http://' ) .  $_SERVER["HTTP_HOST"] . $_SERVER['REQUEST_URI'] );
18                }
19
20                bp_core_redirect( $target );
21                exit;
22
23        }
24}
25add_action( 'bp_init', 'bp_universal_profile_redirect_catch_uri', 9 );