Redirect after Login/Sign In E-commerce Checkout
Dear all,
I have a small app in wich a user can buy one or more courses.
For obvious reasons, I ask every user to log in or register before accessing the checkout page.
Route::group(['middleware' => ['auth']], function () { Route::get('/checkout', 'CheckoutController@index')->name('checkout.index'); Route::post('/checkout/charge', 'CheckoutController@charge')->name('checkout.charge'); Route::get('/checkout/merci', 'CheckoutController@thankYou')->name('checkout.thankyou'); });
The only problem is that when a user logs in, he's redirected to his dashboard as I specified in my LoginController (4 different roles) :
protected function redirectTo() { if (Auth::user()->roles->pluck('name')->contains('Admin')) { return '/admin/panel'; } elseif (Auth::user()->roles->pluck('name')->contains('Professeur')) { return '/teacher/panel'; } elseif (Auth::user()->roles->pluck('name')->contains('Responsable')) { return '/parent/panel'; } elseif (Auth::user()->roles->pluck('name')->contains('Étudiant')) { return '/student/panel'; } }
RegisterController :
protected function create(array $data) { $user = User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]);
$role = Role::select('id')->where('name', 'Responsable')->first();
$user->roles()->attach($role);
return $user;
}
What I would like is the user to be redirected to the checkout page right after logging in or registering and I really don't know how to do that...
Here's my CheckoutController :
public function charge(Request $request) { \Stripe\Stripe::setApiKey(env('STRIPE_PRIVATE_KEY'));
try {
$charge = \Stripe\Charge::create([
'amount' => Cart::total() * 100,
'currency' => 'EUR',
'description' => 'Paiement Via la plateforme Cours Thalès',
'source' => $request->input('stripeToken'),
// 'receipt_email' => Auth::user()->email
]);
foreach (Cart::content() as $item) {
Payment::create([
'formation_id' => $item->model->id,
'amount' => $item->model->price,
'email' => Auth::user()->email
]);
}
session()->flush();
return redirect()->route('checkout.thankyou')->with('success', 'Paiement accepté');
} catch (\Stripe\Exception\CardErrorException $error) {
throw $error;
}
}
Thank you all !
Please or to participate in this conversation.