nicer package layout, also in checkout step 1, fixed missing registration language strings, registration error handling, email verification redirect, email verification error handling and messaging,
This commit is contained in:
@@ -13,12 +13,61 @@ class VerifyEmailController extends Controller
|
||||
*/
|
||||
public function __invoke(EmailVerificationRequest $request): RedirectResponse
|
||||
{
|
||||
if ($request->user()->hasVerifiedEmail()) {
|
||||
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
|
||||
if (! $request->user()->hasVerifiedEmail()) {
|
||||
$request->fulfill();
|
||||
}
|
||||
|
||||
$request->fulfill();
|
||||
return $this->redirectAfterVerification($request);
|
||||
}
|
||||
|
||||
return redirect()->intended(route('dashboard', absolute: false).'?verified=1');
|
||||
protected function redirectAfterVerification(EmailVerificationRequest $request): RedirectResponse
|
||||
{
|
||||
$redirectToCheckout = $request->session()->pull('checkout.verify_redirect');
|
||||
|
||||
if (! $redirectToCheckout && $request->user()->pending_purchase) {
|
||||
$packageId = $request->session()->pull('checkout.pending_package_id');
|
||||
|
||||
if (! $packageId) {
|
||||
$packageId = optional($request->user()->tenant)
|
||||
?->packages()
|
||||
->latest('tenant_packages.created_at')
|
||||
->value('packages.id');
|
||||
}
|
||||
|
||||
if ($packageId) {
|
||||
$redirectToCheckout = route('checkout.show', ['package' => $packageId]);
|
||||
}
|
||||
}
|
||||
|
||||
$this->flashVerificationSuccess($request, (bool) $redirectToCheckout);
|
||||
|
||||
if ($redirectToCheckout) {
|
||||
$request->session()->forget('checkout.pending_package_id');
|
||||
$separator = str_contains($redirectToCheckout, '?') ? '&' : '?';
|
||||
|
||||
return redirect()->to($redirectToCheckout.$separator.'verified=1');
|
||||
}
|
||||
|
||||
$fallbackLogin = route('marketing.login');
|
||||
$separator = str_contains($fallbackLogin, '?') ? '&' : '?';
|
||||
|
||||
return redirect()->intended($fallbackLogin.$separator.'verified=1');
|
||||
}
|
||||
|
||||
private function flashVerificationSuccess(EmailVerificationRequest $request, bool $forCheckout): void
|
||||
{
|
||||
$message = $forCheckout
|
||||
? __('auth.verification.checkout_success_message')
|
||||
: __('auth.verification.success_message');
|
||||
|
||||
$request->session()->flash('verification', [
|
||||
'status' => 'success',
|
||||
'title' => __('auth.verification.success_title'),
|
||||
'message' => $message,
|
||||
]);
|
||||
|
||||
if (! $forCheckout) {
|
||||
$request->session()->flash('status', __('auth.verification.success_message'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user