/** * Проверяет корректность введенных данных в форме регистрации. * * @param array $userData массив данных пользователя. * @param string $mode режим проверки данных (full|pass) полный (по умолчанию) или только пароль. * @return string ошибка в случае не верного ввода данных в одном из полей. */ public function validDataForm($userData, $mode = 'full') { // Проверка электронного адреса. if (USER::getUserInfoByEmail($userData['email']) && 'full' == $mode) { $error .= '<span class="email-in-use">Указанный email уже используется</span>'; } // Пароль должен быть больше 5-ти символов. if (strlen($userData['pass']) < 5) { $error .= '<span class="passError">Пароль менее 5 символов</span>'; } // Проверяем равенство введенных паролей. if (URL::getQueryParametr('pass2') != $userData['pass']) { $error .= '<span class="wrong-pass">Введенные пароли не совпадают</span>'; } if ('full' == $mode) { // Проверка электронного адреса. if (!preg_match('/^[-._a-zA-Z0-9]+@(?:[a-zA-Z0-9][-a-zA-Z0-9]{0,61}+\\.)+[a-zA-Z]{2,6}$/', $userData['email'])) { $error .= '<span class="errorEmail">Неверно заполнено email</span>'; } if (MG::getSetting('useCaptcha') == "true") { if (strtolower(URL::getQueryParametr('capcha')) != strtolower($_SESSION['capcha'])) { $error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>"; } } } $args = func_get_args(); return MG::createHook(__CLASS__ . "_" . __FUNCTION__, $error, $args); }
function __construct() { if (User::isAuth()) { MG::redirect('/'); } // Шаг первый. $form = 1; $fPass = new Models_Forgotpass(); // Ввторой шаг, производящий проверку введеного электронного адреса. if (URL::getQueryParametr('forgotpass')) { $email = URL::getQueryParametr('email'); if ($userInfo = USER::getUserInfoByEmail($email)) { //Если введенных адрес совпадает с зарегистрированным в системе, то $form = 0; $message = 'Инструкция по восстановлению пароля была отправлена на <strong>' . $email . '</strong>'; $hash = $fPass->getHash($email); //а) Случайный хэш заносится в БД. $fPass->sendHashToDB($email, $hash); $siteName = MG::getOption('sitename'); $emailMessage = MG::layoutManager('email_forgot', array('siteName' => $siteName, 'email' => $email, 'hash' => $hash, 'userId' => $userInfo->id, 'link' => SITE . '/forgotpass?sec=' . $hash . '&id=' . $userInfo->id)); $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $email, 'subject' => 'Восстановление пароля на сайте ' . $siteName, 'body' => $emailMessage, 'html' => true); //б) На указанный электронный адрес отправляется письмо со сылкой на страницу восстановления пароля. $fPass->sendUrlToEmail($emailData); } else { $form = 0; $error = 'К сожалению, такой логин не найден<br> Если вы уверены, что данный логин существует, пожалуйста, свяжитесь с нами.'; } } // Шаг 3. Обработка перехода по ссылки. Принимается id пользователя и сгенерированный хэш. if ($_GET) { $userInfo = USER::getUserById(URL::getQueryParametr('id')); $hash = URL::getQueryParametr('sec'); // Если присланный хэш совпадает с хэшом из БД для соответствующего id. if ($userInfo->restore == $hash) { $form = 2; // Меняе в БД случайным образом хэш, делая невозможным повторный переход по ссылки. $fPass->sendHashToDB($userInfo->email, $fPass->getHash('0')); $_SESSION['id'] = URL::getQueryParametr('id'); } else { $form = 0; $error = 'Некорректная ссылка. Повторите заново запрос восстановления пароля.'; } } // Шаг 4. обрабатываем запрос на ввод нового пароля if (URL::getQueryParametr('chengePass')) { $form = 2; $person = new Models_Personal(); $msg = $person->changePass(URL::getQueryParametr('newPass'), $_SESSION['id'], true); if ('Пароль изменен' == $msg) { $form = 0; $message = $msg . '! ' . 'Вы можете войти в личный кабинет по адресу <a href="' . SITE . '/enter" >' . SITE . '/enter</a>'; $fPass->activateUser($_SESSION['id']); unset($_SESSION['id']); } else { $error = $msg; } } $this->data = array('error' => $error, 'message' => $message, 'form' => $form, 'meta_title' => 'Восстановление пароля', 'meta_keywords' => $model->currentCategory['meta_keywords'] ? $model->currentCategory['meta_keywords'] : "забыли пароль, восстановить пароль, восстановление пароля", 'meta_desc' => $model->currentCategory['meta_desc'] ? $model->currentCategory['meta_desc'] : "Если вы забыли пароль от личного кабинета, его модно восстановить с помощью формы восстановления паролей."); }
/** * Возвращает сообщение о статусе заказа "Подтвержден". * @param type $pay - id заказа. * @return mixed - сообщение и email пользователя. */ public function confirmOrder($id) { // Модель для работы заказом. $model = new Models_Order(); // Информация о заказе по переданному id. $orderInfo = $model->getOrder('`' . PREFIX . 'order`.id = "' . $id . '"'); $hash = URL::getQueryParametr('sec'); // Информация о пользователе, сделавший заказ . $orderUser = USER::getUserInfoByEmail($orderInfo[$id]['user_email']); // Если присланный хэш совпадает с хэшом из БД для соответствующего id. if ($orderInfo[$id]['confirmation'] == $hash) { if ($orderInfo[$id]['hash'] == '') { $msg = 'Посмотреть статус заказа Вы можете в <a href="' . SITE . '/personal">личном кабинете</a>.'; } else { $msg = 'Следить за статусом заказа Вы можете по ссылке <br> ' . '<a href="' . SITE . '/order?hash=' . $orderInfo[$id]['hash'] . '">' . SITE . '/order?hash=' . $orderInfo[$id]['hash'] . '</a>'; } // Если статус заказа "Не подтвержден". if (0 == $orderInfo[$id]['status_id']) { // Подтверждаем заказ. $orderStatus = 1; // если оплата выбрана наложенным платежём, то статус заказа изменяем на "в доставке" if ($orderInfo[$id]['payment_id'] == 3) { $orderStatus = 3; } $model->sendStatusToEmail($id, $orderStatus); $model->setOrderStatus($id, $orderStatus); $orderNumber = $orderInfo[$id]['number']; $orderId = $id; $msg = 'Ваш заказ №' . $orderNumber . ' подтвержден и передан на обработку. <br> ' . $msg; } else { $msg = 'Заказ уже подтвержден и находится в работе. <br> ' . $msg; } if (!$orderUser->activity) { $userEmail = $orderUser->email; $_SESSION['id'] = $orderUser->id; } } else { $msg = 'Некорректная ссылка.<br> Заказ не подтвержден<br>'; } $result = array('msg' => $msg, 'userEmail' => $userEmail); return $result; }
/** * Выводит на экран печатную форму для печати заказа в админке. * @param int $id - id заказа. * @param boolean $sign использовать ли подпись. * @return array */ public function printOrder($id, $sign = true) { $orderInfo = $this->getOrder('id=' . DB::quote($id, true)); $order = $orderInfo[$id]; $perOrders = unserialize(stripslashes($order['order_content'])); $currency = MG::getSetting('currency'); $totSumm = $order['summ'] + $order['cost']; $paymentArray = $this->getPaymentMethod($order['payment_id']); $order['name'] = $paymentArray['name']; $propertyOrder = MG::getOption('propertyOrder'); $propertyOrder = stripslashes($propertyOrder); $propertyOrder = unserialize($propertyOrder); $paramArray = $this->getParamArray(7, $order['id'], $order['summ']); foreach ($paramArray as $k => $field) { $paramArray[$k]['value'] = htmlentities($paramArray[$k]['value'], ENT_QUOTES, "UTF-8"); } $customer = unserialize(stripslashes($order['yur_info'])); $customerInfo = $customer['inn'] . ', ' . $customer['kpp'] . ', ' . $customer['nameyur'] . ', ' . $customer['adress'] . ', ' . $customer['bank'] . ', ' . $customer['bik'] . ', ' . $customer['ks'] . ', ' . $customer['rs'] . ', ' . $customer['nameyur']; //var_dump(json_decode($order['yur_info'])); //viewData(json_decode(stripslashes($order['yur_info']))); $ylico = false; if (empty($customer['inn']) || empty($customer['bik'])) { $fizlico = true; $userInfo = USER::getUserInfoByEmail($order['user_email']); $customerInfo = $order['name_buyer'] . ',' . $order['address'] . ', тел. ' . $order['phone'] . ', ' . $order['email']; } // $customerInfo = '0'; $customerInfo = htmlspecialchars($customerInfo); $data['propertyOrder'] = $propertyOrder; $data['order'] = $order; $data['customerInfo'] = $customerInfo; $data['perOrders'] = $perOrders; $data['currency'] = $currency; $html = MG::layoutManager('print_order', $data); return $html; }
/** * Регистрация на сайте и в таблице uLogin * @param Array $u_user - данные о пользователе, полученные от uLogin * @param int $in_db - при значении 1 необходимо переписать данные в таблице uLogin * @return bool|int|Error */ function ulogin_registration_user($u_user, $in_db = 0) { if (!isset($u_user['email'])) { die("Через данную форму выполнить вход/регистрацию невозможно. </br>" . "Сообщиете администратору сайта о следующей ошибке: </br></br>" . "Необходимо указать <b>email</b> в возвращаемых полях <b>uLogin</b>"); } $u_user['network'] = isset($u_user['network']) ? $u_user['network'] : ''; $u_user['phone'] = isset($u_user['phone']) ? $u_user['phone'] : ''; // данные о пользователе есть в ulogin_table, но отсутствуют в Базе if ($in_db == 1) { DB::query("DELETE FROM " . PREFIX . "ulogin WHERE `identity` = " . DB::quote($u_user['identity'])); } $user_id = USER::getUserInfoByEmail($u_user['email']); $user_id = $user_id->id; // $check_m_user == true -> есть пользователь с таким email $check_m_user = $user_id > 0 ? true : false; $current_user = USER::isAuth() ? USER::getThis() : 0; // $isLoggedIn == true -> ползователь онлайн $isLoggedIn = isset($current_user->id) && $current_user->id > 0 ? true : false; if (!$check_m_user && !$isLoggedIn) { // отсутствует пользователь с таким email в базе -> регистрация $date = explode('.', $u_user['bdate']); $insert_user = array('pass' => md5(microtime(true)), 'email' => $u_user['email'], 'role' => 2, 'name' => $u_user['first_name'], 'sname' => $u_user['last_name'], 'address' => '', 'phone' => $u_user['phone'], 'birthday' => $date['2'] . '-' . $date['1'] . '-' . $date['0'], 'activity' => 1); $user_id = USER::add($insert_user); $user_id = DB::insertId(); $userData = USER::getUserById($user_id); $res = DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $userData->id; } else { // существует пользователь с таким email или это текущий пользователь if (!isset($u_user["verified_email"]) || intval($u_user["verified_email"]) != 1) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '")</script>' . "Электронный адрес данного аккаунта совпадает с электронным адресом существующего пользователя. <br>Требуется подтверждение на владение указанным email.</br></br>" . "Подтверждение аккаунта" . "</body>"); } if (intval($u_user["verified_email"]) == 1) { $user_id = $isLoggedIn ? $current_user->id : $user_id; $other_u = DB::query("SELECT identity FROM " . PREFIX . "ulogin where `user_id` = " . DB::quote($user_id)); $other_u = DB::fetchAssoc($other_u); if ($other_u) { if (!$isLoggedIn && !isset($u_user['merge_account'])) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '","' . $other_u['identity'] . '")</script>' . "С данным аккаунтом уже связаны данные из другой социальной сети. <br>Требуется привязка новой учётной записи социальной сети к этому аккаунту.<br/>" . "Синхронизация аккаунтов" . "</body>"); } } DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $user_id; } } return false; }
/** * Метод отправки письма для активации пользователя. * @param type $userEmail * @return void */ private function _sendActivationMail($userEmail) { $userId = USER::getUserInfoByEmail($userEmail)->id; $hash = $this->fPass->getHash($userEmail); $this->fPass->sendHashToDB($userEmail, $hash); $siteName = MG::getOption('sitename'); $link = '<a href="' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '" target="blank">' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '</a>'; $paramToMail = array('siteName' => $siteName, 'userEmail' => $userEmail, 'link' => $link); $message = MG::layoutManager('email_registry', $paramToMail); $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $userEmail, 'subject' => 'Активация пользователя на сайте ' . $siteName, 'body' => $message, 'html' => true); $this->fPass->sendUrlToEmail($emailData); }
/** * Возвращает сообщение о статусе заказа "Подтвержден". * @param type $pay - id заказа. * @return mixed - сообщение и email пользователя. */ public function confirmOrder($id) { // Модель для работы заказом. $model = new Models_Order(); // Информация о заказе по переданному id. $orderInfo = $model->getOrder(PREFIX . 'order.id = "' . $id . '"'); $hash = URL::getQueryParametr('sec'); // Информация о пользователе, сделавший заказ . $orderUser = USER::getUserInfoByEmail($orderInfo[$id]['user_email']); // Если присланный хэш совпадает с хэшом из БД для соответствующего id. if ($orderInfo[$id]['confirmation'] == $hash) { // Если статус заказа "Не подтвержден". if (0 == $orderInfo[$id]['status_id']) { // Подтверждаем заказ. $model->setOrderStatus($id, 1); $orderId = $id; } else { $msg = 'Заказ уже подтвержден и находится в работе. <br> Посмотреть статус заказа Вы можете в <a href="' . SITE . '/personal">личном кабинете</a>.'; } if (!$orderUser->activity) { $userEmail = $orderUser->email; $_SESSION['id'] = $orderUser->id; } } else { $msg = 'Некорректная ссылка.<br> Заказ не подтвержден<br>'; } $result = array('msg' => $msg, 'userEmail' => $userEmail); return $result; }
/** * Выводит на экран печатную форму для печати заказа в админке. * @param int $id - id заказа. * @param boolean $sign использовать ли подпись. * @return array */ public function printOrder($id, $sign = true) { $orderInfo = $this->getOrder('id=' . DB::quote($id, true)); $order = $orderInfo[$id]; $perOrders = unserialize(stripslashes($order['order_content'])); $currency = MG::getSetting('currency'); $totSumm = $order['summ'] + $order['cost']; $paymentArray = $this->getPaymentMethod($order['payment_id']); $order['name'] = $paymentArray['name']; $propertyOrder = MG::getOption('propertyOrder'); $propertyOrder = stripslashes($propertyOrder); $propertyOrder = unserialize($propertyOrder); $paramArray = $this->getParamArray(7, $order['id'], $order['summ']); foreach ($paramArray as $k => $field) { $paramArray[$k]['value'] = htmlentities($paramArray[$k]['value'], ENT_QUOTES, "UTF-8"); } $customer = unserialize(stripslashes($order['yur_info'])); $customerInfo = $customer['inn'] . ', ' . $customer['kpp'] . ', ' . $customer['nameyur'] . ', ' . $customer['adress'] . ', ' . $customer['bank'] . ', ' . $customer['bik'] . ', ' . $customer['ks'] . ', ' . $customer['rs'] . ', ' . $customer['nameyur']; $ylico = false; if (empty($order['yur_info'])) { $fizlico = true; $userInfo = USER::getUserInfoByEmail($order['user_email']); $customerInfo = $userInfo->name . ' ' . $userInfo->sname . ',' . $order['address'] . ', тел. ' . $order['phone'] . ', ' . $order['email']; } $html = ' <style type="text/css"> .form-wrapper table{border-collapse: collapse;width:100%;color:#000;} .form-wrapper small-table{border-collapse: separate;} .form-wrapper table tr th{padding: 10px;border: 1px solid #000;background:#FFFFE0;} .form-wrapper .who-pay tr td{padding: 5px;} .form-wrapper .who-pay tr td.name{width: 110px;} .form-wrapper .who-pay{margin: 10px 0 0 0;} .form-wrapper table tr td{padding: 5px;border: 1px solid #000;} .form-wrapper table tr td.bottom{border: none;text-align: right;} .form-wrapper .order-total{margin: 10px 0 0 0;color:#000;} .form-wrapper .title{text-align:center;font-size:24px;color:#000;} .form-wrapper .total-list{list-style:none;} .form-wrapper .no-border, .form-wrapper .who-pay tr td, .form-wrapper .small-table tr td{border:none;} .form-wrapper .colspan4{border:none;text-align:right;} .form-wrapper .rowspan2{vertical-align:bottom;} .form-wrapper .nowrap{white-space:nowrap;} .yur-table td {height:30px;} .form-table td {height:30px; vertical-align: baseline;} .p {height:30px; vertical-align: baseline;} </style> <div class="form-wrapper"> <strong>' . $propertyOrder['nameyur'] . '</strong><br> ' . $propertyOrder['adress'] . ' <br/> <br/> <table class="yur-table"> <tr> <td> ИНН ' . $propertyOrder['inn'] . ' </td> <td>КПП ' . $propertyOrder['kpp'] . '</td> <td rowspan="2" class="rowspan2 nowrap" valign="middle">Сч. №</td> <td rowspan="2" class="rowspan2" valign="bottom">' . $propertyOrder['rs'] . '</td> </tr> <tr> <td colspan="2">Получатель <br>' . $propertyOrder['nameyur'] . '</td> </tr> <tr> <td colspan="2" rowspan="2">Банк получателя <br>' . $propertyOrder['bank'] . '</td> <td>БИК</td> <td>' . $propertyOrder['bik'] . '</td> </tr> <tr> <td class="nowrap">Сч. №</td> <td>' . $propertyOrder['ks'] . '</td> </tr> </table> <h1 class="title"> Счет <strong>№ ' . $propertyOrder['prefix'] . $order['id'] . '</strong> от ' . date('d.m.Y', strtotime($order['add_date'])) . ' </h1> <table class="who-pay"> <tr> <td class="name" width="100">Плательщик:</td> <td width="760">' . $customerInfo . '</td> </tr> </table> <br /> <br /> <table class="form-table"> <tr> <th bgcolor="#FFFFE0" width="40">№</th> <th bgcolor="#FFFFE0" width="327">Товар</th> <th bgcolor="#FFFFE0" >Артикул</th> <th bgcolor="#FFFFE0" >Цена</th> <th bgcolor="#FFFFE0" width="70">Кол-во</th> <th bgcolor="#FFFFE0" width="50">НДС</th> <th bgcolor="#FFFFE0" >Сумма</th> </tr>'; $i = 1; $ndsPercent = is_numeric($propertyOrder['nds']) ? $propertyOrder['nds'] : 0; $totalNds = 0; if ($ndsPercent === 0) { $totalNds = '-'; } if (!empty($perOrders)) { foreach ($perOrders as $perOrder) { if ($totalNds !== '-') { $marginNds = $perOrder['price'] * $ndsPercent / (100 + $ndsPercent); $perOrder['price'] -= $marginNds; $totalNds += $marginNds; } $html .= '<tr> <td style="padding: 5px;">' . $i++ . '</td> <td cellpadding="5"> ' . $perOrder['name'] . ' ' . htmlspecialchars_decode(str_replace('&', '&', $perOrder['property'])) . ' </td> <td >' . $perOrder['code'] . '</td> <td >' . sprintf('%2.2f', $perOrder['price']) . ' ' . $currency . '</td> <td >' . $perOrder['count'] . ' шт.</td> <td >' . ($propertyOrder['nds'] >= 0 && is_numeric($propertyOrder['nds']) ? $propertyOrder['nds'] . '%' : '---') . '</td> <td >' . sprintf('%2.2f', $perOrder['price'] * $perOrder['count']) . ' ' . $currency . '</td> </tr>'; } } $html .= ' <tr> <td colspan="6" class="colspan4"> <strong>Итого без НДС:</strong> </td> <td>' . sprintf('%2.2f', $order['summ'] - $totalNds) . ' ' . $currency . '</td> </tr> <tr> <td colspan="6" class="colspan4"> <strong>Итого НДС:</strong> </td>'; if ($totalNds !== '-') { $html .= '<td>' . sprintf('%2.2f', $totalNds) . ' ' . $currency . '</td>'; } else { $html .= '<td>---</td>'; } $html .= '</tr> <tr> <td colspan="6" class="colspan4"> <strong>Доставка:</strong> </td>'; $html .= '<td><strong>' . $order['delivery_cost'] . ' ' . $currency . '</strong></td>'; $totalsumm = $order['summ'] + $order['delivery_cost']; $html .= '</tr> <tr> <td colspan="6" class="colspan4"> <strong>Всего к оплате:</strong> </td> <td><strong>' . sprintf('%2.2f', $totalsumm) . ' ' . $currency . '</strong></td> </tr> </table> <p>Всего наименований ' . $i . ', на сумму ' . $totalsumm . ' ' . $currency . '</p> '; include 'int2str.php'; $sumToWord = new int2str($totalsumm); $sumToWord->ucfirst($sumToWord->rub); $html .= '<p><strong style="font-size: 18px;">' . $sumToWord->ucfirst($sumToWord->rub) . '</strong></p> <div class="clear"> </div> </div>'; $imgSing = ''; if (file_exists($propertyOrder['sing'])) { $imgSing = '<img src="' . SITE . '/' . $propertyOrder['sing'] . '">'; } else { if (file_exists('uploads/sing.jpg')) { $imgSing = '<img src="' . SITE . '/uploads/sing.jpg">'; } } $imgStamp = ''; if (file_exists($propertyOrder['stamp'])) { $imgStamp = '<img src="' . SITE . '/' . $propertyOrder['stamp'] . '">'; } else { if (file_exists('uploads/stamp.jpg')) { $imgStamp = '<img src="' . SITE . '/uploads/stamp.jpg">'; } } if (empty($propertyOrder['usedsing'])) { $imgSing = ''; $imgStamp = ''; } $html .= ' <br /> <br /> <table> <tr> <td width="240"></td> <td width="10"></td> <td width="140" align="center">' . $imgSing . '</td> <td width="30"></td> <td width="240"></td> </tr> <tr> <td width="240">Генеральный директор</td> <td width="10"></td> <td width="140"></td> <td width="30"></td> <td width="240" align="center">/' . $propertyOrder['general'] . '/</td> </tr> <tr> <td width="240"></td> <td width="10"></td> <td width="140"><hr> подпись</td> <td width="30"></td> <td width="240"><hr><strong style="font-size: 10px;"> расшифровка подписи</strong></td> </tr> <tr> <td width="240"></td> <td width="10"></td> <td width="140"></td> <td width="30"></td> <td width="240"></td> </tr> <tr> <td width="240"></td> <td width="10"></td> <td width="140"></td> <td width="30"></td> <td width="240">М.П.' . $imgStamp . '</td> </tr> <tr> </tr> </table> '; return $html; }
Ваш заказ <b>№<?php echo $data['orderNumber']; ?> </b> принят к выполнению в магазине <?php echo $data['shopName']; ?> . <p class="confirm-info" style="font-size:12px;margin:0 0 10px 0"> <br> Подтвердите заказ, перейдя <br> по <?php echo $data['confirmLink']; ?> <br> <?php if ($data['toKnowStatus'] == '' && !USER::getUserInfoByEmail($data['email'])->activity) { ?> <span style="color:red">Автоматически будет создана учетная запись для доступа в Ваш личный кабинет.</span> <?php } ?> </p> <br> Мы будем оповещать Вас о ходе выполнения заказа по почте. <br> <?php if ($data['toKnowStatus'] == '') { ?> После подтверждения заказа, Вы можете в любой момент самостоятельно узнать статус заказа в Вашем
<div style="font-size:12px;line-height:16px;margin:0;"> Ваш заказ <b>№<?php echo $data['orderNumber']; ?> </b> принят к выполнению в магазине <?php echo $data['shopName']; ?> . <p class="confirm-info" style="font-size:12px;margin:0 0 10px 0"> <br> Подтвердите заказ, перейдя <br> по <?php echo $data['confirmLink']; ?> <?php if (!USER::getUserInfoByEmail($data['email'])) { ?> <br> <span style="color:red">Автоматически будет создана учетная запись для доступа в ваш личный кабинет.</span> <?php } ?> </p> <br> Мы будем оповещать Вас о ходе выполнения заказа по почте. <br> После подтверждения заказа, Вы можете в любой момент самостоятельно узнать статус заказа в Вашем <a href="<?php echo SITE; ?>
/** * Метод отправки письма для активации пользователя. * @param type $userEmail * @return void */ private function _sendActivationMail($userEmail) { $userId = USER::getUserInfoByEmail($userEmail)->id; $hash = $this->fPass->getHash($userEmail); $this->fPass->sendHashToDB($userEmail, $hash); $siteName = MG::getOption('sitename'); $message = ' Здравствуйте!<br> Вы получили данное письмо так как зарегистрировались на сайте ' . $siteName . ' с логином ' . $userEmail . '.<br> Для активации пользователя и возможности пользоваться личным кабинетом пройдите по ссылке: <a href="' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '" target="blank">' . SITE . '/registration?sec=' . $hash . '&id=' . $userId . '</a>.<br> Отвечать на данное сообщение не нужно.'; $emailData = array('nameFrom' => $siteName, 'emailFrom' => MG::getSetting('noReplyEmail'), 'nameTo' => 'Пользователю сайта ' . $siteName, 'emailTo' => $userEmail, 'subject' => 'Активация пользователя на сайте ' . $siteName, 'body' => $message, 'html' => true); $this->fPass->sendUrlToEmail($emailData); }