From dc881e613f05e2292fd1b2cf2bab9d9058b3fd30 Mon Sep 17 00:00:00 2001 From: Miguel Barreiro Date: Tue, 22 Jun 2021 16:12:25 +0100 Subject: [PATCH] Add new action hook when user logs in --- inc/classes/class-google-auth.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/inc/classes/class-google-auth.php b/inc/classes/class-google-auth.php index 9e45ee3a..f224068c 100644 --- a/inc/classes/class-google-auth.php +++ b/inc/classes/class-google-auth.php @@ -32,6 +32,15 @@ class Google_Auth { */ protected $_redirect_to = ''; + /** + * @var \WP_User + */ + protected $_user = false; + + /** + * @var boolean + */ + protected $_is_logged = false; /** * Google_Auth constructor. */ @@ -41,7 +50,7 @@ protected function __construct() { $this->_client = $this->_get_client(); - add_filter( 'authenticate', [ $this, 'authenticate_user' ] ); + $this->_is_logged = add_filter( 'authenticate', [ $this, 'authenticate_user' ] ); add_filter( 'login_redirect', [ $this, 'get_login_redirect' ] ); add_filter( 'registration_redirect', [ $this, 'get_login_redirect' ] ); add_filter( 'allowed_redirect_hosts', [ $this, 'maybe_whitelist_subdomain' ] ); @@ -396,6 +405,8 @@ public function authenticate_user( $user = null ) { // We found the user. if ( ! empty( $user ) && $user instanceof \WP_User ) { + $this->_user = $user; + if ( ! $is_mu_site ) { return $user; } @@ -428,6 +439,7 @@ public function authenticate_user( $user = null ) { if ( empty( $user ) || ! $user instanceof \WP_User ) { $user_id = $this->_create_user( $user_info ); $user = get_user_by( 'id', $user_id ); + $this->_user = $user; } if ( $is_mu_site ) { @@ -446,7 +458,14 @@ public function authenticate_user( $user = null ) { * * @return string Redirect to URL. */ - public function get_login_redirect( $redirect_to ) { + public function get_login_redirect( $redirect_to, $requested_redirect_to, $user ) { + if($this->_user instanceof \WP_User && $this->_is_logged){ + /** + * This hook provides access to user after login from this plugin. + * @param \WP_User $user logged in. + */ + do_action('wp_google_login_user_loggedin', $user); + } return ( ! empty( $this->_redirect_to ) ) ? $this->_redirect_to : $redirect_to; }