WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am writing a plugin that fetches some extended user info from a remote service and I need it to execute its function each time a user logs in.

Is there a hook that gets fired after login that I can add an action to?

share|improve this question
up vote 17 down vote accepted

The action hook wp_login runs when the user logs in - it can run a simple function.

function do_anything() {
    //do stuff
add_action('wp_login', 'do_anything');

documentation : https://codex.wordpress.org/Plugin_API/Action_Reference/wp_login

The real breadwinner here is wp_authenticate which has a bit of documentation. It passes an array with the given username and password, which gives you the opportunity to pass info to the remote service, if necessary. https://codex.wordpress.org/Plugin_API/Action_Reference/wp_authenticate

and to change the redirect URL after login, there is the filter login_redirect: https://codex.wordpress.org/Plugin_API/Filter_Reference/login_redirect

share|improve this answer
no this runs when user clicks on login but before user gets verified. is there any hook that runs after user login and authentication success?????? – user13690 Feb 29 '12 at 21:06
whoopsie... I'll check and update the answer. – Drew Gourley Feb 29 '12 at 23:00
Checked, wp_login does run after authentication. What specifically do you need done? – Drew Gourley Feb 29 '12 at 23:07
wp_authenticate was what I was looking for. Thanks! – Adam Franco May 24 '12 at 19:35

I would caution against using wp_login. It is deprecated and in later versions of WordPress it may not work at all. Instead try the wp_signon function.

Edit: The wp_login function is depreciated but the wp_login action is fine to use.

share|improve this answer

protected by toscho Aug 1 '12 at 21:01

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.