diff --git a/htdocs/public/members/new.php b/htdocs/public/members/new.php
index 46aac8dce3b..c54061ebb7a 100644
--- a/htdocs/public/members/new.php
+++ b/htdocs/public/members/new.php
@@ -266,156 +266,161 @@ if (empty($reshook) && $action == 'add') {
// Fill array 'array_options' with data from add form
$extrafields->fetch_name_optionals_label($adh->table_element);
$ret = $extrafields->setOptionalsFromPost(null, $adh);
- if ($ret < 0) $error++;
-
- $result = $adh->create($user);
- if ($result > 0) {
- require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
- $object = $adh;
-
- $adht = new AdherentType($db);
- $adht->fetch($object->typeid);
-
- if ($object->email) {
- $subject = '';
- $msg = '';
-
- // Send subscription email
- include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
- $formmail = new FormMail($db);
- // Set output language
- $outputlangs = new Translate('', $conf);
- $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
- // Load traductions files required by page
- $outputlangs->loadLangs(array("main", "members"));
- // Get email content from template
- $arraydefaultmessage = null;
- $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER;
-
- if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
-
- if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
- $subject = $arraydefaultmessage->topic;
- $msg = $arraydefaultmessage->content;
- }
-
- $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object);
- complete_substitutions_array($substitutionarray, $outputlangs, $object);
- $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
- $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs);
-
- if ($subjecttosend && $texttosend) {
- $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n";
-
- $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
- }
- /*if ($result < 0) {
- $error++;
- setEventMessages($object->error, $object->errors, 'errors');
- }*/
- }
-
- // Send email to the foundation to say a new member subscribed with autosubscribe form
- if (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL) && !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT) &&
- !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL)) {
- // Define link to login card
- $appli = constant('DOL_APPLICATION_TITLE');
- if (!empty($conf->global->MAIN_APPLICATION_TITLE)) {
- $appli = $conf->global->MAIN_APPLICATION_TITLE;
- if (preg_match('/\d\.\d/', $appli)) {
- if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core
- } else $appli .= " ".DOL_VERSION;
- } else {
- $appli .= " ".DOL_VERSION;
- }
-
- $to = $adh->makeSubstitution($conf->global->MAIN_INFO_SOCIETE_MAIL);
- $from = $conf->global->ADHERENT_MAIL_FROM;
- $mailfile = new CMailFile(
- '['.$appli.'] '.$conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT,
- $to,
- $from,
- $adh->makeSubstitution($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL),
- array(),
- array(),
- array(),
- "",
- "",
- 0,
- -1
- );
-
- if (!$mailfile->sendfile()) {
- dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR);
- }
- }
-
- if (!empty($backtopage)) {
- $urlback = $backtopage;
- } elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) {
- $urlback = $conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION;
- // TODO Make replacement of __AMOUNT__, etc...
- } else {
- $urlback = $_SERVER["PHP_SELF"]."?action=added";
- }
-
- if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) && $conf->global->MEMBER_NEWFORM_PAYONLINE != '-1') {
- if ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'all') {
- $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
- if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
- if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
- $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
- } else {
- $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
- }
- }
- } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'paybox') {
- $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
- if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
- if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
- $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
- } else {
- $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
- }
- }
- } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'paypal') {
- $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
- if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
- if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
- $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
- } else {
- $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
- }
- }
- } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'stripe') {
- $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=membernewform&source=membersubscription&ref='.$adh->ref;
- if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
- if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
- if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
- $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
- } else {
- $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
- }
- }
- } else {
- dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment");
- exit;
- }
- }
-
- if (!empty($entity)) $urlback .= '&entity='.$entity;
- dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback);
- } else {
+ if ($ret < 0) {
$error++;
- $errmsg .= join('
', $adh->errors);
}
+
+ if (!$error) {
+ $result = $adh->create($user);
+
+ if ($result > 0) {
+ require_once DOL_DOCUMENT_ROOT.'/core/class/CMailFile.class.php';
+ $object = $adh;
+
+ $adht = new AdherentType($db);
+ $adht->fetch($object->typeid);
+
+ if ($object->email) {
+ $subject = '';
+ $msg = '';
+
+ // Send subscription email
+ include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php';
+ $formmail = new FormMail($db);
+ // Set output language
+ $outputlangs = new Translate('', $conf);
+ $outputlangs->setDefaultLang(empty($object->thirdparty->default_lang) ? $mysoc->default_lang : $object->thirdparty->default_lang);
+ // Load traductions files required by page
+ $outputlangs->loadLangs(array("main", "members"));
+ // Get email content from template
+ $arraydefaultmessage = null;
+ $labeltouse = $conf->global->ADHERENT_EMAIL_TEMPLATE_AUTOREGISTER;
+
+ if (!empty($labeltouse)) $arraydefaultmessage = $formmail->getEMailTemplate($db, 'member', $user, $outputlangs, 0, 1, $labeltouse);
+
+ if (!empty($labeltouse) && is_object($arraydefaultmessage) && $arraydefaultmessage->id > 0) {
+ $subject = $arraydefaultmessage->topic;
+ $msg = $arraydefaultmessage->content;
+ }
+
+ $substitutionarray = getCommonSubstitutionArray($outputlangs, 0, null, $object);
+ complete_substitutions_array($substitutionarray, $outputlangs, $object);
+ $subjecttosend = make_substitutions($subject, $substitutionarray, $outputlangs);
+ $texttosend = make_substitutions(dol_concatdesc($msg, $adht->getMailOnValid()), $substitutionarray, $outputlangs);
+
+ if ($subjecttosend && $texttosend) {
+ $moreinheader = 'X-Dolibarr-Info: send_an_email by public/members/new.php'."\r\n";
+
+ $result = $object->send_an_email($texttosend, $subjecttosend, array(), array(), array(), "", "", 0, -1, '', $moreinheader);
+ }
+ /*if ($result < 0) {
+ $error++;
+ setEventMessages($object->error, $object->errors, 'errors');
+ }*/
+ }
+
+ // Send email to the foundation to say a new member subscribed with autosubscribe form
+ if (!empty($conf->global->MAIN_INFO_SOCIETE_MAIL) && !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT) &&
+ !empty($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL)) {
+ // Define link to login card
+ $appli = constant('DOL_APPLICATION_TITLE');
+ if (!empty($conf->global->MAIN_APPLICATION_TITLE)) {
+ $appli = $conf->global->MAIN_APPLICATION_TITLE;
+ if (preg_match('/\d\.\d/', $appli)) {
+ if (!preg_match('/'.preg_quote(DOL_VERSION).'/', $appli)) $appli .= " (".DOL_VERSION.")"; // If new title contains a version that is different than core
+ } else $appli .= " ".DOL_VERSION;
+ } else {
+ $appli .= " ".DOL_VERSION;
+ }
+
+ $to = $adh->makeSubstitution($conf->global->MAIN_INFO_SOCIETE_MAIL);
+ $from = $conf->global->ADHERENT_MAIL_FROM;
+ $mailfile = new CMailFile(
+ '['.$appli.'] '.$conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT,
+ $to,
+ $from,
+ $adh->makeSubstitution($conf->global->ADHERENT_AUTOREGISTER_NOTIF_MAIL),
+ array(),
+ array(),
+ array(),
+ "",
+ "",
+ 0,
+ -1
+ );
+
+ if (!$mailfile->sendfile()) {
+ dol_syslog($langs->trans("ErrorFailedToSendMail", $from, $to), LOG_ERR);
+ }
+ }
+
+ if (!empty($backtopage)) {
+ $urlback = $backtopage;
+ } elseif (!empty($conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION)) {
+ $urlback = $conf->global->MEMBER_URL_REDIRECT_SUBSCRIPTION;
+ // TODO Make replacement of __AMOUNT__, etc...
+ } else {
+ $urlback = $_SERVER["PHP_SELF"]."?action=added";
+ }
+
+ if (!empty($conf->global->MEMBER_NEWFORM_PAYONLINE) && $conf->global->MEMBER_NEWFORM_PAYONLINE != '-1') {
+ if ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'all') {
+ $urlback = DOL_MAIN_URL_ROOT.'/public/payment/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
+ if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
+ if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
+ $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
+ } else {
+ $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
+ }
+ }
+ } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'paybox') {
+ $urlback = DOL_MAIN_URL_ROOT.'/public/paybox/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
+ if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
+ if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
+ $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
+ } else {
+ $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
+ }
+ }
+ } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'paypal') {
+ $urlback = DOL_MAIN_URL_ROOT.'/public/paypal/newpayment.php?from=membernewform&source=membersubscription&ref='.urlencode($adh->ref);
+ if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
+ if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
+ $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
+ } else {
+ $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
+ }
+ }
+ } elseif ($conf->global->MEMBER_NEWFORM_PAYONLINE == 'stripe') {
+ $urlback = DOL_MAIN_URL_ROOT.'/public/stripe/newpayment.php?from=membernewform&source=membersubscription&ref='.$adh->ref;
+ if (price2num(GETPOST('amount', 'alpha'))) $urlback .= '&amount='.price2num(GETPOST('amount', 'alpha'));
+ if (GETPOST('email')) $urlback .= '&email='.urlencode(GETPOST('email'));
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN)) {
+ if (!empty($conf->global->PAYMENT_SECURITY_TOKEN_UNIQUE)) {
+ $urlback .= '&securekey='.urlencode(dol_hash($conf->global->PAYMENT_SECURITY_TOKEN.'membersubscription'.$adh->ref, 2));
+ } else {
+ $urlback .= '&securekey='.urlencode($conf->global->PAYMENT_SECURITY_TOKEN);
+ }
+ }
+ } else {
+ dol_print_error('', "Autosubscribe form is setup to ask an online payment for a not managed online payment");
+ exit;
+ }
+ }
+
+ if (!empty($entity)) $urlback .= '&entity='.$entity;
+ dol_syslog("member ".$adh->ref." was created, we redirect to ".$urlback);
+ } else {
+ $error++;
+ $errmsg .= join('
', $adh->errors);
+ }
+ }
}
if (!$error) {