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; } } }
public static function getPatreonCreatorID() { $api_client = new Patreon_API(get_option('patreon-creators-access-token', false)); $user_response = $api_client->fetch_campaign_and_patrons(); if (empty($user_response)) { return false; } $creator_id = false; if (array_key_exists('data', $user_response)) { foreach ($user_response['included'] as $obj) { if ($obj["type"] == "user") { $creator_id = $obj['id']; break; } } } return $creator_id; }