Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

40 lines
1.3KB

  1. <?php
  2. namespace App\Controller\Frontend;
  3. use App\Controller\AbstractController;
  4. use App\Form\SubscribeNewsletterForm;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Welp\MailchimpBundle\Exception\MailchimpException;
  7. use Welp\MailchimpBundle\Event\SubscriberEvent;
  8. use Welp\MailchimpBundle\Subscriber\Subscriber;
  9. class NewsletterController extends AbstractController
  10. {
  11. public function subscribeNewsletter(Request $request)
  12. {
  13. $form = $this->createForm(SubscribeNewsletterForm::class) ;
  14. $form->handleRequest($request) ;
  15. if($form->isSubmitted() && $form->isValid()) {
  16. $data = $form->getData() ;
  17. $email = $data['email'] ;
  18. try {
  19. // api mailchimp
  20. $subscriber = new Subscriber($email);
  21. $this->container->get('event_dispatcher')->dispatch(
  22. SubscriberEvent::EVENT_SUBSCRIBE,
  23. new SubscriberEvent('91a235f34c', $subscriber)
  24. );
  25. $this->addFlash('success', 'Votre inscription à notre newsletter a bien été prise en compte.');
  26. }
  27. catch(MailchimpException $exception) {
  28. $this->addFlash('error', $exception->getMessage());
  29. }
  30. }
  31. return $this->redirectToRoute('home') ;
  32. }
  33. }