Jump to content
Sign in to follow this  
Zavik21

[Решено] Время клиента в карточке заказа

Recommended Posts

Добрый день!

Такая идея, хорошо было бы если выводилось в карточке заказа время местное у покупателя.

Подскажите, в какую сторону рыть? 

Share this post


Link to post
Share on other sites

спрашивать город/регион и по этим данным выводить время.

Share this post


Link to post
Share on other sites

можно немного поподробнее? как задать смещение? или куда обращаться чтобы отдавало время выбранного региона?

Share this post


Link to post
Share on other sites

можно js скриптом устанавливать в <input type"hidden" name="client_time" /> время

 

$('input[name=client_time]').val(Date());

И предавать и обрабатывать в с методах оформления заказа

Share this post


Link to post
Share on other sites

Zavik21,

http://php.net/manual/ru/timezones.php

http://php.net/manual/ru/timezones.europe.php

http://php.net/manual/ru/timezones.asia.php

chukcha, и жить в прошлом/будущем/параллельной реальности, ибо такие данные - самые НЕнадежные.

Share this post


Link to post
Share on other sites

Условно geo ip также не надежно

Share this post


Link to post
Share on other sites

1. я предлагал запрашивать у юзера его регион и по нему получать время.

2. о geoip речи не было.

3. так и эдак geoip надежнее, чем глючная ОС юзера с просроченной датой и вечной полночью :ugeek:

Share this post


Link to post
Share on other sites

Всем спасибо за ответы.

сделал все более топорно.

Может решение и не самое лучшее, но работает. Напишу как сделал, может кому пригодится.

Взял у себя с сайта весь список регионов, проставил разницу во времени.

в файл admin/controller/sale/order.php, у меня после 1595 строки, добавил следующее:

if ($order_info['payment_zone'] == 'Республика Хакасия') {
$this->data['time_region'] = '+7';
} else if ($order_info['payment_zone'] == 'Московская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Чукотский АО') {
$this->data['time_region'] = '+12';
} else if ($order_info['payment_zone'] == 'Архангельская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Астраханская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Алтайский край') {
$this->data['time_region'] = '+6';
} else if ($order_info['payment_zone'] == 'Белгородская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Еврейская АО') {
$this->data['time_region'] = '+10';
} else if ($order_info['payment_zone'] == 'Амурская область') {
$this->data['time_region'] = '+9';
} else if ($order_info['payment_zone'] == 'Брянская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Чувашская Республика') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Челябинская область') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Карачаево-Черкеcсия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Забайкальский край') {
$this->data['time_region'] = '+8';
} else if ($order_info['payment_zone'] == 'Ленинградская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Калмыкия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Сахалинская область') {
$this->data['time_region'] = '+10';
} else if ($order_info['payment_zone'] == 'Республика Алтай') {
$this->data['time_region'] = '+6';
} else if ($order_info['payment_zone'] == 'Чеченская Республика') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Иркутская область') {
$this->data['time_region'] = '+8';
} else if ($order_info['payment_zone'] == 'Ивановская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Удмуртская Республика') {
$this->data['time_region'] = '+4';
} else if ($order_info['payment_zone'] == 'Калининградская область') {
$this->data['time_region'] = '+2';
} else if ($order_info['payment_zone'] == 'Калужская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Татарстан') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Кемеровская область') {
$this->data['time_region'] = '+7';
} else if ($order_info['payment_zone'] == 'Хабаровский край') {
$this->data['time_region'] = '+10';
} else if ($order_info['payment_zone'] == 'Ханты-Мансийский АО - Югра') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Костромская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Краснодарский край') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Красноярский край') {
$this->data['time_region'] = '+7';
} else if ($order_info['payment_zone'] == 'Курганская область') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Курская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Тыва') {
$this->data['time_region'] = '+7';
} else if ($order_info['payment_zone'] == 'Липецкая область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Магаданская область') {
$this->data['time_region'] = '+10';
} else if ($order_info['payment_zone'] == 'Республика Дагестан') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Адыгея') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Москва') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Мурманская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Кабардино-Балкария') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Ненецкий АО') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Ингушетия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Нижегородская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Новгородская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Новосибирская область') {
$this->data['time_region'] = '+6';
} else if ($order_info['payment_zone'] == 'Омская область') {
$this->data['time_region'] = '+6';
} else if ($order_info['payment_zone'] == 'Орловская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Оренбургская область') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Пензенская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Пермский край') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Камчатский край') {
$this->data['time_region'] = '+12';
} else if ($order_info['payment_zone'] == 'Республика Карелия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Псковская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Ростовская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Рязанская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Ямало-Ненецкий АО') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Самарская область') {
$this->data['time_region'] = '+4';
} else if ($order_info['payment_zone'] == 'Республика Мордовия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Саратовская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Смоленская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Санкт-Петербург') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Ставропольский край') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Коми') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Тамбовская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Томская область') {
$this->data['time_region'] = '+6';
} else if ($order_info['payment_zone'] == 'Тульская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Тверская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Тюменская область') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Республика Башкортостан') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Ульяновская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Бурятия') {
$this->data['time_region'] = '+8';
} else if ($order_info['payment_zone'] == 'Республика Северная Осетия') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Владимирская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Приморский край') {
$this->data['time_region'] = '+10';
} else if ($order_info['payment_zone'] == 'Волгоградская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Вологодская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Воронежская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Кировская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Саха') {
$this->data['time_region'] = '+9';
} else if ($order_info['payment_zone'] == 'Ярославская область') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Свердловская область') {
$this->data['time_region'] = '+5';
} else if ($order_info['payment_zone'] == 'Республика Марий Эл') {
$this->data['time_region'] = '+3';
} else if ($order_info['payment_zone'] == 'Республика Крым') {
$this->data['time_region'] = '+3';
} else {
$this->data['time_region'] = 'err';
}

