Добрый день!
Использую onSaleDeliveryRestrictionsClassNamesBuildList
Столкнулся с проблемой, что скрипт от public static function check не отрабатывает, в чем может быть проблема?
Использую onSaleDeliveryRestrictionsClassNamesBuildList
Столкнулся с проблемой, что скрипт от public static function check не отрабатывает, в чем может быть проблема?
Код |
---|
<?php use Bitrix\Sale\Delivery\DeliveryLocationTable, Bitrix\Sale\Internals\CollectableEntity, Bitrix\Sale\Shipment; class InCartPropCodeDeliveryRestriction extends \Bitrix\Sale\Delivery\Restrictions\Base { public static function getClassTitle() { return 'По времени доставки'; } public static function getClassDescription() { return 'Скрыть доставку в определенное время'; } public static function check($arData, array $restrictionParams, $deliveryId = 0) { //Ваши входные данные $start_work = $restrictionParams['PARAM_CODE']; $end_work = $restrictionParams['PARAM_CODE_2']; date_default_timezone_set("Europe/Moscow"); $currentTime = date('H:i'); //текущее время с датой, даже если оно у вас 12:00 все равно имеет дату $currentDateTime = strtotime(date('Y-m-d') ." ". $currentTime); //Дата и время во сколько мы закрылись вчера $previousDayEnd; //Дата и время во сколько мы открылись сегодня $startDateTime; //Дата и время во сколько мы закрылись сегодня $endDateTime; $startDateTime = strtotime(date('Y-m-d') ." ". $start_work); if (strtotime($start_work) <= strtotime($end_work)){ $endDateTime = strtotime(date('Y-m-d') ." ". $end_work); $previousDayEnd = strtotime(date('Y-m-d') ." ". $end_work . "-1 days"); } else{ $endDateTime = strtotime(date('Y-m-d') ." ". $end_work . "+1 days"); $previousDayEnd = strtotime(date('Y-m-d') ." ". $end_work ); } if ($currentDateTime >= $startDateTime && $currentDateTime <= $endDateTime) { return true; } else if($currentDateTime < $startDateTime && $currentDateTime < $previousDayEnd ){ return true; } else { return false; } } protected static function extractParams(CollectableEntity $shipment) { return true; } public static function getParamsStructure($deliveryId = 0) { return array( "PARAM_CODE" => array( 'TYPE' => 'STRING', 'LABEL' => 'Время начала доставки', ), "PARAM_CODE_2" => array( 'TYPE' => 'STRING', 'LABEL' => 'Время окончания доставки', ), ); } } |