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;
 }