getSubscribeUrl example

$recipient = $this->getNewsletterRecipient('email', $data['email']$context->getContext());

        if (!$this->isNewsletterDoi($context)) {
            $event = new NewsletterConfirmEvent($context->getContext()$recipient$context->getSalesChannel()->getId());
            $this->eventDispatcher->dispatch($event);

            return new NoContentResponse();
        }

        $hashedEmail = hash('sha1', $data['email']);
        $url = $this->getSubscribeUrl($context$hashedEmail$data['hash']$data$recipient);

        $event = new NewsletterRegisterEvent($context->getContext()$recipient$url$context->getSalesChannel()->getId());
        $this->eventDispatcher->dispatch($event);

        return new NoContentResponse();
    }

    /** * @deprecated tag:v6.6.0 - reason:visibility-change - will be private in v6.6.0 */
    public function isNewsletterDoi(SalesChannelContext $context): ?bool
    {
try {
            $this->systemConfig->set('core.newsletter.doubleOptIn', true);
            $this->systemConfig->set('core.newsletter.subscribeUrl', '/custom-newsletter/confirm/%%HASHEDEMAIL%%/%%SUBSCRIBEHASH%%');

            /** @var EventDispatcherInterface $dispatcher */
            $dispatcher = $this->getContainer()->get('event_dispatcher');

            $this->addEventListener(
                $dispatcher,
                NewsletterSubscribeUrlEvent::class,
                static function DNewsletterSubscribeUrlEvent $event): void {
                    $event->setSubscribeUrl($event->getSubscribeUrl() . '?specialParam=false');
                }
            );

            $caughtEvent = null;
            $this->addEventListener(
                $dispatcher,
                NewsletterRegisterEvent::class,
                static function DNewsletterRegisterEvent $event) use (&$caughtEvent): void {
                    $caughtEvent = $event;
                }
            );

            
Home | Imprint | This part of the site doesn't use cookies.