/** * Send the user to their OpenID provider to authenticate. * * @param Auth_OpenID_AuthRequest $auth_request OpenID authentication request object * @param string $trust_root OpenID trust root * @param string $return_to URL where the OpenID provider should return the user */ function doRedirect($auth_request, $trust_root, $return_to) { global $openid; if ($auth_request->shouldSendRedirect()) { if (substr($trust_root, -1, 1) != '/') { $trust_root .= '/'; } $redirect_url = $auth_request->redirectURL($trust_root, $return_to); if (Auth_OpenID::isFailure($redirect_url)) { $openid->log->error('Could not redirect to server: ' . $redirect_url->message); } else { wp_redirect($redirect_url); } } else { // Generate form markup and render it $form_id = 'openid_message'; $form_html = $auth_request->formMarkup($trust_root, $return_to, false); if (Auth_OpenID::isFailure($form_html)) { $openid->log->error('Could not redirect to server: ' . $form_html->message); } else { WordPressOpenID_Interface::display_openid_redirect_form($form_html); } } }