Система имеет возможность добавлять собственные алгоритмы расчета ставок или изменять существующие.
Алгоритмы встроенных методов вы можете посмотреть в файле /bitrix/modules/wtc.easydirect/classes/general/CCalculate.php
Что бы добавить собственный метод, надо привязать ваши функции для расчета к событию userCalculateMethod модуля wtc.easydirect. Сделать это можно в файле /bitrix/php_interface/init.php
Все пользовательские методы должны начинаться с префикса "user_"
Если метод возвращает 0, значит ставка изменена НЕ будет.
Если надо отключить показы по слову, возвращайте минимальную ставку, сейчас это 0.30 руб. Вероятность показов с такой ставкой очень мала.
Шаблон файла для реализации ВСЕХ событий модуля с комментариями и примерами вы можете скачать здесь.
// регистрация методов в /bitrix/php_interface/init.php AddEventHandler("wtc.easydirect", "userCalculateMethod", Array("EasydirectHandlers", "user_main_x2Phrase")); AddEventHandler("wtc.easydirect", "userCalculateMethod", Array("EasydirectHandlers", "user_method_two")); // EasydirectHandlers Class class EasydirectHandlers { //====================CULCULATE PHRASES PRICES========================= /** * !!!CAUTION!!! all methods can start from "user_" prefix * user method for calculate phrase price * @param array $arParams see bottom * @return float price for update phrase bid. If return 0 price not update * $params=array( 'NAME' - phrase 'MAX_PRICE' - max price for the phrase 'MESTO_SEO' - place in SEO, 0 - is not in TOP10. 'PRICE_ON_SEARCH' - Real pay price after autobroker 'SHOWS' - phrase shows 'CLICKS' - phrase clicks 'CTR' - CTR 'PRICE' - user price in the phrase 'PREMIUMMAX' - 1'st place of premium price 'PREMIUMMIN' - bottom place of premium price 'MAXBET' - 1'st place of guaranty 'MINBET' - bottom place of guaranty 'PRICES' - array prices for all places [ { "Position": (string), "Bid": (float), "Price": (float) } ... ] ); */ // увеличиваем в 2 раза максимальную цену на словах с вхождением "купить" с 8 до 21 часа public function user_main_x2Phrase($params) { $retstavk=0; if(preg_match("/(^купить|[^-]купить)/",$params["NAME"])){ $hour=date("G"); if($hour>8&&$hour<21){ $params['MAX_PRICE']=$params['MAX_PRICE']*2; } } $retstavk=CEDirectCalculate::sys_methodMain($params); return $retstavk; } //second user method public function user_method_two($params) { return 0; } }
После создания событий в init.php, перейдите в раздел: Сервисы → Легкий директ → Доп. инструменты → Управление Методами.
Нажмите на кнопку "Добавить свой метод"
Заполните поля, выберите одну из своих функций
После сохранения, метод будет доступен для использования в условиях расчета ставок.