Issue 61
Add the newsletter registration on Register page
This commit is contained in:
@@ -104,6 +104,24 @@ class CustomerController extends BaseFrontController
|
|||||||
|
|
||||||
$this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent);
|
$this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent);
|
||||||
|
|
||||||
|
$newCustomer = $customerCreateEvent->getCustomer();
|
||||||
|
|
||||||
|
// Newsletter
|
||||||
|
if (true === $form->get('newsletter')->getData()) {
|
||||||
|
$newsletterEmail = $newCustomer->getEmail();
|
||||||
|
$nlEvent = new NewsletterEvent($newsletterEmail, $this->getRequest()->getSession()->getLang()->getLocale());
|
||||||
|
$nlEvent->setFirstname($newCustomer->getFirstname());
|
||||||
|
$nlEvent->setLastname($newCustomer->getLastname());
|
||||||
|
|
||||||
|
// Security : Check if this new Email address already exist
|
||||||
|
if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) {
|
||||||
|
$nlEvent->setId($newsletter->getId());
|
||||||
|
$this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent);
|
||||||
|
} else {
|
||||||
|
$this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->processLogin($customerCreateEvent->getCustomer());
|
$this->processLogin($customerCreateEvent->getCustomer());
|
||||||
|
|
||||||
$cart = $this->getCart($this->getRequest());
|
$cart = $this->getCart($this->getRequest());
|
||||||
|
|||||||
@@ -89,6 +89,14 @@ class CustomerCreateForm extends AddressCreateForm
|
|||||||
"for" => "password_confirmation"
|
"for" => "password_confirmation"
|
||||||
)
|
)
|
||||||
))
|
))
|
||||||
|
// Add Newsletter
|
||||||
|
->add("newsletter", "checkbox", array(
|
||||||
|
"label" => Translator::getInstance()->trans('I would like to receive the newsletter or the latest news.'),
|
||||||
|
"label_attr" => array(
|
||||||
|
"for" => "newsletter"
|
||||||
|
),
|
||||||
|
"required" => false
|
||||||
|
))
|
||||||
// Add terms & conditions
|
// Add terms & conditions
|
||||||
->add("agreed", "checkbox", array(
|
->add("agreed", "checkbox", array(
|
||||||
"constraints" => array(
|
"constraints" => array(
|
||||||
|
|||||||
@@ -55,16 +55,7 @@ class CustomerProfileUpdateForm extends CustomerCreateForm
|
|||||||
->remove("password")
|
->remove("password")
|
||||||
->remove("password_confirm")
|
->remove("password_confirm")
|
||||||
// Remove Terms & conditions
|
// Remove Terms & conditions
|
||||||
->remove("agreed")
|
->remove("agreed");
|
||||||
|
|
||||||
// Add Newsletter
|
|
||||||
->add("newsletter", "checkbox", array(
|
|
||||||
"label" => Translator::getInstance()->trans('I would like to receive the newsletter or the latest news.'),
|
|
||||||
"label_attr" => array(
|
|
||||||
"for" => "newsletter"
|
|
||||||
),
|
|
||||||
"required" => false
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -245,6 +245,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
{form_field form=$form field="newsletter"}
|
||||||
|
<div class="form-group group-newsletter{if $error} has-error{/if}">
|
||||||
|
<div class="control-input">
|
||||||
|
<div class="checkbox">
|
||||||
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
|
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}"{if $checked} checked{/if} {if $required} aria-required="true" required{/if}>{$label}
|
||||||
|
</label>
|
||||||
|
{if $error }
|
||||||
|
<span class="help-block">{$message}</span>
|
||||||
|
{/if}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!--/.form-group-->
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
{form_field form=$form field="agreed"}
|
{form_field form=$form field="agreed"}
|
||||||
<div class="form-group group-agreed{if $error} has-error{/if}">
|
<div class="form-group group-agreed{if $error} has-error{/if}">
|
||||||
<div class="control-input">
|
<div class="control-input">
|
||||||
|
|||||||
Reference in New Issue
Block a user