public function subscribe(RequestDataBag
$dataBag, SalesChannelContext
$context, bool
$validateStorefrontUrl = true
): NoContentResponse
{ $doubleOptInDomain =
$this->systemConfigService->
getString( 'core.newsletter.doubleOptInDomain',
$context->
getSalesChannelId() );
if ($doubleOptInDomain !== ''
) { $dataBag->
set('storefrontUrl',
$doubleOptInDomain);
$validateStorefrontUrl = false;
} $validator =
$this->
getOptInValidator($dataBag,
$context,
$validateStorefrontUrl);
$this->validator->
validate($dataBag->
all(),
$validator);
if (($request =
$this->requestStack->
getMainRequest()) !== null &&
$request->
getClientIp() !== null
) { try { $this->rateLimiter->
ensureAccepted(RateLimiter::NEWSLETTER_FORM,
$request->
getClientIp());
} catch (RateLimitExceededException
$e) { if (!Feature::
isActive('v6.6.0.0'
)) { throw $e;
}