/** * Handle Requests * This is where compute the email from the token and subscribe the user_error() * * @return void */ protected function handle_request() { global $wp; $token = $wp->query_vars['token']; if (!$token) { wp_redirect('sg-subscription-missing-token'); exit; } $transient = get_transient($token); if (!$transient || !is_array($transient) || !isset($transient['email']) || !isset($transient['first_name']) || !isset($transient['last_name'])) { wp_redirect('sg-subscription-invalid-token'); exit; } $subscribed = Sendgrid_NLVX::create_and_add_recipient_to_list($transient['email'], $transient['first_name'], $transient['last_name']); if ($subscribed) { $page = Sendgrid_Tools::get_mc_signup_confirmation_page_url(); if ($page == false) { set_transient($token, null); wp_redirect('sg-subscription-success'); exit; } else { $page = add_query_arg('sg_token', $token, $page); wp_redirect($page); exit; } return; } else { wp_redirect('sg-error'); exit; } }