function campaignmonitor_registration_form_user_register_submit in Campaign Monitor 8
Same name and namespace in other branches
- 8.2 modules/campaignmonitor_registration/campaignmonitor_registration.module \campaignmonitor_registration_form_user_register_submit()
- 7 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_BASE_FORM_ID_alter().
File
- modules/
campaignmonitor_registration/ campaignmonitor_registration.module, line 84
Code
function campaignmonitor_registration_form_user_register_submit(&$form, FormStateInterface &$form_state) {
$values = $form_state
->getValues();
if (isset($values['lists'])) {
// Get connected to the API and get lists.
$lists_info = campaignmonitor_get_lists();
$name = SafeMarkup::checkPlain($values['name']);
// Find the selected lists, if any.
foreach ($values['lists'] as $list_id => $selected) {
if ($selected) {
$settings = campaignmonitor_get_list_settings($list_id);
if (isset($settings['display']['name_field']) && is_string($settings['display']['name_field']) && $settings['display']['name_field'] != '') {
if (isset($values[$settings['display']['name_field']][0]['value']) && $values[$settings['display']['name_field']][0]['value'] != '') {
$name = $values[$settings['display']['name_field']][0]['value'];
}
}
$subscribe_now = TRUE;
// Provide opportunity for modules to override the subscription process
$result = Drupal::moduleHandler()
->invokeAll('campaignmonitor_registration_submit', [
$list_id,
$values['mail'],
]);
// Modules can prevent immediate subscription
if (isset($result['subscribe']) && $result['subscribe'] === 0) {
$subscribe_now = FALSE;
}
if ($subscribe_now) {
// Try to subscribe to the list.
if (!campaignmonitor_subscribe($list_id, SafeMarkup::checkPlain($values['mail']), SafeMarkup::checkPlain($name))) {
$form_state
->setErrorByName('', t('You were not subscribed to the list. Please try again later.'));
}
drupal_set_message(t('You are now subscribed to the "@list" list.', [
'@list' => html_entity_decode($lists_info[$list_id]['name']),
]), 'status');
}
}
}
}
}