function sendinblue_signup_subscribe_form_validate in SendinBlue 7.2
Same name and namespace in other branches
- 7 sendinblue.module \sendinblue_signup_subscribe_form_validate()
Validate handler to add users to lists on subscription form submission.
File
- ./
sendinblue.module, line 381 - The entry point of Sendinblue module.
Code
function sendinblue_signup_subscribe_form_validate($form, &$form_state) {
$sendinblueMailin = new SendinblueMailin();
$signup = reset($form_state['build_info']['args']);
$email = $form_state['values']['fields']['EMAIL'];
if (!valid_email_address($email)) {
form_set_error('email', check_plain($signup->settings['subscription']['messages']['invalid']));
return;
}
$list_id = $signup->settings['subscription']['settings']['list'];
$response = SendinblueManager::validationEmail($email, $list_id);
if ($response['code'] === 'invalid') {
form_set_error('email', check_plain($signup->settings['subscription']['messages']['invalid']));
return;
}
if ($response['code'] === 'already_exist') {
form_set_error('email', check_plain($signup->settings['subscription']['messages']['existing']));
return;
}
$email_confirmation = $signup->settings['subscription']['settings']['email_confirmation'];
if ($email_confirmation == '1') {
$templage_id = $signup->settings['subscription']['settings']['template'];
}
$list_ids = $response['listid'];
array_push($list_ids, $list_id);
$info = array();
foreach ($sendinblueMailin
->getAttributes()
->getAttributes() as $attribute) {
if (isset($form_state['values']['fields'][$attribute
->getName()])) {
$info[$attribute
->getName()] = $form_state['values']['fields'][$attribute
->getName()];
}
}
// Subscribe USER on Sib.
SendinblueManager::subscribeUser($email, $info, $list_ids);
// Store db.
$data = SendinblueManager::getSubscriberByEmail($email);
if ($data == FALSE) {
$uniqid = uniqid();
$data = array(
'email' => $email,
'info' => serialize($info),
'code' => $uniqid,
'is_active' => 1,
);
SendinblueManager::addSubscriberTable($data);
}
// Send confirm email.
if ($email_confirmation == '1') {
SendinblueManager::sendEmail('confirm', $email, $templage_id);
}
}