function parse_request(&$wp) { if (array_key_exists('patreon-oauth', $wp->query_vars)) { if (array_key_exists('code', $wp->query_vars)) { if (get_option('patreon-client-id', false) == false || get_option('patreon-client-secret', false) == false) { /* redirect to homepage because of oauth client_id or secure_key error #HANDLE_ERROR */ wp_redirect(home_url()); exit; } else { $oauth_client = new Patreon_Oauth(); } $tokens = $oauth_client->get_tokens($wp->query_vars['code'], site_url() . '/patreon-authorization/'); if (array_key_exists('error', $tokens)) { /* redirect to homepage because of some error #HANDLE_ERROR */ wp_redirect(home_url()); exit; } else { /* redirect to homepage successfully #HANDLE_SUCCESS */ $api_client = new Patreon_API($tokens['access_token']); $user_response = $api_client->fetch_user(); $user = Patreon_Login::createUserFromPatreon($user_response, $tokens); wp_redirect(home_url(), 302); exit; } } else { wp_redirect(home_url()); exit; } } }
static function getPatreonUser($user) { /* get user meta data and query patreon api */ $user_meta = get_user_meta($user->ID); if (isset($user_meta['patreon_access_token'][0])) { $api_client = new Patreon_API($user_meta['patreon_access_token'][0]); $user = $api_client->fetch_user(); return $user; } return false; }