예제 #1
0
 public function action_finish()
 {
     $email_config = Kohana::$config->load("email");
     $owner_emails = array("*****@*****.**");
     $owner_pushall_ids = array(8189);
     $owner_icq_uins = array(673151743);
     $model_base = new Model_Base();
     $options = $model_base->getOptions();
     $url = URL::base() . 'admin/orders/' . $_POST["order_id"];
     // Ссылка на заказ
     $sitename = $options['sitename'];
     // Название сайта
     $icon_url = URL::base() . '/img/pushall_icon.jpg';
     $title = "Вам поступил заказ в интернет-магазине \"{$sitename}\"!";
     $text = "Кликните для выяснения деталей.";
     PC::debug($sitename);
     $pushall_options = array("type" => 'unicast', "title" => $title, "text" => $text, "url" => $url, "icon" => $icon_url, "priority" => 1);
     // --- Обновление БД -----------------------------------------------------------------------
     // Регистрация пользователя
     $model_user = new Model_User();
     $email = Arr::get($_POST, 'email');
     $user = $model_user->getUser($email);
     // Пользователь не зарегистрирован
     if (!$user) {
         $user_data["username"] = $email;
         $user_data["pass"] = $model_user->generate_pass();
         $user_data["role"] = 4;
         $user_data["name"] = Arr::get($_POST, 'name');
         $user_data["phone"] = Arr::get($_POST, 'phone');
         $add_user_id = $model_user->addUser($user_data);
         $user = $model_user->getUser($email);
     }
     // Регистрация заказа
     $order_params = array("name", "phone", "email", "order_id", "delivery_type", "street", "house", "apartment", "access", "floor", "date", "delivery_time", "delivery_point", "comment", "payment_type", "payment_comment", "user_id");
     $order_data = array();
     foreach ($order_params as $param) {
         $order_data[$param] = Arr::get($_POST, $param);
     }
     $order_data["user_id"] = $user['id'];
     $model_orders = new Model_Orders();
     $model_orders->finishOrder($order_data);
     $model_email = new Model_Email();
     $model_email->addSubscriber($order_data["email"], $order_data["name"]);
     // --- /Обновление БД ----------------------------------------------------------------------
     // --- Отправка уведомлений ----------------------------------------------------------------
     include APPPATH . '/classes/Pushes.class.php';
     $pushes = new Pushes();
     // Уведомление в браузер
     foreach ($owner_pushall_ids as $owner_pushall_id) {
         $pushes->pushall_send(array_merge($pushall_options, array("uid" => $owner_pushall_id)), 'get');
     }
     // Уведомление в аську
     foreach ($owner_icq_uins as $owner_icq_uin) {
         $pushes->icq_send($owner_icq_uin, "Вам поступил заказ в интернет-магазине!\n\tПодробнее: " . $url);
     }
     // Отправка почты
     //$subject = 'Поступила заявка с сайта ' . $sitename . ' от ' .$order_data['name'];
     $subject = 'Поступила заявка с сайта ' . '"' . $sitename . '"';
     $from = $email_config['options']['username'];
     $message = '<h2>Новая заявка</h2>';
     $message .= 'Отправитель: <b>' . $order_data['name'] . ', </b><br>';
     $message .= 'Тел: <b>' . $order_data['phone'] . ', </b><br>';
     $message .= '<em>Отправлено: ' . date("d.m.Y H:i:s") . '</em>';
     $message .= '<p><a href="' . $url . '">Подробнее</a></p>';
     foreach ($owner_emails as $owner_email) {
         $pushes->mail_send($owner_email, $from, $subject, $message);
     }
     $model = array("order_id" => $order_data["order_id"]);
     // Подключение шаблона
     $this->set_template('widgets/w_success_ordering.php')->render($model)->body();
     // --- /Отправка уведомлений ---------------------------------------------------------------
 }