How To Redirect User To Any Page After Login in Drupal 7

There are loads of modules that can do this for you, but why to install one more module if you can do this with one string of code? The best thing is that approach below does a redirection even if you login from user login block.

Just put the following code into your custom module:

  1. /**
  2. * Implements hook_user_login().
  3. */
  4. function module_name_user_login(&$edit, $account) {
  5. // Don't redirect on password reset.
  6. $current_menu_item = menu_get_item();
  7. if ($current_menu_item['path'] == 'user/reset/%/%/%') {
  8. return;
  9. }
  10. // Redirect user to profile page after the login.
  11. $_GET['destination'] = 'user';
  12. }

You can find this snippet at dropbucket.org here: http://dropbucket.org/node/746

UPDATE 03/08/2013: Added several lines to prevent redirection during password reset. Now to a little explanation what we've done here: we used user_login() hook that fires when user logs in. We just set $_GET['destination'] value and profit! The best part is that this approach works when user log in from the login block. No Rules, no trigger, no any other module I've tried didn't do this for me.

Happy Drupal coding and don't forget to check Drupal snippets repository time from time, there you can find real gems!