====quote====
Задача: при оплате высылать билеты с QR кодом, в котором будет зашита ссылка на билет. И заодно письмо аффилиату, что его заказ оплачен
=============
1. понадобятся 2 библиотеки, которые положила в папку /tools/
2. обработчики в init.php
====code====
const SITE_TICKET = "tc"; const TICKET_INFO_URL = "http://nikaverro.ru/ticket/info/"; const QRCODE_DIR_REL = "http://nikaverro.ru/upload/qrcode/"; const QRCODE_DIR_ABS = "/upload/qrcode/"; AddEventHandler("sale", "OnSalePayOrder", "CustomOnSalePayOrder"); function CustomOnSalePayOrder($id,$bPay){ //Флаг оплаты (Y - выставление оплаты, N - снятие оплаты) if(($bPay == "Y")&& CModule::IncludeModule("sale") && CModule::IncludeModule("iblock")){ $arTickets = GetTicketsByOrderId($id); //функция, которая возвращает билеты (элементы инфоблока) по заказу if(count($arTickets)>0){ $arFilter = Array( "ID" => $id, "CANCELED"=>"N" ); $arSelect = array("ID","USER_ID",'PROPERTY_VAL_BY_CODE_NAME','PROPERTY_VAL_BY_CODE_EMAIL','PROPERTY_VAL_BY_CODE_PHONE', "AFFILIATE_ID","PRICE"); $db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter,false,false,$arSelect); if ($arOrder = $db_sales->Fetch()){ $html = GenerateHTMLTicket($arTickets); SendEmailWithTickets($arOrder["PROPERTY_VAL_BY_CODE_EMAIL"], $html); if(($arOrder["AFFILIATE_ID"]!="") && ($arOrder["PRICE"]>0) ){ $dbAffiliate = CSaleAffiliate::GetList(array(), array("ID" => $arOrder["AFFILIATE_ID"]), false, false, array("USER_ID")); if ($arAffiliate = $dbAffiliate->Fetch()) { $rsUser = CUser::GetByID($arAffiliate["USER_ID"]); $arUser = $rsUser->Fetch(); if($arUser["EMAIL"]!=""){ SendEmailToAffiliate($arUser["EMAIL"],$arOrder["PRICE"]); } } } } //выставляем у билетов статус "действительны" foreach ($arTickets as $arTicket) { CIBlockElement::SetPropertyValuesEx($arTicket["ID"], false, array(PROPERTY_TICKET_STATUS => TICKET_STATUS_VALID)); } } } } function GenerateHTMLTicket($arTickets){ AddMessage2Log('GenerateHTMLTicket'); require_once($_SERVER["DOCUMENT_ROOT"].'/tools/phpqrcode/qrlib.php'); ob_start(); // define some HTML content with style ?>
|
||||
|
=============
Подробнее…