From 398612eaf1689612513862341dbb7d8ee731f651 Mon Sep 17 00:00:00 2001 From: Robert Staddon Date: Wed, 18 May 2016 11:31:28 -0500 Subject: [PATCH] Redirect to origin page instead of home page if setting enabled To know the origin page URL, read the value of a cookie that was set when the button was created. --- .../openid-connect-generic-client-wrapper.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/includes/openid-connect-generic-client-wrapper.php b/includes/openid-connect-generic-client-wrapper.php index fed9858..eedee92 100644 --- a/includes/openid-connect-generic-client-wrapper.php +++ b/includes/openid-connect-generic-client-wrapper.php @@ -12,7 +12,10 @@ class OpenID_Connect_Generic_Client_Wrapper { // internal tracking cookie key private $cookie_id_key = 'openid-connect-generic-identity'; - + + // user redirect cookie key + public $cookie_redirect_key = 'openid-connect-generic-redirect'; + // WP_Error if there was a problem, or false if no error private $error = false; @@ -258,8 +261,14 @@ class OpenID_Connect_Generic_Client_Wrapper { // log our success $this->logger->log( "Successful login for: {$user->user_login} ({$user->ID})", 'login-success' ); - // go home! - wp_redirect( home_url() ); + // redirect back to the origin page if enabled + if( $this->settings->redirect_user_back && !empty( $redirect_url = esc_url( $_COOKIE[ $this->cookie_redirect_key ] ) ) ) { + wp_redirect( $redirect_url ); + } + // otherwise, go home! + else { + wp_redirect( home_url() ); + } } /**