applyRestriction
public static function \Bitrix\Sale\Services\Base\RestrictionManager::applyRestriction( int $serviceId, RestrictionInfo $restrictionInfo );
This method applies specified restriction for a service. Static method.
Parameters
Parameter | Description | Version |
---|---|---|
$serviceId | Service ID. | |
$restrictionInfo | Wrapper for restriction. Contains type of restriction and array containing options for this restriction. |
Examples
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; }
© «Bitrix24», 2001-2024