/** * Бесплатная доставка если проходит по условию в найстройках. * @param id - id доставки * @return numeric */ public function getCostDelivery($id) { $delivery = $this->getDeliveryById($id); $cart = new Models_Cart(); $cartSumm = $cart->getTotalSumm(); return $delivery['cost']; }
/** * Бесплатная доставка если проходит по условию в найстройках. * @param id - id доставки * @return numeric */ public function getCostDelivery($id) { $delivery = $this->getDeliveryById($id); $cart = new Models_Cart(); $cartSumm = $cart->getTotalSumm(); if ($delivery['free'] != 0 && $delivery['free'] <= $cartSumm) { return 0; } return $delivery['cost']; }
/** * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя. * * @param array $arrayData массив в введнными пользователем данными. * @return bool|string $error сообщение с ошибкой в случае некорректных данных. */ public function isValidData($arrayData) { $result = null; // Если электронный адрес зарегистрирован в системе. $currenUser = USER::getThis(); if ($currenUser->email != trim($arrayData['email'])) { if (USER::getUserInfoByEmail($arrayData['email'])) { $error = "<span class='user-exist'>Пользователь с таким email существует. \n Пожалуйста <a href='" . SITE . "/enter'>войдите в систему</a> используя \n свой электронный адрес и пароль!</span>"; // Иначе новый пользователь. } else { $this->newUser = true; } } // Корректность емайл. if (!preg_match('/^[-._a-z0-9]+@(?:[a-z0-9][-a-z0-9]{0,61}+\\.)+[a-z]{2,6}$/', $arrayData['email'])) { $error = "<span class='order-error-email'>E-mail введен некорректно!</span>"; } // Наличие телефона. if (empty($arrayData['phone'])) { $error = "<span class='no-phone'>Введите верный номер телефона!</span>"; } // Если нет ошибок, то заносит информацию в поля класса. if (!empty($error)) { $result = $error; } else { $this->fio = trim($arrayData['fio']); $this->email = trim($arrayData['email']); $this->phone = trim($arrayData['phone']); $this->address = trim($arrayData['address']); $this->info = trim($arrayData['info']); $this->delivery = $arrayData['delivery']; $deliv = new Delivery(); $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']); $this->payment = $arrayData['payment']; $cart = new Models_Cart(); $this->summ = $cart->getTotalSumm(); $result = false; $this->addNewUser(); } $args = func_get_args(); return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args); }
/** * Возвращает массив доступных способов доставки. * @return mixed массив доступных способов доставки . */ public function getDelivery() { $result = array(); // Модель для работы заказом. $model = new Models_Order(); $cart = new Models_Cart(); $cartSumm = $cart->getTotalSumm(); foreach ($model->getDeliveryMethod() as $id => $delivery) { if ($delivery['free'] != 0 && $delivery['free'] <= $cartSumm) { $delivery['cost'] = 0; } if (!$delivery['activity']) { continue; } if (isset($_POST['delivery']) && $_POST['delivery'] == $id) { $delivery['checked'] = 1; } // Заполнение массива способов доставки. $result[$delivery['id']] = $delivery; } // Если доступен только один способ доставки, то он будет выделен. if (1 === count($result)) { $deliveryId = array_keys($result); $result[$deliveryId[0]]['checked'] = 1; } return $result; }
/** * Проверяет корректность ввода данных в форму обратной связи и регистрацию в системе покупателя. * * @param array $arrayData массив в введнными пользователем данными. * @return bool|string $error сообщение с ошибкой в случае некорректных данных. */ public function isValidData($arrayData, $reqire = array('email', 'phone', 'payment'), $createUser = true, $error = null) { $result = null; $this->newUser = false; if ($createUser) { // Если электронный адрес зарегистрирован в системе. $currenUser = USER::getThis(); if ($currenUser->email != trim($arrayData['email'])) { if (USER::getUserInfoByEmail($arrayData['email'])) { $error = "<span class='user-exist'>Пользователь с таким email существует. \r\n Пожалуйста, <a href='" . SITE . "/enter'>войдите в систему</a> используя \r\n свой электронный адрес и пароль!</span>"; // Иначе новый пользователь. } else { $this->newUser = true; } } } if (in_array('email', $reqire) && MG::getSetting('requiredFields') == 'true') { // Корректность емайл. if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $arrayData['email'])) { $error = "<span class='order-error-email'>E-mail введен некорректно!</span>"; } } if (in_array('phone', $reqire) && MG::getSetting('requiredFields') == 'true') { // Наличие телефона. if (empty($arrayData['phone'])) { $error = "<span class='no-phone'>Введите верный номер телефона!</span>"; } } if (in_array('payment', $reqire)) { // Неуказан способ оплаты if (empty($arrayData['payment'])) { $error = "<span class='no-phone'>Выберите способ оплаты!</span>"; } } if (CAPTCHA_ORDER == '1') { // если при оформлении капча if (empty($arrayData['capcha']) || strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) { $error = "<span class='no-phone'>Неверно введен код с картинки!</span>"; } } // Если нет ошибок, то заносит информацию в поля класса. if (!empty($error)) { $result = $error; } else { $this->fio = trim($arrayData['fio']); $this->email = trim($arrayData['email']); $this->phone = trim($arrayData['phone']); $this->address = trim($arrayData['address']); $this->info = trim($arrayData['info']); $this->delivery = $arrayData['delivery']; $this->dateDelivery = $arrayData['date_delivery']; $deliv = new Delivery(); $this->delivery_cost = $deliv->getCostDelivery($arrayData['delivery']); $this->payment = $arrayData['payment']; $cart = new Models_Cart(); $this->summ = $cart->getTotalSumm(); $this->ip = $_SERVER['REMOTE_ADDR']; $result = false; $this->addNewUser(); } $args = func_get_args(); $args['this'] =& $this; return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $result, $args); }