Newsletter Form
This example documents a production-safe newsletter subscription form flow for YuiCraftPlugin storefronts.
Form Contract
The subscription endpoint expects:
- POST request
- valid CSRF token
subscriptionsidentifier- customer email
<form action="{{ url('shop/subscribe') }}" method="post">
{{ csrfInput() }}
{{ hiddenInput('subscriptions', 'newsletter') }}
<div class="form-elem">
<label for="newsletter-email">{{ "E-mail address"|t('yui') }}</label>
<input id="newsletter-email" name="email" type="email" required />
</div>
<button type="submit">{{ "Subscribe"|t('yui') }}</button>
</form>
Validation Requirements
Minimum validation baseline:
- email format validation
- required subscription key
- CSRF validation
- duplicate subscription handling
- clear success/error feedback to user
If form validation services (such as reCAPTCHA integration) are enabled in plugin settings, ensure the required script/tags are present on the page.
Placement Guidance
Good placement options:
- footer subscription area
- blog/article sidebar
- dedicated account marketing/preferences section
Do not:
- hide legal/consent text where required by local policy
- submit via GET
- cache response messages globally
Configuration Reference
Subscription keys and behaviors are configured in the backend marketing/subscription settings.
Reference: Subscription configurations
QA Checklist
- success path stores subscription
- duplicate submissions are handled gracefully
- invalid email returns clear error
- CSRF failures are handled correctly
- analytics/event tracking (if enabled) is consistent