From 43310ba23718a612c3ac4426086a3690224a024a Mon Sep 17 00:00:00 2001 From: Ibrahim Khalil Shakil Date: Mon, 4 Dec 2023 22:08:39 +0600 Subject: [PATCH] updated cart functions --- .../Backend/Courses/CourseController.php | 2 +- app/Http/Controllers/CartController.php | 26 ++- resources/views/frontend/cart.blade.php | 221 +++++++++--------- routes/web.php | 1 + 4 files changed, 136 insertions(+), 114 deletions(-) diff --git a/app/Http/Controllers/Backend/Courses/CourseController.php b/app/Http/Controllers/Backend/Courses/CourseController.php index c7b12f0..238e8e4 100644 --- a/app/Http/Controllers/Backend/Courses/CourseController.php +++ b/app/Http/Controllers/Backend/Courses/CourseController.php @@ -131,7 +131,7 @@ public function update(UpdateRequest $request, $id) $course->instructor_id = $request->instructorId; $course->type = $request->courseType; $course->price = $request->coursePrice; - $course->old_price = $request->courseOldPrice; + $course->old_price = $request->courseOldPrice; $course->subscription_price = $request->subscriptionPrice; $course->start_from = $request->start_from; $course->duration = $request->duration; diff --git a/app/Http/Controllers/CartController.php b/app/Http/Controllers/CartController.php index 4d07f46..6a040c6 100644 --- a/app/Http/Controllers/CartController.php +++ b/app/Http/Controllers/CartController.php @@ -4,13 +4,15 @@ use Illuminate\Http\Request; use App\Models\Course; +use App\Models\CourseCategory; class CartController extends Controller { public function index() { - $courses = Course::all(); - return view('frontend.searchCourse', compact('courses', 'category')); + $course = Course::all(); + $category= CourseCategory::all(); + return view('frontend.searchCourse', compact('course', 'category')); } public function cart() @@ -31,7 +33,9 @@ public function addToCart($id) "title_en" => $course->title_en, "quantity" => 1, "price" => $course->price, - "image" => $course->image + "old_price" => $course->old_price, + "image" => $course->image, + "instructor" => $course->instructor ? $course->instructor->name_en : 'Unknown Instructor', ]; } @@ -49,6 +53,18 @@ public function update(Request $request) } } + // public function remove(Request $request) + // { + // if ($request->id) { + // $cart = session()->get('cart'); + // if (isset($cart[$request->id])) { + // unset($cart[$request->id]); + // session()->put('cart', $cart); + // } + // session()->flash('success', 'Product removed successfully'); + // } + // } + public function remove(Request $request) { if ($request->id) { @@ -57,7 +73,9 @@ public function remove(Request $request) unset($cart[$request->id]); session()->put('cart', $cart); } - session()->flash('success', 'Product removed successfully'); + return response()->json(['success' => true], 200); } + return response()->json(['error' => 'Invalid request'], 400); } + } diff --git a/resources/views/frontend/cart.blade.php b/resources/views/frontend/cart.blade.php index ab0dee4..849c90d 100644 --- a/resources/views/frontend/cart.blade.php +++ b/resources/views/frontend/cart.blade.php @@ -1,129 +1,132 @@ @extends('frontend.layouts.app') -@section('body-attr') style="background-color: #ebebf2;" @endsection +@section('body-attr') + style="background-color: #ebebf2;" +@endsection @section('content') - -
-
- + +
+
+ +
-
- + - -
-
-
-
-
2 Courses in Cart
- @php $total = 0 @endphp - @if(session('cart')) - @foreach(session('cart') as $id => $details) - @php $total += $details['price'] * $details['quantity'] @endphp -
-
- product -
-
-
{{ $details['title_en'] }}
-

By Kevin Gilbert

-
-

- ${{ $details['price'] }} $24.99 -

-
- - - + +
+
+
+
+
2 Courses in Cart
+ @php $total = 0 @endphp + @if (session('cart')) + @foreach (session('cart') as $id => $details) + @php $total += $details['price'] * $details['quantity'] @endphp +
+
+ course image +
+
+
{{ $details['title_en'] }}
+

By {{ $details['instructor'] }}

+
+

+ {{ $details['price'] ? '$' . $details['price'] : 'Free' }} + {{ $details['old_price'] ? '$' . $details['old_price'] : '' }} +

+
+ + + +
+
+
-
-
+ @endforeach + @endif
- @endforeach - @endif -
-
-
Summery
-
-
-
Subtotal
-

$49.99

-
-
-
Coupon Discount
-

15%

-
-
-
taxes
-

9.99

-
-
-
Total:
-

$36.49

-
-
- Checkout - -
- - +
+
Summery
+
+
+
Subtotal
+

{{ '$' . number_format((float) $total, 2) }}

- +
+
Coupon Discount
+

0.00%

+
+
+
taxes
+

0.00

+
+
+
Total:
+

{{ '$' . number_format((float) $total, 2) }}

+
+
+ Checkout + +
+ + +
+
+
-
-
- + + @endsection -@section('scripts') - -@endsection \ No newline at end of file + }); + + $(".remove-from-cart").click(function(e) { + e.preventDefault(); + + var ele = $(this); + + if (confirm("Are you sure want to remove?")) { + $.ajax({ + url: '{{ route('remove.from.cart') }}', + method: "DELETE", + data: { + _token: '{{ csrf_token() }}', + id: ele.data('id') // Use data-id attribute + }, + success: function(response) { + window.location.reload(); + } + }); + } + }); + +@endpush diff --git a/routes/web.php b/routes/web.php index 46ec42c..7b9996b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -126,3 +126,4 @@ Route::get('add-to-cart/{id}', [CartController::class, 'addToCart'])->name('add.to.cart'); Route::patch('update-cart', [CartController::class, 'update'])->name('update.cart'); Route::delete('remove-from-cart', [CartController::class, 'remove'])->name('remove.from.cart'); +