Решили вопрос с логикой реализации первого минуса.
Отображение дополнительных полей для вариантов досивки в зависимости от даты и времени суток.
Поля созданы в Filterit+Simple
Путь:/catalog/model/tool/
В файле simpleapicustom.php
Дописали код:
public function getAvailableDeliveryTimes($deliveryDateStr) {
$values = array();
date_default_timezone_set("Europe/Riga");
setlocale(LC_TIME, "ru_RU");
if (empty($deliveryDateStr)) {
$deliveryDate = new DateTime('now');
}
else
{
$deliveryDate = new DateTime($deliveryDateStr);
}
$currentDateTime = new DateTime('now');
$deliveryDate->setTime( 9, 0, 0 );
if ($deliveryDate->getTimestamp() - $currentDateTime->getTimestamp() > 0) {
array_push($values,array(
'id' => 'morning',
'text' => $this->language->get('text_delivery_morning') . ' ' . $this->language->get($deliveryDate->format('l')) . ' ' . $deliveryDate->format('d.m.Y')
));
}
$deliveryDate->setTime( 18, 0, 0 );
if ($deliveryDate->getTimestamp() - $currentDateTime->getTimestamp() > 0) {
array_push($values,array(
'id' => 'evening',
'text' => $this->language->get('text_delivery_evening') . ' ' . $this->language->get($deliveryDate->format('l')) . ' ' . $deliveryDate->format('d.m.Y')
));
}
return $values;
}
Ггде под себя подстроить можно date_default_set, setlocale, setTime, значение morning и evening (в моем случае это два временных слои на выпотому чтор).
setTime( H, m, s ) - это время во сколько данный слот уже не доступен в текущий гдень. Например, если досивка с 10 утра до 13 (например), и для обрилитки заказов Вам требуется час, то вписываем setTime( 9, 0, 0 ), чтобы слот не был доступен за час до начала периода досивки. Да же и со вторым слотом, у меня это evening.
Да же для достижения дружелюбности интерфейса каждому слоту добавляется текст, который можно прописать в локализации для каждого языка. Для первого вариани это text_delivery_morning, а для второго text_delivery_evening. В папке /catalog/language/ переходим в папку нужного языка и открываем файл php. Например: /ru-ru/ru-ru.php
Добавляем в разгдел Text нужные значения.
$_['text_delivery_morning'] = 'Утренняя досивка —';
$_['text_delivery_evening'] = 'Вечерняя досивка —';
$_['Monday'] = 'Понегдельник';
$_['Tuesday'] = 'Вторник';
$_['Wednesday'] = 'Среда';
$_['Thursday'] = 'Четверг';
$_['Friday'] = 'Пятница';
$_['Saturday'] = 'Субпотому чтои';
$_['Sunday'] = 'Воскресенье';
В когде есть добавка, чтобы после текстового значения еещё прописывался гдень негдели, ну чтобы клиенту было удобно воспринимать информацию. Это в части кода, ггде прописано $this->language->get($deliveryDate->format('l')) . ' ' . $deliveryDate->format('d.m.Y')
Скриншоты как это выглядит на практике: