You are here

function campaignmonitor_user_page_form_submit in Campaign Monitor 6.3

Implementation of user page form submit.

File

includes/campaignmonitor.user_page.inc, line 73

Code

function campaignmonitor_user_page_form_submit($form, &$form_state) {
  global $user;
  $api_key = variable_get(CM_API_KEY, '');
  $client_id = variable_get(CM_CLIENT_ID, '');

  // Get the different lists avaliable and their state for the current user.
  $chosen_lists = campaignmonitor_get_available_lists();
  $subscribe = $form_state['values']['subscribe_newsletter'];
  foreach ($chosen_lists as $list_id => $list) {
    if ($subscribe[$list_id]) {

      // Try to get name from default key values.
      $account = campaignmonitor_get_field_key_values($user->uid);
      $name = isset($account[$list->namekey]) ? $account[$list->namekey] : '';

      // If subscribed, add if not already subscribed.
      if (isset($subscribe[$list_id]) && !$form_state['values']['is_subscribed_' . $list_id]) {
        _campaignmonitor_add_subscriber($api_key, $list_id, $name, $user->mail);
      }
    }
    elseif (!$subscribe[$list_id] && $form_state['values']['is_subscribed_' . $list_id]) {
      _campaignmonitor_remove_subscriber($api_key, $list_id, $user->mail);
    }
  }
}