role == 'admin') { $payment['admin_revenue'] = $payment_details['payable_amount']; } else { $payment['instructor_revenue'] = $payment_details['payable_amount'] * (get_settings('instructor_revenue') / 100); $payment['admin_revenue'] = $payment_details['payable_amount'] - $payment['instructor_revenue']; } $payment['course_id'] = $payment_details['items'][$i]['id']; $payment['tax'] = $payment_details['tax']; $payment['amount'] = $course_discount ? $course_discount : $price; $payment['user_id'] = auth()->user()->id; $payment['payment_type'] = $identifier; $payment['coupon'] = $payment_details['coupon']; // insert payment history $payment_history = DB::table('payment_histories')->insert($payment); // if payment has done then enroll user if ($payment_history) { $enroll['course_id'] = $payment_details['items'][$i]['id']; $enroll['user_id'] = $payment_details['custom_field']['gifted_user_id'] ? $payment_details['custom_field']['gifted_user_id'] : auth()->user()->id; $enroll['enrollment_type'] = "paid"; $enroll['entry_date'] = time(); $course_details = get_course_info($payment_details['items'][$i]['id']); if ($course_details->expiry_period > 0) { $days = $course_details->expiry_period * 30; $enroll['expiry_date'] = strtotime("+" . $days . " days"); } else { $enroll['expiry_date'] = null; } // insert a new enrollment DB::table('enrollments')->insert($enroll); } } // if payment and enroll has been done then remove items from cart if ($payment_history && $enroll) { $cart_items = $payment_details['custom_field']['cart_id']; foreach ($cart_items as $item) { DB::table('cart_items')->where('user_id', auth()->user()->id)->where('course_id', $item)->delete(); } } $remove_session_item[] = 'payment_details'; Session::forget($remove_session_item); Session::flash('success', 'Course enrolled successfully.'); return redirect()->route('my.courses'); } }