states, and pulls data from the authenticated /api/v1/tenant/packages endpoint.
(resources/js/admin/pages/EventFormPage.tsx, resources/js/admin/api.ts)
- Harden tenant-admin auth flow: prevent PKCE state loss, scope out StrictMode double-processing, add SPA
routes for /event-admin/login and /event-admin/logout, and tighten token/session clearing semantics (resources/js/admin/auth/{context,tokens}.tsx, resources/js/admin/pages/{AuthCallbackPage,LogoutPage}.tsx,
resources/js/admin/router.tsx, routes/web.php)
48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>{{ __('emails.abandoned_checkout.subject_' . $timing, ['package' => $packageName]) }}</title>
|
|
<style>
|
|
.cta-button {
|
|
background-color: #007bff;
|
|
color: white;
|
|
padding: 12px 24px;
|
|
text-decoration: none;
|
|
border-radius: 4px;
|
|
display: inline-block;
|
|
margin: 10px 0;
|
|
}
|
|
.benefits {
|
|
background-color: #f8f9fa;
|
|
padding: 15px;
|
|
border-radius: 4px;
|
|
margin: 15px 0;
|
|
}
|
|
.benefit-item {
|
|
margin: 5px 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>{{ __('emails.abandoned_checkout.greeting', ['name' => $user->fullName]) }}</h1>
|
|
|
|
<p>{{ __('emails.abandoned_checkout.body_' . $timing, ['package' => $packageName]) }}</p>
|
|
|
|
<a href="{{ $resumeUrl }}" class="cta-button">
|
|
{{ __('emails.abandoned_checkout.cta_button') }}
|
|
</a>
|
|
|
|
<p>{{ __('emails.abandoned_checkout.cta_link', ['url' => $resumeUrl]) }}</p>
|
|
|
|
<div class="benefits">
|
|
<h3>{{ __('emails.abandoned_checkout.benefits_title') }}</h3>
|
|
<div class="benefit-item">✓ {{ __('emails.abandoned_checkout.benefit1') }}</div>
|
|
<div class="benefit-item">✓ {{ __('emails.abandoned_checkout.benefit2') }}</div>
|
|
<div class="benefit-item">✓ {{ __('emails.abandoned_checkout.benefit3') }}</div>
|
|
<div class="benefit-item">✓ {{ __('emails.abandoned_checkout.benefit4') }}</div>
|
|
</div>
|
|
|
|
<p>{!! __('emails.abandoned_checkout.footer') !!}</p>
|
|
</body>
|
|
</html>
|