Для того чтобы сделать возможность для покупателя указать нужную ему дату и время доставки товара (делал для доставки продуктов) в Virtuemart3 необходимо сделать следующее:

 

  1. Открываем панель управления Virtuemart и на вкладке "Настройки"->"Поля, заполняемые пользователями" нажимаем создать
    vm3 date time delivery 1
  2. Создадим сначала поле выбора даты. Для этого в выпадающем списке вариантов "Типов полей" выбираем "Дата" , Заполняем Название поля (латиницей) и Заголовок поля.
    vm3 date time delivery 2
  3. Прокручиваем окно вниз и указываем параметры отбражения поля как на картинке и нажимаем "сохранить".
    vm3 date time delivery 3
    а именно:
       Обязательно                               Да    
       Показывать в корзине                 Да
       Показать в учетной записи         Нет
       Показать при выборе доставки   Да
       Только для чтения                      Нет
       Опубликовано                            Да
  4. По такому же примеру создаем новое поле и в выпадающем списке "Типов полей" выбираем "Drop Down (Ед. выбов)"
    vm3 date time delivery 4
    Указываем необходимые нам диапазоны времени, в которые может быть осуществлена доставка
    vm3 date time delivery 5
    Прокручиваем окно вниз и указываем параметры отображения поля как в пункте 3. Нажимаем сохранить.
  5.  В результате наших операций при оформлении покупки в корзине появится два пункта обязательных к заполнению покупателем
    vm3 date time delivery 6vm3 date time delivery 7

    А в информации о заказе появятся указанные покупателем при оформлении заказа дата и время доставки
    vm3 date time delivery 8

Друзья!!!
Спасибо Вам всем большое за поддержку проекта. Если не сложно при переводе пишите в комментарий свой email. Я буду знать от кого и мне очень приятно будет оказать посильную помощь этому человеку.

Если кому нужен другой по функционалу плагин, модуль или еще что то пишите в комментариях.

Добавить комментарий


Комментарии   

0 # Руслан 06.11.2019 09:45
Добрый день! Подскажиет пожалуйста. А как сменить формат вывода даты? Приходит год-месяц-день....
а как формат сделать чтобы был формат 05.11.2019 ну или 05-11-2019
Спасибо
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
+2 # Super User 07.11.2019 06:28
Здравствуйте, поискал в настройках, но не нашел, не знаю, что у вас за версия Virtuemart, но для VirtueMart 3.6.6 10191, через код можно сделать так:

1. Если вам надо чтобы только в письмах клиенту дата приходила в виде 05.11.2019 то тогда в файле формирования письма
components\com_virtuemart\views\invoice\tmpl\mail_html_shopperaddresses.php
добавьте в цикл вывода значений полей foreach ($this->shipmen tfields['fields '] as $field) { следующую конструкцию
if($field['name '] == 'date'){
$field['value'] = JHtml::_('date' , $field['value'] , 'd.m.Y', false );
}
где $field['name'] == 'date' date это имя поля с вашей датой . Изменяя формат 'd.m.Y' вы можете указывать какой вам надо формат даты с точкой с черточчкой и т.д.


2. если вам надо чтобы и в админпанели сайта с заказами был формат 05.11.2019 то надо в файле по пути administrator/c omponents/com_v irtuemart/helpe rs/vmjsapi.php находим функцию static function jDate в ней строку
$formatedDate = JHtml::_('date' , $date, $dateFormat, false );
на строку
$formatedDate = JHtml::_('date' , $date, 'd.m.Y', false );
где так же d.m.Y можете менять на свое усмотрение.

3. ну и чтобы в корзине при выборе даты выставлялась в поле дата в виде 05.11.2019 надо в админке сайта по пути Расширения -> Языки -> Переопределение констант переопределяем константу COM_VIRTUEMART_ DATE_FORMAT_INP UT_J16 для административно й панели и сайта на d.m.yy
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
+1 # Руслан 07.11.2019 15:42
Низкий вам поклон добрый человек)) Очень помогли с решением вопроса ;-)
Обязательно у себя на сайте как минимум открывайте Донат=)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Bz 22.09.2019 19:38
Добрый день, подскажите, есть несколько вариантов доставки (самовывоз, просто доставка и тд). если человек выбирает доставку курьером, то мне надо чтобы он выбрал время доставки, если же самовывоз, то данная функция не требуется. как настроить?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 04.10.2019 16:49
Вам нужно искать что то на подобии плагина "BIT Conditional Shopper Fields - Данный плагин предоставляет возможность скрывать/показы вать поля в зависимости от введенных данных в других строках", если не подойдет, то надо смотреть на месте и делать правки,
Например поле выбора время доставки у Вас обязательно? если да то один функционал , если нет, то достаточно будет при выборе способа доставки самовывоз скрыть скриптом поле выбора времени.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Илья 01.03.2018 10:28
Спасибо за Вашу статью!
Подскажите, пожалуйста, как можно сделать недоступными некоторые дни для выбора в календаре? Например, если доставка возможна на одной неделе только в ПН,СР, ПТ, а на другой во ВТ, ЧТ, СБ?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 01.03.2018 10:31
тут не смогу подсказать как быть
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 22.12.2016 12:32
Цитирую Ann:
Здравствуйте,
почему-то не работает поле date
Пишет Никогда и все

Может у вас версия virtuemart совершенно другая, статье то уже 2 года. плюс какие еще у вас там доработки я же не знаю.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
+2 # Ann 19.12.2016 12:09
Здравствуйте,
почему-то не работает поле date
Пишет Никогда и все
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору