public function cartItemCount() { $count = 0; $cart = $_SESSION['lms_cart']; $i = 0; foreach ($cart as $id_course => $extra) { if (is_array($extra)) { if (isset($extra['classroom'])) { $count += count($extra['classroom']); } else { $count += count($extra['edition']); } } else { $count++; } } if ($count == 0) { Learning_Cart::emptyCart(); } return $count; }
/** * Return the complete code for the lms cart * @return <string> */ public static function cart() { require_once _lms_ . '/lib/lib.cart.php'; Learning_Cart::init(); $html = '<div id="cart_box" class="cart_box" style="display:' . (Learning_Cart::cartItemCount() == 0 ? 'none' : 'inline') . ';">'; $html .= '<a id="cart_action" href="index.php?r=cart/show"><span>' . Lang::t('_SHOPPING_CART', 'catalogue') . ' <sub class="num_notify" id="cart_element">' . Learning_Cart::cartItemCount() . '</sub></span></a></div>'; return $html; }
public function addToCart() { $id_course = Get::req('id_course', DOTY_INT, 0); $id_date = Get::req('id_date', DOTY_INT, 0); $id_edition = Get::req('id_edition', DOTY_INT, 0); if ($id_edition != 0) { $_SESSION['lms_cart'][$id_course]['edition'][$id_edition] = $id_edition; } elseif ($id_date != 0) { $_SESSION['lms_cart'][$id_course]['classroom'][$id_date] = $id_date; } else { $_SESSION['lms_cart'][$id_course] = $id_course; } $res['success'] = true; $res['message'] = UIFeedback::info(Lang::t('_COURSE_ADDED_IN_CART', 'catalogue'), true); if ($id_edition != 0 || $id_date != 0) { $must_change_status = $this->model->controlSubscriptionRemaining($id_course); $res['new_status'] = ''; if (!$must_change_status) { $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_ALL_EDITION_BUYED', 'catalogue') . '</p>'; } } else { $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_COURSE_IN_CART', 'catalogue') . '</p>'; } require_once _lms_ . '/lib/lib.cart.php'; $res['cart_element'] = '' . Learning_Cart::cartItemCount() . ''; $res['num_element'] = Learning_Cart::cartItemCount(); $res['cart_message'] = Lang::t('_COURSE_ADDED_IN_CART', 'catalogue'); echo $this->json->encode($res); }
public function makeOrder() { $wire = Get::req('wire', DOTY_INT, 0); $cart = $_SESSION['lms_cart']; require_once _lms_ . '/lib/lib.cart.php'; if (Learning_Cart::cartItemCount() > 0) { $id_trans = $this->model->createTransaction(); } else { $id_trans = false; } if ($id_trans === false) { $result = array('success' => false, 'message' => UIFeedback::error(Lang::t('_ERROR_CREATE_TRANS', 'catalogue'), true)); } else { $course_info = $this->model->getCartList(true); $total_price = 0; foreach ($cart as $id_course => $extra) { $docebo_course = new DoceboCourse($id_course); require_once _lms_ . '/admin/models/SubscriptionAlms.php'; $level_idst =& $docebo_course->getCourseLevel($id_course); if (count($level_idst) == 0 || $level_idst[1] == '') { $level_idst =& $docebo_course->createCourseLevel($id_course); } $waiting = 1; $this->acl_man->addToGroup($level_idst[3], Docebo::user()->getIdSt()); if (isset($extra['classroom'])) { foreach ($extra['classroom'] as $id_date) { $model = new SubscriptionAlms($id_course, 0, $id_date); if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) { $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt()); } elseif ($this->model->addTransactionCourse($id_trans, $id_course, $id_date, 0, $course_info[$id_course . '_' . $id_date . '_0'])) { unset($_SESSION['lms_cart'][$id_course]['classroom'][$id_date]); $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course; sql_query($query); $total_price += $course_info[$id_course . '_' . $id_date . '_0']['price']; } } } elseif (isset($extra['edition'])) { foreach ($extra['edition'] as $id_edition) { $model = new SubscriptionAlms($id_course, $id_edition, 0); if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) { $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt()); } elseif ($this->model->addTransactionCourse($id_trans, $id_course, 0, $id_edition, $course_info[$id_course . '_0_' . $id_edition])) { unset($_SESSION['lms_cart'][$id_course]['edition'][$id_edition]); $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course; sql_query($query); $total_price += $course_info[$id_course . '_0_' . $id_edition]['price']; } } } else { $model = new SubscriptionAlms($id_course, 0, 0); if (!$model->subscribeUser(Docebo::user()->getIdSt(), 3, $waiting)) { $this->acl_man->removeFromGroup($level_idst[3], Docebo::user()->getIdSt()); } elseif ($this->model->addTransactionCourse($id_trans, $id_course, 0, 0, $course_info[$id_course . '_0_0'])) { unset($_SESSION['lms_cart'][$id_course]); $query = "UPDATE %lms_courseuser" . " SET status = '-2'" . " WHERE idUser = "******" AND idCourse = " . $id_course; sql_query($query); $total_price += $course_info[$id_course . '_0_0']['price']; } } } require_once _lms_ . '/lib/lib.cart.php'; if (Learning_Cart::cartItemCount() == 0) { $_SESSION['lms_cart'] = array(); } $_SESSION['cart_transaction'] = $id_trans; $result = array('success' => true, 'message' => UIFeedback::info(Lang::t('_TRANS_CREATED', 'catalogue'), true), 'id_transaction' => $id_trans, 'total_price' => $total_price, 'link' => Get::sett('url') . _folder_lms_ . '/index.php?r=cart/show&id_transaction=' . $id_trans . '&cart=' . $_SESSION['cart_id']); } if ($wire) { if ($result['success']) { Util::jump_to('index.php?r=cart/wireInfo&id_transaction=' . $id_trans); } Util::jump_to('index.php?r=cart/show&error=1'); } else { echo $this->json->encode($result); } }