You are here

function simplenews_subscription_list_remove_submit in Simplenews 6.2

Same name and namespace in other branches
  1. 6 simplenews.admin.inc \simplenews_subscription_list_remove_submit()
  2. 7.2 includes/simplenews.admin.inc \simplenews_subscription_list_remove_submit()
  3. 7 includes/simplenews.admin.inc \simplenews_subscription_list_remove_submit()

File

includes/simplenews.admin.inc, line 686
Newsletter admin, subscription admin, simplenews settings

Code

function simplenews_subscription_list_remove_submit($form, &$form_state) {
  $removed = array();
  $invalid = array();
  $checked_newsletters = array_filter($form_state['values']['newsletters']);
  $emails = preg_split("/[\\s,]+/", $form_state['values']['emails']);
  foreach ($emails as $email) {
    $email = trim($email);
    if (simplenews_valid_email_address($email)) {
      foreach ($checked_newsletters as $tid) {
        $newsletter = taxonomy_get_term($tid);
        simplenews_unsubscribe_user($email, $newsletter->tid, FALSE, 'mass unsubscribe');
        $removed[] = $email;
      }
    }
    else {
      $invalid[] = $email;
    }
  }
  if ($removed) {
    $removed = implode(", ", $removed);
    drupal_set_message(t('The following addresses were unsubscribed: %removed.', array(
      '%removed' => $removed,
    )));
    $newsletter_names = array();
    foreach ($checked_newsletters as $tid) {
      $newsletter = taxonomy_get_term($tid);
      $newsletter_names[] = $newsletter->name;
    }
    drupal_set_message(t('The addresses were unsubscribed from the following newsletters: %newsletters.', array(
      '%newsletters' => implode(', ', $newsletter_names),
    )));
  }
  else {
    drupal_set_message(t('No addresses were removed.'));
  }
  if ($invalid) {
    $invalid = implode(", ", $invalid);
    drupal_set_message(t('The following addresses were invalid: %invalid.', array(
      '%invalid' => $invalid,
    )), 'error');
  }
}