You are here

function campaignmonitor_registration_form_campaignmonitor_list_settings_form_alter in Campaign Monitor 8.2

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

Implements hook_form_BASE_FORM_ID_alter().

File

modules/campaignmonitor_registration/campaignmonitor_registration.module, line 170
Select newsletter lists users want to subscribe on the registration page.

Code

function campaignmonitor_registration_form_campaignmonitor_list_settings_form_alter(&$form, FormStateInterface &$form_state) {

  // Find form key to index the form array and load defaults.
  $list_id = $form['listId']['#value'];
  $campaignManager = \Drupal::service('campaignmonitor.manager');
  $defaults = $campaignManager
    ->getListSettings($list_id);
  $form_key = 'campaignmonitor_list_' . $list_id;

  // Add option to enable this form on the user page.
  $form[$form_key]['display']['registration'] = [
    '#type' => 'checkbox',
    '#title' => t('Display list on registration page'),
    '#description' => t('Enable this list on the registration page and allow subscription.'),
    '#default_value' => isset($defaults['display']['registration']) ? $defaults['display']['registration'] : 0,
  ];
  foreach (array_keys($form['actions']) as $action) {
    if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
      $form['actions'][$action]['#submit'][] = 'campaignmonitor_registration_form_campaignmonitor_list_settings_submit';
    }
  }
}