WP Manifestindependent plugin directory
manifest / ecommerce / woo-city-select

Woo City Select

Выбор населённого пункта на любой странице сайта. При активном WooCommerce выбор может подставляться в адрес доставки на checkout или использоваться для запроса стоимости доставки на любой странице сайта.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/fedirina/woo-city-select/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Плагин выбора населённого пункта для WordPress / WooCommerce.

Посетитель указывает город доставки сам. Выбор хранится в cookie около года и может подставляться в адрес доставки WooCommerce. Также может использоваться при запросе стоимости доставки на любой странице сайта. Сам запрос стоимости доставки для разных служб доставки плагин не выполняет.

Что умеет плагин:

  • выводить кнопку текущего города и модалку со списком крупных городов и поиском;
  • добавляет отдельную страницу в настройки в WooCommerce: список городов в модалке и API-ключ DaData;
  • при оформлении заказа заполняет пустые поля города и региона.

Куда можно поставить блок

  1. В шаблоне темы: Woo_City_Select_Render::render_trigger() (например, в шапке).
  2. Шорткодом [woo_city_select] в тексте страницы или записи.

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

Поведение

Город по IP или геолокации не определяется. Пока посетитель не выбрал другой пункт, в качестве текущего города выводится Москва.

Названия пользователь не набирает полностью вручную: и на витрине, и в админке пункт выбирают из подсказок DaData. В подсказках только населенные пункты с регионами.

В cookie уходят и название, и регион, чтобы было возможщно разлчить одноимённые населённые пункты в разных регионах. В шапке видно только город, регион — в подсказках при выборе.

Как устроен код

Классы без глобальных функций, один файл — один класс. WooCommerce не обязателен для блока на витрине; настройки и checkout — только если WC активен. Модалка на нативном <dialog>, без Bootstrap. Cookie читается на сервере, поэтому город сразу доступен в PHP при оформлении заказа.