Пытаюсь добавить новое ограничение в службы доставки по группе пользователей.
добавила по пути в файл:
/public_html/bitrix/php_interface/init.php
прописала класс для нового ограничения в:
/public_html/bitrix/php_interface/include/mydelrestriction.php
на сайте появилось ограничение, но при нажатии ничего не происходит, подскажите что делать?
добавила по пути в файл:
/public_html/bitrix/php_interface/init.php
Код |
---|
Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'onSaleDeliveryRestrictionsClassNamesBuildList', 'myDeliveryFunction' ); function myDeliveryFunction() { return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::SUCCESS, array( '\MyDeliveryRestriction' => '/bitrix/php_interface/include/mydelrestriction.php', ) ); } |
прописала класс для нового ограничения в:
/public_html/bitrix/php_interface/include/mydelrestriction.php
Код |
---|
<?php use Bitrix\Sale\Delivery\Restrictions; use Bitrix\Sale\Internals\Entity; class MyDeliveryRestriction extends Restrictions\Base { public static $easeSort = 200; /** * @return mixed */ public static function getClassTitle() { return 'по группе пользователей'; } /** * @return mixed */ public static function getClassDescription() { return 'Ограничение по группе пользователей'; } /** * @param CollectableEntity $entity * @return int */ protected static function extractParams(CollectableEntity $entity) { /** @var ShipmentCollection $collection */ $collection = $entity->getCollection(); /** @var Order $order */ $order = $collection->getOrder(); if($GLOBALS['USER']->isAuthorized()){ $usergroupId=$GLOBALS['USER']->GetUserGroupArray(); }else $usergroupId=array(2); return $usergroupId; } /** * @param $deliveryId * @return array * @throws \Bitrix\Main\ArgumentException */ public static function getParamsStructure($deliveryId = 0) { $personTypeList = array(); $dbRes = \Bitrix\Main\GroupTable::getList(); while ($personType = $dbRes->fetch()) $personTypeList[$personType["ID"]] = $personType["NAME"]." (".$personType["ID"].")"; return array( "USER_GROUP_ID" => array( "TYPE" => "ENUM", 'MULTIPLE' => 'Y', "LABEL" => Loc::getMessage("SALE_DLVR_RSTR_BY_PERSON_TYPE_NAME"), "OPTIONS" => $personTypeList ) ); } /** * @param $personTypeId * @param array $params * @param int $deliveryId * @return bool */ public static function check($usergroupId, array $params, $deliveryId = 0) { if (is_array($params) && isset($params['USER_GROUP_ID'])) { return sizeof(array_intersect($usergroupId, $params['USER_GROUP_ID']))>0; } return true; } /** * @param $mode * @return int */ public static function getSeverity($mode) { return \Bitrix\Sale\Delivery\Restrictions\Manager::SEVERITY_STRICT; } } |
на сайте появилось ограничение, но при нажатии ничего не происходит, подскажите что делать?