/**
* 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);
}
}
}