X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FController.php;h=0a5f6482e8d55de2a45cfeb42d9cebbe9e697994;hb=2169392de06a182cba71f3129e8b56813f79e0a7;hp=68c653185855e6a0c726458358ef90da6addef69;hpb=e6ac8b253e7c321dc2f5ced965de48b616c20275;p=civicrm-core.git diff --git a/CRM/Core/Controller.php b/CRM/Core/Controller.php index 68c6531858..0a5f6482e8 100644 --- a/CRM/Core/Controller.php +++ b/CRM/Core/Controller.php @@ -241,6 +241,11 @@ class CRM_Core_Controller extends HTML_QuickForm_Controller { // in this case we'll also cache the url as a hidden form variable, this allows us to // redirect in case the session has disappeared on us $this->_entryURL = CRM_Utils_System::makeURL(NULL, TRUE, FALSE, NULL, TRUE); + // In WordPress Shortcodes the standard entryURL generated via makeURL doesn't generally have id=x&reset=1 included so we add them here + // This prevents infinite loops caused when the session has timed out. + if (stripos($this->_entryURL, 'id') === FALSE && (stripos($this->_entryURL, 'transact') !== FALSE || stripos($this->_entryURL, 'register') !== FALSE)) { + $this->_entryURL .= '&id=' . CRM_Utils_Request::retrieveValue('id', 'Positive') . '&reset=1'; + } $this->set('entryURL', $this->_entryURL); }