Login re-direct
-
I am using WPMU dev premium log-in re-direct plug-in and its going to the homepage.
i would like to send all members to there profile after they sign in. How do I dod this?
-
Without knowing anything about the paid plugin in question, it’s pretty hard to make a guess. You might want to contact the plugin author, since I assume that if they made you pay for it, they offer support.
I note that it’s not one of the ones they explicitly say are Buddypress compatible, though, so you may have issues.
It can’t be a complicated bit of code, though, so I’d just open it up and see what’s in the code, and hack in the URL necessary. You’ll need to get the currently logged-in user from BP in order to build the URL of their profile, page, though, because their username is part of the URL.
That’s more than I know how to do off the top of my head, but I’m sure someone with more knowledge of BP coding can help you there.
It’s a little bit hard to do with the standard method of appending the redirect URL as an argument to the href link. At the time that the page is built from the template, you don’t know what the username is – it’s only after the user types in his username that you know what the redirect URL should be (eg http://example.com/members/boonebgorges), but by that time the page has already been built.
Unless there’s an all-purpose logged-in-user-profile URL alias built into BP that I don’t know about (maybe something like http://example.com/members/myprofile). Actually, now that I think about it, such a thing might not be too hard to create. If I get some spare time in the next few days maybe I’ll take a swing at it.
Boone that would be cool.
I used the plug-in to block members from going strait to the dash. But I have it set for them to go to the home page.
Again it would be cool if they logeed in, it would be cool for them to go there profile. This would also encourage new members to fill out there profile details as well.
OK, I cobbled together a solution. Two steps:
- Add the following code to your bp-custom.php folder or in your child theme’s functions.php (or a plugin if you roll that way):
function myprofile_redirect() {
global $bp;
if ( $bp->current_component == 'myprofile' && $bp->loggedin_user->domain != '' ) {
bp_core_redirect( $bp->loggedin_user->domain );
} elseif ( $bp->current_component == 'myprofile' ) {
bp_core_redirect( $bp->root_domain );
}
}
add_action( 'plugins_loaded', 'myprofile_redirect'); - In header.php of your child theme (copy it over from bp-sn-parent if you don’t have one there already) replace
<input type="hidden" name="redirect_to" value="<?php echo bp_root_domain() ?>" />
around line 57 with
<input type="hidden" name="redirect_to" value="<?php print ( bp_root_domain() . '/myprofile' ) ?>" />
Anytime a logged-in user types in the address http://example.com/myprofile, they’ll get their profile. Non-logged-in visitors will be redirected to the home page.
Let me know if it works for you.
Wow, thanks. Ill look into this and let you know how it goes.
hi all,
Well,I had experimented with login feature and came up with another solution.I just blogged it and here is the code for your reference.
My goal was
1.redirect normal users to their profile,whether they try to login from front pages(yeh,site front page or any other page on site) or wp-login.php
2.If the user is Site admin, and logs from site front page,redirect him to front page
3.If User is Site admin and tries to login from wp-login.php,that means he is interested in login to wp-admin,so let him go to the mu dashboard.
here is the code you need to put in your bp-custom.php and It will handle it all for you.
add_filter("login_redirect","bpdev_redirect_to_profile",10,3);
function bpdev_redirect_to_profile($redirect_to_calculated,$redirect_url_specified,$user)
{
if(empty($redirect_to_calculated))
$redirect_to_calculated=admin_url();
/*if the user is not site admin,redirect to his/her profile*/
if(!is_site_admin($user->user_login))
return bp_core_get_user_domain($user->ID );
else
return $redirect_to_calculated; /*if site admin or not logged in,do not do anything much*/
}and No need to modify anything else.
Edit:I tried posting code twice ,hopefully the code is their in this post.
Thanks for this excellent bit of code Brajesh Singh! Should be part of the core imho.
agree that it should be in Core, that a user will be immediately at his own Profile-page after log-in.
Hope to see this.
Thanks Andy !
Sorry to sound like a dummy, but Brajesh — where do I put this code? I need this functionality. But I can’t find a bp-custom.php on my server. I have Buddy Press activated and am using the New Yorker theme — http://www.thecommunity.com/wpmu .
Thanks very much.
Mary
Create a file called /wp-content/plugins/bp-custom.php and put the following code in there:
<?php
add_filter("login_redirect","bpdev_redirect_to_profile",10,3);
function bpdev_redirect_to_profile($redirect_to_calculated,$redirect_url_specified,$user)
{
if(empty($redirect_to_calculated))
$redirect_to_calculated=admin_url();
/*if the user is not site admin,redirect to his/her profile*/
if(!is_site_admin($user->user_login))
return bp_core_get_user_domain($user->ID );
else
return $redirect_to_calculated; /*if site admin or not logged in,do not do anything much*/
}
?> - Add the following code to your bp-custom.php folder or in your child theme’s functions.php (or a plugin if you roll that way):
- The topic ‘Login re-direct’ is closed to new replies.