/** * Enforce password reset after user login, when applicable. * * @action wp_login * * @param string $user_login * @param WP_User $user */ public function wp_login($user_login, $user) { if (!Expire_Passwords::get_user_meta($user)) { Expire_Passwords::save_user_meta($user); } if (!Expire_Passwords::is_expired($user)) { return; } wp_destroy_all_sessions(); wp_safe_redirect(add_query_arg(array('action' => 'lostpassword', 'expass' => 'expired'), wp_login_url()), 302); exit; }
function settings_tools() { if (isset($_POST['action'])) { switch ($_POST['action']) { case 'force_destroy_sessions': if (0 === get_current_user_id()) { MainWP_Helper::write(array('error' => __('Cannot get user_id', 'mainwp-child'))); } wp_destroy_all_sessions(); $sessions = wp_get_all_sessions(); if (empty($sessions)) { MainWP_Helper::write(array('success' => 1)); } else { MainWP_Helper::write(array('error' => __('Cannot destroy sessions', 'mainwp-child'))); } break; default: MainWP_Helper::write(array('error' => __('Invalid action', 'mainwp-child'))); } } else { MainWP_Helper::write(array('error' => __('Missing action', 'mainwp-child'))); } }