Способ доставки Woocommerce

Владимир19 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
27.09.2017

Необходимо разработать плагин Самовывоза.

Требования:

Админка

В админке, на странице woocommerce -> натройки -> доставка - должен появиться способ доставки "Pickup Point"

На странице настроек плагина должны быть следующие настройки:

1. Включить плагин - чекбокс

2. Название способа доставки - текст (который будет выводиться на странице оформления заказов в разделе "способ доставки")

3. Кнопка "Сохранить изменения"

4. Блок "Населенные пункты". В этом блоке должна быть предусмотрена возможность добавлять населенные пункты. Населенные пункты вводятся вручную в input type="text", т.е. туда можно написать все что угодно.

5. Блок "Пункты самовывоза". В этом блоке добавляются пункты самовывоза с привязкой к городу: текстовое поле, в котором, к примеру пишем "ул. Акакия Бздрищенко, д.8" и рядом селект, в котором можно выбрать населенный пункт из добавленных ранее в блоке "Населенные пункты".

Если населенных пунктов нет, то пункты самовывоза указываются без привязки к городу.

Насленные пункты и Пункты самовывоза должны сортироваться простым перетаскиванием (drag&drop)

Страница оформления заказа site.com/checkout

В блоке выбора способа доставки появляется пункт "Самовывоз" (вернее название, которое мы задали в админке)

Под название появляется селект с выбором "Населенного пункта", а под ним селект с "Пунктами самовывоза", привязанными к городу, который выбран в селекте "Населенный пункт".

Когда в 1ом селекте выбираем (или меняем) населенный пункт, к нему по аяксу подгружется селект с пунктами самовывоза, привязанными к выбранному населенному пункту.

Замечание: Не приветствуется выводить все списки населенных пунктов и пунктов самовывоза, а затем с помощью JS показывать и скрывать тот или ной вариант. Предпочтительней подгружать тот или ной селект по событию update_checkout.

Код должен структурированным и понятным, желательно с комментариями. JS от php желательно отделять в разные файлы, а не мешать в одну кашу.