applyRestriction
public static function \Bitrix\Sale\Services\Base\RestrictionManager::applyRestriction( int $serviceId, RestrictionInfo $restrictionInfo );
Метод применяет для сервиса указанное ограничение. Метод статический.
Параметры
Параметр | Описание | Версия |
---|---|---|
$serviceId | Идентификатор сервиса. | |
$restrictionInfo | Обёртка над ограничением. Содержит тип ограничения и массив опций этого ограничения. |
Примеры
public static function applyRestriction(int $serviceId, RestrictionInfo $restrictionInfo): Result { $result = new Result(); $restriction = static::getRestriction($restrictionInfo->getType()); $reflectionClass = new \ReflectionClass(static::class); $methodPath = $reflectionClass->getName() . "::applyRestriction"; if (!$restriction) { Logger::addError("[{$methodPath}] restriction '{$restrictionInfo->getType()}' not found."); $publicErrorMessage = Loc::getMessage( 'SALE_BASE_RSTR_MANAGER_FIND_RSTR_ERROR', [ '#RSTR_CLASSNAME#' => htmlspecialcharsbx($restrictionInfo->getType()) ] ); $result->addError(new \Bitrix\Main\Error($publicErrorMessage)); return $result; } /** * @var \Bitrix\Main\Entity\Result $restrictionApplyResult * @var Restriction $restriction */ $restrictionApplyResult = $restriction::save( [ 'SERVICE_ID' => $serviceId, 'SERVICE_TYPE' => static::getServiceType(), 'PARAMS' => $restrictionInfo->getOptions() ] ); if (!$restrictionApplyResult->isSuccess()) { foreach ($restrictionApplyResult->getErrors() as $error) { Logger::addError("[{$methodPath}] " . $error->getMessage()); } $publicErrorMessage = $restriction::getOnApplyErrorMessage(); $result->addError(new Error($publicErrorMessage)); } return $result; }
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.