Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/lpost.delivery/lib/restrictions/ |
Upload File : |
<?php namespace Lpost\Delivery\Restrictions; /** * Class ByDimensions * Restricts delivery by order dimensions. * @package Bitrix\Sale\Delivery\Restrictions */ class ByDimensions extends \Bitrix\Sale\Delivery\Restrictions\ByDimensions { /** * @param array $dimensionsList keys:(LENGTH, WIDTH, HEIGHT) * @param array $restrictionParams * @param int $deliveryId * @return bool * @internal */ public static function check($dimensionsList, array $restrictionParams, $deliveryId = 0) { if(empty($restrictionParams)) return true; $delivery = \Bitrix\Sale\Delivery\Services\Manager::getObjectById($deliveryId); $deliveryConfig = $delivery->getConfig(); $deliveryParent = $delivery->getParentService(); $deliveryParentConfig = $deliveryParent->getConfig(); //set default value foreach($dimensionsList as &$dimensions) { foreach($restrictionParams as $name => $value) //LENGTH, WIDTH, HEIGHT { if(intval($dimensions[$name]) <= 0 || $value <=0){ if(!empty($deliveryConfig['MAIN']["ITEMS"]["DEFAULT_".$name]["VALUE"])){ $dimensions[$name]=intval($deliveryConfig['MAIN']["ITEMS"]["DEFAULT_".$name]["VALUE"]); }elseif(!empty($deliveryParentConfig['MAIN']["ITEMS"]["DEFAULT_".$name]["VALUE"])){ $dimensions[$name]=intval($deliveryParentConfig['MAIN']["ITEMS"]["DEFAULT_".$name]["VALUE"]); } } } } foreach($dimensionsList as $dimensions) { foreach($restrictionParams as $name => $value) //LENGTH, WIDTH, HEIGHT { if($value <=0) continue; if(!isset($dimensions[$name])) continue; if(intval($dimensions[$name]) <= 0) continue; if(intval($dimensions[$name]) > intval($value)) return false; } } return true; } }