You are here

function campaignmonitor_registration_form_user_register_submit in Campaign Monitor 7

Same name and namespace in other branches
  1. 8.2 modules/campaignmonitor_registration/campaignmonitor_registration.module \campaignmonitor_registration_form_user_register_submit()
  2. 8 modules/campaignmonitor_registration/campaignmonitor_registration.module \campaignmonitor_registration_form_user_register_submit()

Submission form handler.

Information about the selected list will be submitted to Campaign Monitor.

1 string reference to 'campaignmonitor_registration_form_user_register_submit'
campaignmonitor_registration_form_user_register_form_alter in modules/campaignmonitor_registration/campaignmonitor_registration.module
Implements hook_form_FORM_ID_alter().

File

modules/campaignmonitor_registration/campaignmonitor_registration.module, line 63
Newsletter subscription for users on the registration page.

Code

function campaignmonitor_registration_form_user_register_submit($form, &$form_state) {
  if (isset($form_state['values']['campaignmonitor_lists']) && !form_get_errors()) {

    // Get connected to the API and get lists.
    $cm = CampaignMonitor::getConnector();
    $lists_info = $cm
      ->getLists();

    // Find the selected lists, if any.
    foreach ($form_state['values']['campaignmonitor_lists'] as $list_id => $selected) {
      if ($selected) {

        // Try to subscribe to the list.
        if (!$cm
          ->subscribe($list_id, check_plain($form_state['values']['mail']), check_plain($form_state['values']['name']))) {
          form_set_error('', t('You were not subscribed to the list. Please try again later.'));
          $form_state['redirect'] = FALSE;
          return FALSE;
        }
        drupal_set_message(t('You are now subscribed to the "@list" list.', [
          '@list' => $lists_info[$list_id]['name'],
        ]), 'status');
      }
    }

    // Remove it from the form before the submit functions take over (might not
    // be needed).
    unset($form_state['values']['campaignmonitor_lists']);
  }
}