Затем в файле admin/view/template/sale/order_info.tpl вставляете следующий текст, туда где хотите чтобы выходило время


Время у покупателя:
if ($time_region <> 'err') {
$user_timezone = $time_region;
echo gmdate("H:i:s", time() + 3600*($user_timezone));
} else {
echo "Регион не найден";}
?>

Прошу сильно не пинать, решил свою задачу так, как смог)))))))

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Bn174uk
      Зачем нужен этот модуль:
      Например, у Вас работают удаленно менеджеры и у них есть конкретный график работы. Но, как бывает зачастую, менеджеры, работающие удалённо, могут пренебрегать этим графиком и выполнять свою работу, когда им удобно, вследствие чего, заказы могут быть обработаны/отправлены на склад/поставщику в не положенное время.
      В итоге покупатель получает свой заказ позже и тут есть 2 варианта развития событий: 
      Худший вариант: клиент просто отказывается от заказа, так как ожидал его получить раньше, а это упущенная прибыль.
      Лучший вариант: клиент забирает заказ и остается Вашим постоянным покупателем.

      Чем поможет модуль в данной ситуации:
      Модуль позволяет задать свой график работы в админке для каждой группы пользователей.
      Это позволяет контролировать рабочий график менеджеров, по скольку раньше или позже указанного графика они не смогут зайти.
      Также, для того, чтобы они знали сколько осталось времени до закрытия доступов, в шапке админки отображается счетчик времени.
      Для той группы пользователей, у которых доступ должен быть всегда, график работы не выставляется.
      В итоге мы получаем "оффлайн офис", как будто менеджеры приходят работать в офис.
      После рабочего дня можно будет отследить качество их работы (выполненных заказов) и в случает чего, штрафовать сотрудников за некачественную работу.

      Что умеет модуль:
      Задать для каждой группы пользователей свой график работы; Задать дополнительное время для отсчета времени в админке; Отображать в шапке админки время до конца рабочего графика (при желании его можно отключить); Задать свой текст в шапке возле времени (Например "До конца рабочего дня" - "тут таймер"); Задать свой текст в шапке возле времени по истечению графика работы (Например "Рабочий день окончен. До блокировки системы:");  
      А теперь на примере расскажу, как пользоваться модулем:

      Предположим, есть группа пользователей "менеджер 1", график работы у них с 10:00 до 18:00.
      Для того, чтобы у них не блокировался доступ с 10:00 до 18:00 (ведь офисы не открываются ровно в 10 и не закрываются в 18), можно задать отрезок времени, к примеру, с 09:30 до 18:30 (п.1 - "Что умеет модуль"), т.е. по 30 минут до открытия и до закрытия "офиса".
      В поле "Время в админке" (п.2 - "Что умеет модуль") можно указать 18:00 и будет отображаться текст (п.4 - "Что умеет модуль") и ваш отсчет начинается с этого времени.
      По истечении этого времени, таймер будет идти уже от времени блокировки доступа (п.1 - "Что умеет модуль" ) и подставляется текст из п.5 - "Что умеет модуль"

      В итоге:

      до 09:30 при попытке зайти в админку будет отображаться ошибка "Рабочее время закончилось!";
      до 18:00  в шапке отображается "До конца рабочего дня" - количество оставшегося времени (ч:м:с)";
      после 18:00 в шапке отображается "Рабочий день окончен. До блокировки системы:" -  количество оставшегося времени (ч:м:с)";
      после 18:30 при попытке перейти на любую страницу в админке или зайти в нее, будет выдаваться ошибка "Рабочее время закончилось!";

      Перед тем как обратиться за техподдержку прочтите FAQ , возможно там будет ответ на Ваш вопрос.

      Инструкция по настройке:   
      Выберите нужную версию модуля в зависимости от Вашей версии opencart; Установите модуль через стандартный менеджер дополнений; Обновите кеш OCMOD; Перейдите в настройки "группы пользователей" выберите нужную группу и поставьте галочки в "Разрешён просмотр" и "Разрешено внесение изменений" возле user/user_access После чего в разделе "Система/Пользователи" появится раздел "Доступ в админку по времени" В этом разделе можете задать для каждой группы пользователей свое время доступа к админке.  
      Минимальные системные требования:
      PHP 5.3 или выше;  
      Техническая поддержка:
      Техническая поддержка осуществляется всем пользователям, легально купившим модуль на оф.сайтах либо у самого автора.

      Лицензия:
      Каждая копия модуля действует на 1 домен и его поддомен. 
      Поэтому если хотите установить модуль еще на один домен, Вы должны приобрести еще одну копию модуля.

      По всем вопросам и предложениям писать [email protected]
    • By Bn174uk
      300.00 руб
      Скачать/Купить дополнение


      Ограничение доступа в админку по времени
      Зачем нужен этот модуль:
      Например, у Вас работают удаленно менеджеры и у них есть конкретный график работы. Но, как бывает зачастую, менеджеры, работающие удалённо, могут пренебрегать этим графиком и выполнять свою работу, когда им удобно, вследствие чего, заказы могут быть обработаны/отправлены на склад/поставщику в не положенное время.
      В итоге покупатель получает свой заказ позже и тут есть 2 варианта развития событий: 
      Худший вариант: клиент просто отказывается от заказа, так как ожидал его получить раньше, а это упущенная прибыль.
      Лучший вариант: клиент забирает заказ и остается Вашим постоянным покупателем.

      Чем поможет модуль в данной ситуации:
      Модуль позволяет задать свой график работы в админке для каждой группы пользователей.
      Это позволяет контролировать рабочий график менеджеров, по скольку раньше или позже указанного графика они не смогут зайти.
      Также, для того, чтобы они знали сколько осталось времени до закрытия доступов, в шапке админки отображается счетчик времени.
      Для той группы пользователей, у которых доступ должен быть всегда, график работы не выставляется.
      В итоге мы получаем "оффлайн офис", как будто менеджеры приходят работать в офис.
      После рабочего дня можно будет отследить качество их работы (выполненных заказов) и в случает чего, штрафовать сотрудников за некачественную работу.

      Что умеет модуль:
      Задать для каждой группы пользователей свой график работы; Задать дополнительное время для отсчета времени в админке; Отображать в шапке админки время до конца рабочего графика (при желании его можно отключить); Задать свой текст в шапке возле времени (Например "До конца рабочего дня" - "тут таймер"); Задать свой текст в шапке возле времени по истечению графика работы (Например "Рабочий день окончен. До блокировки системы:");  
      А теперь на примере расскажу, как пользоваться модулем:

      Предположим, есть группа пользователей "менеджер 1", график работы у них с 10:00 до 18:00.
      Для того, чтобы у них не блокировался доступ с 10:00 до 18:00 (ведь офисы не открываются ровно в 10 и не закрываются в 18), можно задать отрезок времени, к примеру, с 09:30 до 18:30 (п.1 - "Что умеет модуль"), т.е. по 30 минут до открытия и до закрытия "офиса".
      В поле "Время в админке" (п.2 - "Что умеет модуль") можно указать 18:00 и будет отображаться текст (п.4 - "Что умеет модуль") и ваш отсчет начинается с этого времени.
      По истечении этого времени, таймер будет идти уже от времени блокировки доступа (п.1 - "Что умеет модуль" ) и подставляется текст из п.5 - "Что умеет модуль"

      В итоге:

      до 09:30 при попытке зайти в админку будет отображаться ошибка "Рабочее время закончилось!";
      до 18:00  в шапке отображается "До конца рабочего дня" - количество оставшегося времени (ч:м:с)";
      после 18:00 в шапке отображается "Рабочий день окончен. До блокировки системы:" -  количество оставшегося времени (ч:м:с)";
      после 18:30 при попытке перейти на любую страницу в админке или зайти в нее, будет выдаваться ошибка "Рабочее время закончилось!";

      Перед тем как обратиться за техподдержку прочтите FAQ , возможно там будет ответ на Ваш вопрос.

      Инструкция по настройке:   
      Выберите нужную версию модуля в зависимости от Вашей версии opencart; Установите модуль через стандартный менеджер дополнений; Обновите кеш OCMOD; Перейдите в настройки "группы пользователей" выберите нужную группу и поставьте галочки в "Разрешён просмотр" и "Разрешено внесение изменений" возле user/user_access После чего в разделе "Система/Пользователи" появится раздел "Доступ в админку по времени" В этом разделе можете задать для каждой группы пользователей свое время доступа к админке.  
      Минимальные системные требования:
      PHP 5.3 или выше;  
      Техническая поддержка:
      Техническая поддержка осуществляется всем пользователям, легально купившим модуль на оф.сайтах либо у самого автора.

      Лицензия:
      Каждая копия модуля действует на 1 домен и его поддомен. 
      Поэтому если хотите установить модуль еще на один домен, Вы должны приобрести еще одну копию модуля.

      По всем вопросам и предложениям писать [email protected]
      Добавил Bn174uk Добавлено 21.08.2019 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Нет Старая цена  
    • By Siciliez
      Всем привет!
      Подскажите, пожалуйста, в чем может быть проблема?
      Когда проваливаюсь в карту товара всплывает окно "Choose Time" и надо устанавливать время.
      Закрыть или по другому окно не получается.
      Скрин во вложении.
       

    • By Siciliez
      помогите разобраться. Когда захожу в товар, сращу всплывает окно (choose time) и никак его обрать нельзя. Как его модно убрать?

    • By Vadya25
      Здравствуйте.
      Opencart 2.0.1.1
      Подскажите, реально ли сделать чтобы опцию можно было бы выбрать один только раз.
      Например дата и время доставки, чтобы человек выбрал ее и все. Больше ему не пришлось бы выбирать для каждого товара каждый раз.
      Заранее спасибо
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.