function xfac_wp_logout() { $config = xfac_option_getConfig(); if (empty($config)) { // do nothing return; } $wpUser = wp_get_current_user(); if (empty($wpUser->ID)) { // hmm, how could guest perform log out? return; } $records = xfac_user_getRecordsByUserId($wpUser->ID); if (!empty($records)) { foreach ($records as $record) { $accessToken = xfac_user_getAccessTokenForRecord($record); $ott = xfac_api_generateOneTimeToken($config, $record->identifier, $accessToken); $redirectTo = xfac_api_getRedirectTo(); $newRedirectTo = xfac_api_getLogoutLink($config, $ott, $redirectTo); $_REQUEST['redirect_to'] = $newRedirectTo; } } }
</div> </th> <td valign="top"> <p> <a href="<?php echo admin_url('profile.php?xfac=disconnect&id=' . $apiRecord->id); ?> "> <?php _e('Disconnect this account', 'xenforo-api-consumer'); ?> </a> </p> <?php if (xfac_user_getAccessTokenForRecord($apiRecord) === null) { ?> <p> <a href="<?php echo site_url('wp-login.php?xfac=1&redirect_to=' . rawurlencode(admin_url('profile.php')), 'login_post'); ?> "> <?php _e('Refresh connection', 'xenforo-api-consumer'); ?> </a> </p> <?php } ?> </td>
function xfac_user_getAccessToken($wpUserId) { $records = xfac_user_getRecordsByUserId($wpUserId); if (empty($records)) { return null; } $record = reset($records); return xfac_user_getAccessTokenForRecord($record); }