public static function onSetDayContextAttributes(DayContext $context) { $id = null; if (isset($_SESSION[self::CLICK_PARAM_NAME])) { $id = $_SESSION[self::CLICK_PARAM_NAME]; } if (!is_numeric($id) || $id <= 0) { return; } $recipientDb = PostingRecipientTable::getList(array('select' => array('MAILING_CHAIN_ID' => 'POSTING.MAILING_CHAIN_ID'), 'filter' => array('ID' => $id))); if ($recipient = $recipientDb->fetch()) { $context->setAttribute('sender_chain_source', $recipient['MAILING_CHAIN_ID']); } }
/** * Increments conversion banner click day counter * * @param int $id Banner ID. * @param array $fields Banner fields. * @return void */ public static function onBannerClick($id, $fields) { if (Loader::includeModule('conversion')) { $context = DayContext::getInstance(); $context->addDayCounter('advertising_banner_click_day', 1); } }
/** * Increments conversion post day counter * * @param int $id Post ID. * @param array $fields Post fields. * @return void */ public static function onPostAdd($id, $fields) { if (Loader::includeModule('conversion')) { $context = DayContext::getInstance(); $context->addDayCounter('blog_post_add_day', 1); } }
/** * Increments conversion post day counter * * @param int $id Topic ID. * @param array $message Message fields. * @param array $topicInfo Message TOPIC_INFO field. * @param array $forumInfo Message FORUM_INFO field. * @param array $fields Message fields used to insert. * @return void */ public static function onMessageAdd($id, $message, $topicInfo, $forumInfo, $fields) { if (Loader::includeModule('conversion')) { $context = DayContext::getInstance(); $context->addDayCounter('forum_post_add_day', 1); } }
public static function OnProlog() { DayContext::getInstance(); // // $asset = Asset::getInstance(); // // $asset->addString(' // <script type="text/javascript"> // (window.BX||top.BX).message({"BITRIX_CONVERSION_VARNAME":"'.DayContext::getVarName().'"}); // </script> // ', true, AssetLocation::AFTER_CSS); // // $asset->addJs('/bitrix/js/conversion/ajax_counter.js'); }
public static function onSalePayOrder($id, $paid) { if (Loader::includeModule('conversion') && ($row = \CSaleOrder::GetById($id))) { if ($paid == 'Y') { $context = DayContext::getEntityItemInstance('sale_order', $id); if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) { $context->addCounter('sale_payment_add_day', 1); } else { $context->addDayCounter('sale_payment_add_day', 1); } $context->addCurrencyCounter('sale_payment_sum_add', $row['PRICE'], $row['CURRENCY']); } } }
public static function onProlog() { static $done = false; if (!$done) { $done = true; DayContext::getInstance(); // For composite site this script must not be changing often!!! Asset::getInstance()->addString('<script type="text/javascript"> (function () { "use strict"; var counter = function () { var cookie = (function (name) { var parts = ("; " + document.cookie).split("; " + name + "="); if (parts.length == 2) { try {return JSON.parse(decodeURIComponent(parts.pop().split(";").shift()));} catch (e) {} } })("' . DayContext::getVarName() . '"); if (! cookie || cookie.EXPIRE < BX.message("SERVER_TIME")) { var request = new XMLHttpRequest(); request.open("POST", "/bitrix/tools/conversion/ajax_counter.php", true); request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.send( "SITE_ID=" + encodeURIComponent(BX.message("SITE_ID")) + "&" + "sessid=" + encodeURIComponent(BX.bitrix_sessid()) + "&" + "HTTP_REFERER=" + encodeURIComponent(document.referrer) ); } }; if (window.frameRequestStart === true) BX.addCustomEvent("onFrameDataReceived", counter); else BX.ready(counter); })(); </script>', false, AssetLocation::AFTER_JS_KERNEL); } }
public static function onProlog() { DayContext::getInstance(); }
public static function onSalePayOrder($id, $paid) { if (Loader::includeModule('conversion') && ($row = \CSaleOrder::GetById($id))) { $context = DayContext::getEntityItemInstance('sale_order', $id); if ($paid == 'Y') { if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) { $context->addCounter('sale_payment_add_day', 1); } else { $context->addDayCounter('sale_payment_add_day', 1); } $context->addCounter('sale_payment_add', 1); $context->addCurrencyCounter('sale_payment_sum_add', $row['PRICE'], $row['CURRENCY']); } /* elseif ($paid == 'N') { if (defined('ADMIN_SECTION') && ADMIN_SECTION === true) { // TODO what if payment added by user and removed by admin -- conversion is going down!!! $context->addCounter ('sale_payment_rem_day', 1); } else { $context->addDayCounter ('sale_payment_rem_day', 1); } $context->addCounter ('sale_payment_rem' , 1); $context->addCurrencyCounter('sale_payment_sum_rem', $row['PRICE'], $row['CURRENCY']); } */ } }
/** * Sets A/B-test related attributes to conversion context * * @param \Bitrix\Conversion\DayContext $conversionContext Conversion context. * @return void */ public static function onConversionSetContextAttributes(\Bitrix\Conversion\DayContext $conversionContext) { if ($abtest = Helper::getActiveTest()) { if ($context = Helper::getContext()) { if ($context['abtest'] != $abtest['ID']) { return; } if (!in_array($context['section'], array('A', 'B'))) { return; } $conversionContext->setAttribute('abtest', $context['abtest']); $conversionContext->setAttribute('abtest_section', $context['section']); } } }
public static function onSetDayContextAttributes(DayContext $context) { if (AdvSession::isSession()) { $context->setAttribute('seo_yandex_direct_source', static::getSeoId()); } }