static function getBonusStatus($userid) { $smm = ShopBonus::getBonusOrderSumm($userid); $data = array(0 => 'green', 5000 => 'yellow', 10000 => 'red'); $out = $data[0]; foreach ($data as $s => $p) { if ($s < $smm) { $out = $p; } } return $out; }
function setRefId() { if (!empty($_GET['refid'])) { setcookie('Ref_id', $_GET['refid'], time() + 3600 * 24 * 365, '/'); } if (!empty($_GET['promo'])) { include_once 'modules/shop/ShopBonus.class.php'; if ($refid = ShopBonus::getPromoRefId($_GET['promo'])) { setcookie('promo', $_GET['promo'], time() + 3600 * 24 * 365, '/'); } } }
if (date('Y-m-d', strtotime($last_start)) == date('Y-m-d')) { exit; } ini_set('log_errors', 'On'); ini_set('error_log', dirname(__FILE__) . '/php_errors_bonus.log'); include dirname(__FILE__) . "/../../config.php"; include dirname(__FILE__) . "/../../core/function.php"; set_time_limit(1000); include_once dirname(__FILE__) . "/../../core/lib/SQL.class.php"; include_once dirname(__FILE__) . "/../../modules/shop/ShopBonus.class.php"; $ST = new SQL(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_BASE); $r = $ST->select("SELECT UPPER(name) AS name,value FROM sc_config "); while ($r->next()) { if ($r->get('value')) { $CONFIG[$r->get('name')] = $r->get('value'); } } $q = "SELECT * FROM sc_shop_order WHERE userid>0 AND order_status=3 AND stop_time BETWEEN '" . date('Y-m-d', strtotime('-1 day')) . "' AND '" . date('Y-m-d') . "'"; $rs = $ST->select($q); while ($rs->next()) { $percent = ShopBonus::getBonusPercent($rs->getInt('userid')); $bonus = round($rs->getInt('price') / 20) * 20 / 100 * $percent * 10; $rs1 = $ST->select("SELECT * FROM sc_users WHERE u_id={$rs->getInt('userid')}"); if ($rs1->next()) { $inc = array('userid' => $rs->getInt('userid'), 'sum' => $bonus, 'balance' => $bonus + $rs1->getInt('bonus'), 'type' => 'bonus', 'description' => 'Начисление бонуса', 'time' => date('Y-m-d H:i:s')); $ST->insert('sc_income', $inc); $ST->update('sc_users', array('bonus' => $bonus + $rs1->getInt('bonus')), "u_id={$rs->getInt('userid')}"); } } file_put_contents(dirname(__FILE__) . '/bonus_last_start_log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND); file_put_contents(dirname(__FILE__) . '/bonus_last_start.txt', date('Y-m-d H:i:s'));
<div class="block_info"> Ваша ссылка для привлечения рефералов<br> <?php $kod = ShopBonus::genPromo($this->getUserId()); $promo = "http://{$_SERVER['HTTP_HOST']}/?promo=" . $kod; ?> <strong><?php echo $promo; ?> </strong> <br> <div style="padding:10px;border:dotted 1px #f00;margin:10px 0">Промокод: <strong><?php echo $kod; ?> </strong></div> Поделиться в соц сетях <script type="text/javascript">(function() { if (window.pluso)if (typeof window.pluso.start == "function") return; var d = document, s = d.createElement('script'), g = 'getElementsByTagName'; s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true; s.src = ('https:' == window.location.protocol ? 'https' : 'http') + '://share.pluso.ru/pluso-like.js'; var h=d[g]('head')[0] || d[g]('body')[0]; h.appendChild(s); })();</script> <div class="pluso" data-options="small,square,line,horizontal,nocounter,theme=04" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir" data-background="transparent" data-url="<?php echo $promo; ?> " data-title="<?php echo my_htmlspecialchars($this->cfg('HEADER_TITLE')); ?> "></div>
<td colspan="3"></td> <td> <?php /*input type="checkbox" name="not_use_bonus" value="1" id="not_use_bonus" onchange="shop.refresh()" <?if(!empty($not_use_bonus)){?>checked<?}?>><label for="not_use_bonus">Не использовать бонусы</label*/ ?> <input type="checkbox" name="use_bonus" value="1" id="use_bonus" onchange="shop.refresh()" <?php if (!empty($use_bonus)) { ?> checked<?php } ?> ><label for="use_bonus">Использовать бонусы</label> </td> <td> <?php $bonus_status = ShopBonus::getBonusStatus($this->getUserId()); $bonus_status_desc = $this->enum('bonus_status', $bonus_status); ?> <span title="Статус: <?php echo $bonus_status_desc; ?> " class="title bonus_status <?php echo $bonus_status; ?> ">Статус: <?php echo $bonus_status_desc; ?> </span>
function actSign() { include_once 'modules/shop/ShopBonus.class.php'; global $ST, $post; if (!($err = $this->checkAll($post))) { $field = array("login" => $post->get('mail'), "name" => $post->get('name'), "address" => $post->get('address'), "phone" => $post->get('phone'), "mail" => $post->get('mail')); //Добавим реферала if ($refid = $post->getInt('refid')) { $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}"); if ($rs->next()) { $field['refid'] = $post->getInt('refid'); } else { //Если неправильный refid } } if ($refid = ShopBonus::getPromoRefId($post->get('promo'))) { $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}"); if ($rs->next()) { $field['refid'] = $post->getInt('refid'); } else { //Если неправильный refid } } if (!$post->exists('address')) { $field['address'] = $field['street'] . ', ' . $field['house'] . '-' . $field['flat'] . ', подъезд ' . $field['porch'] . ', этаж ' . $field['floor']; } $password = substr(md5(time()), 0, 6); if ($p = $post->get('password')) { $password = $p; } $field[] = "password=MD5('" . $password . "')"; $id = $ST->insert('sc_users', $field, 'u_id'); my_session_start(); $_SESSION['_USER']['u_id'] = intval($id); //уведомление о регистрации $this->sendTemplateMail($field['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'PASSWORD' => $password)); //уведомление о регистрации админу $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'name' => $field['name'])); $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте'); //Добавим в подписку // $rs=$ST->select("SELECT * FROM sc_subscribe WHERE mail='{$this->field['mail']}'"); // if(!$rs->next()){ // $ST->insert('sc_subscribe',array('mail'=>$this->field['mail'],'type'=>'news send')); // } echo printJSON(array('status' => 'ok')); exit; } else { echo printJSON(array('error' => $err)); exit; } }
function actSendOrder() { global $ST, $post; $basket = $this->getBasketInfo($post->get()); if ($error = $this->checkOrder($post, $basket)) { echo printJSON(array('error' => $error)); exit; } else { $address = $post->getString('address'); /* Информация о заказчике */ $data = array('phone' => $post->get('phone')); if ($city = $post->get('city')) { $data['city'] = $city; } if ($address) { $data['address'] = $address; } //Добавим реферала if ($refid = $post->getInt('refid')) { $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}"); if ($rs->next()) { $data['refid'] = $post->getInt('refid'); } else { //Если неправильный refid } } if (!$this->getUserId() && $post->getInt('reg') == 1) { //&& $post->exists('want_reg') if ($post->exists('mail')) { $data['login'] = $post->get('mail'); $data['mail'] = $post->get('mail'); if ($post->exists('auto_pass')) { //Всегда назначать пароль $password = substr(md5(time()), 0, 6); $data[] = "password=MD5('" . $password . "')"; } else { $password = $post->get('password'); $data[] = "password=MD5('" . SQL::slashes($password) . "')"; } if (!session_id()) { session_set_cookie_params(3600 * 24 * 15, '/'); session_start(); } $_SESSION['_USER']['u_id'] = $ST->insert('sc_users', $data, 'u_id'); //уведомление о регистрации $this->sendTemplateMail($data['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $data['login'], 'PASSWORD' => $password)); //уведомление о регистрации админу $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $data['login'], 'name' => $data['name'])); $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте'); } } elseif ($this->getUserId()) { //Обновим пользователя if (!empty($basket['bonus'])) { $data['bonus'] = $this->getUser('bonus') - $basket['bonus']; $inc = array('userid' => $this->getUserId(), 'sum' => $basket['bonus'], 'balance' => $data['bonus'], 'type' => 'bonus', 'description' => 'Списание бонуса', 'time' => date('Y-m-d H:i:s')); $ST->insert('sc_income', $inc); } $ST->update('sc_users', $data, 'u_id=' . $this->getUserId()); } $this->setUser($data); $data = array('userid' => $this->getUserId(), 'fullname' => $this->getUser('name'), 'mail' => $post->get('mail') ? $post->get('mail') : $this->getUser('mail'), 'pay_system' => $post->get('pay_system'), 'phone' => $post->get('phone'), 'additionally' => $post->get('additionally'), 'price' => $basket['sum'], 'total_price' => $basket['total_sum'], 'order_status' => 0, 'pay_system' => $post->get('pay_system'), 'delivery' => $basket['delivery'], 'pay_bonus' => $basket['bonus'], 'discount' => $basket['discount'], 'margin' => $basket['margin']); if (Cfg::get("SHOP_DELIVERY_ENABLED")) { $data['date'] = $post->get('date') ? dte($post->get('date'), 'Y-m-d') : date('Y-m-d'); $time = $post->getString('time'); if ($t = $this->enum('sh_delivery_time', $time)) { $time = $t; } $delivery_type = 1; //доставка курьером if ($post->getInt('delivery_type')) { $delivery_type = $post->getInt('delivery_type'); } if ($basket['delivery'] === false) { //доставка не возможна $delivery_type = 2; } $data['city'] = $address; $data['address'] = $post->get('city'); $data['delivery_type'] = $delivery_type; } // $order_data=array( // 'from_name'=>$post->get('from_name'), // 'from_phone'=>$post->get('from_phone'), // 'from_city'=>$post->get('from_city'), // 'remember'=>$post->get('remember'), // 'report'=>$post->get('report'), // 'call'=>$post->get('call'), // 'call_no_report'=>$post->get('call_no_report'), // ); // $data['order_data']=printJSON($order_data); // if(!trim($data['address'])){ // $data['address']=serialize(array( //// 'region'=>$post->get('region'), // 'city'=>$post->get('city'), // 'district'=>$post->get('district'), // 'street'=>$post->get('street'), // 'house'=>$post->get('house'), // 'flat'=>$post->get('flat'), // 'porch'=>$post->get('porch'), // 'floor'=>$post->get('floor'), // )); // // } //Добавим заказ $id = LibShop::addOrder($data, $basket['basket']); if ($refid = $post->getInt('refid')) { ShopBonus::addRefAwards($refid, $basket['basket']); } elseif ($refid = ShopBonus::getPromoRefId($post->get('promo'))) { ShopBonus::addRefAwards($refid, $basket['basket']); } $ps_href = ''; if (isset($data['pay_system']) && $data['pay_system'] == 3 && $data['total_price']) { //Если электронные платежи и есть сумма $rs1 = $ST->select("SELECT * FROM sc_pay_system WHERE name='paymaster'"); if ($rs1->next()) { include_once "core/lib/PSPaymaster.class.php"; $ps = new PSPaymaster(unserialize($rs1->get('config'))); $ps->setDesc('Покупка товара'); $ps->setSumm($data['total_price']); $ps->setEmail($this->getUser('mail')); $ps->setOrderNum($id); $ps_href = $ps->getUrl(); } } // $icq_notice = "Новый заказ на сайте {$_SERVER['HTTP_HOST']}\n"; // // // $icq_notice.="Итого: {$basket['sum']}\n"; // $icq_notice.="Заказчик: {$post->get('from_name')}\n"; // $icq_notice.="Контактный телефон: {$post->get('from_phone')}\n"; // $icq_notice.="Адрес: {$post->get('address')}\n"; //// $icq_notice.="Сообщение: {$post->get('comment')}\n"; // $icq_notice.="Время доставки: {$post->get('date')} {$post->get('time')}\n"; //уведомление о заказе пользователю $notice = $data; //+$order_data; if (!empty($notice['date'])) { $notice['date'] = dte($notice['date']); } // $notice['description']=''; // foreach (array('remember','report','call','call_no_report',) as $v){ // $notice['description'].=$this->enum('field_label',@"{$v}_{$notice[$v]}")."<br>"; // } $notice['ps_href'] = ''; if ($ps_href) { $notice['ps_href'] = "Для того, чтобы оплатить заказа перейдите по ссылке <a href=\"{$ps_href}\">ОПЛАТИТЬ</a>"; } $delivery_list = $this->enum('sh_delivery_type'); $pay_system_list = $this->enum('sh_pay_system'); $notice['ORDER_NUM'] = $order_num = $id; // $notice['ORDER_NUM']=$order_num; $notice['NAME'] = $this->getUser('name'); $notice['FROM_SITE'] = FROM_SITE; $notice['basket'] = $this->render(array_merge($basket, array('is_order' => true, 'is_letter' => true)), dirname(__FILE__) . '/basket_content.tpl.php'); $notice['delivery_type'] = @$delivery_list[$notice['delivery_type']]; $notice['pay_system'] = @$pay_system_list[$notice['pay_system']]; include 'function.tpl.php'; if (!empty($notice['address'])) { $notice['address'] = parsAddr($notice['address']); } // $url="http://{$_SERVER['HTTP_HOST']}/prnt/SHET/?id=$id&PHPSESSID=".session_id(); // $url="http://{$_SERVER['HTTP_HOST']}/prnt/SBER/?id=$id&PHPSESSID=".session_id(); // $content=file_get_contents($url); $att = array(); if (isset($data['pay_system']) && $data['pay_system'] == 1) { $url = "http://{$_SERVER['HTTP_HOST']}/prnt/SBERpdf/?id={$id}"; $notice['ps_href'] = "<a href=\"{$url}\">Распечатать счёт</a>"; // $att[]=array('name'=>'Счёт.xls','file'=>$url."&access=allow"); } /* if($post->getInt('is_jur')){ //Печатать не надо $url="http://{$_SERVER['HTTP_HOST']}/prnt/SchetWord/?id=$id"; $notice['ps_href']="<a href=\"{$url}\">Распечатать счёт</a>"; $att[]=array('name'=>'na_oplatu'.date('Y_m_d').'.doc','file'=>$url."&access=allow"); } */ $mail = $post->exists('mail') ? $post->get('mail') : $this->getUser('mail'); if ($mail) { $this->sendTemplateMail($post->get('mail'), 'notice_new_order', $notice, $att); } //уведомление о заказе админу // $mail_contacts=$this->enum('mail_contacts',$this->getRegion()); $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_order4admin', $notice); // $this->noticeICQ($this->cfg('ICQ'), $icq_notice); $d = $this->getOrderData(); unset($d['additionally']); $this->saveOrderData($d); $this->saveBasketData(array()); // setcookie('basket',null,0,'/');//Очистим корзину Cookie::set('order_id', $id); $redirect_href = "/catalog/success/?id={$id}"; if ($ps_href) { $redirect_href = $ps_href; } echo printJSON(array('id' => $id, 'order_num' => $order_num, 'error' => '', 'count' => $basket['count'], 'delivery' => $data['delivery'], 'total_price' => $data['total_price'], 'ps_href' => $notice['ps_href'], 'redirect_href' => $redirect_href, 'date' => "{$post->get('date')} {$post->get('time')}")); exit; } }