Добрый день!
Использую 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' => 'Время окончания доставки',
),
);
}
}
|