Using WordPress ‘after_password_reset’ PHP action

The after_password_reset WordPress PHP action fires after a user’s password has been reset.

Usage

add_action('after_password_reset', 'your_custom_function', 10, 2);

function your_custom_function($user, $new_pass) {
  // your custom code here
}

Parameters

  • $user (WP_User): The user whose password has been reset.
  • $new_pass (string): The new password for the user.

More information

See WordPress Developer Resources: after_password_reset

Examples

Send a password reset confirmation email

Send an email to the user confirming that their password has been successfully reset.

function send_password_reset_email($user, $new_pass) {
  $to = $user->user_email;
  $subject = 'Your password has been reset';
  $message = 'Your password has been successfully reset. Please use your new password to log in.';
  wp_mail($to, $subject, $message);
}
add_action('after_password_reset', 'send_password_reset_email', 10, 2);

Log password reset event

Log the password reset event for security and audit purposes.

function log_password_reset($user, $new_pass) {
  $log_message = "Password reset for user {$user->user_login} (ID: {$user->ID})";
  error_log($log_message);
}
add_action('after_password_reset', 'log_password_reset', 10, 2);

Notify admin of password reset

Send an email notification to the site administrator when a user’s password has been reset.

function notify_admin_password_reset($user, $new_pass) {
  $admin_email = get_option('admin_email');
  $subject = "User {$user->user_login} has reset their password";
  $message = "User {$user->user_login} (ID: {$user->ID}) has reset their password.";
  wp_mail($admin_email, $subject, $message);
}
add_action('after_password_reset', 'notify_admin_password_reset', 10, 2);

Force password change on next login

Mark the user’s password as temporary, forcing them to change it on their next login.

function force_password_change_on_next_login($user, $new_pass) {
  update_user_meta($user->ID, '_force_password_change', true);
}
add_action('after_password_reset', 'force_password_change_on_next_login', 10, 2);

Add a custom event to the user activity log

Add a custom event to the user activity log plugin when a user’s password has been reset.

function log_user_activity_password_reset($user, $new_pass) {
  $activity_data = array(
    'user_id' => $user->ID,
    'activity' => 'Password reset',
    'description' => "User {$user->user_login} (ID: {$user->ID}) has reset their password.",
    'date' => current_time('mysql')
  );
  insert_user_activity_log($activity_data);
}
add_action('after_password_reset', 'log_user_activity_password_reset', 10, 2);