Разделы документации

Шорткод WT_LOCATION (*Pro)

Шорткод выводит контент в зависимости от активной локации посетителя (регион, тип региона, страна, родительский регион). Позволяет показывать разный текст, цены, адреса и телефоны. Поддерживает подстановку данных региона через {get} и {get_phone_href}.

Назначение

  • Условный вывод контента по активному региону, стране или родительскому региону
  • Подстановка данных региона (телефон, адрес, название и т.д.) в текст
  • Вывод контента при наличии поддомена, региональной директории или региона в URL

Синтаксис

Общая конструкция шорткода:

[wt_location атрибут="значение" get="имя переменной"]Контент перед значением: {get} контент после значения[/wt_location]
  • атрибут="значение" — любые аргументы (show_for, show_for_country, not_show_for и т.д.)
  • get="имя переменной" — ключ поля для подстановки (region_name, phone и др.)
  • {get} — плейсхолдер, заменяемый на значение указанного в get поля

Простой вариант:

[wt_location]Контент для всех регионов[/wt_location]

или с аргументами:

[wt_location show_for_country='Россия']от 100 000 руб[/wt_location]

с подстановкой данных:

[wt_location get="region_name"]Ваш город: {get}[/wt_location]

Аргументы

АргументОписаниеПо умолчанию
show_forСовпадение региона (через запятую)—
not_show_forНесовпадение региона—
show_for_typeСовпадение типа региона (через запятую): city, region, country и др. Фильтрация по типу локации актуализирована в 1.18; примеры — ниже.—
not_show_for_typeНесовпадение типа региона (список типов через запятую). С 1.18 — см. примеры ниже.—
show_for_parentСовпадение родителя (область, край)—
not_show_for_parentНесовпадение родителя—
show_for_countryСовпадение страны активной локации: перечисление названий стран через запятую (как в данных региона). С версии 1.18 — см. примеры ниже.—
not_show_for_countryНе выводить контент, если страна совпадает с одной из перечисленных. С версии 1.18 — см. примеры ниже.—
getКлюч поля: region, region_name, phone, parent_name, country_name, subdomain и др. Полный список — в настройке регионов.—
get_formatphone_href — телефон как ссылка tel:...false
beforeТекст слева от итогового вывода; только если задан get и значение поля не пусто (в т.ч. после default). HTML не экранируется.—
afterТекст справа от итогового вывода; то же условие. HTML не экранируется.—
classС версии 1.18: если атрибут задан, итоговый вывод оборачивается в <span class="…">…</span>. В значении — один или несколько CSS-классов через пробел.—
defaultЗначение по умолчанию, если поле из get пусто—
is_setВыводить только если указанное поле установлено—
show_is_root_directoryТолько при региональной директории в корнеfalse
show_is_url_path_locationТолько при регионе в URLfalse
show_is_subdomainТолько при поддоменеfalse
shortcodeОбрабатывать вложенные шорткодыfalse
positionУникальная метка для объединения нескольких шорткодов в группу. Выводится контент первого подходящего условия (см. примеры).—

Подстановки в контенте (маски)

ПлейсхолдерОписаниеПример
{get}Значение поля без изменений+7 (927) 927-13-13
{get_phone_href}Ссылка для звонка tel:...tel:+79279271313

Примеры

Условный вывод по стране и региону

Несколько фильтров в одном шорткоде объединяются через И: контент выводится только если выполняются все заданные условия (show_for_parent, not_show_for, show_for_country и т.д.).

[wt_location show_for_country='Россия']от 100 000 руб[/wt_location]
[wt_location show_for_country='Россия,Казахстан,Беларусь']Показ только для этих стран[/wt_location]
[wt_location not_show_for_country='Украина']Скрыть для Украины[/wt_location]
[wt_location show_for_type='city']Текст только для типа city[/wt_location]
[wt_location not_show_for_type='country']Скрыть для типа country[/wt_location]
[wt_location show_for_parent='Самарская область']Текст для Самарской области[/wt_location]
[wt_location show_for='Москва,Тольятти']Москва или Тольятти[/wt_location]
[wt_location not_show_for='Владивосток,Самара']не Владивосток и не Самара[/wt_location]
[wt_location show_for_parent='Самарская область' not_show_for='Самара']Доставка по области[/wt_location]

Последний пример: текст виден для городов Самарской области, кроме Самары (Тольятти — да, Самара — нет, Москва — нет).

Вывод активного региона и поддомена

[wt_location get="region_name"/]
[wt_location get="region_name"][/wt_location]
[wt_location get="region_name" class="current-region"/]
[wt_location get="region_name" class="current-region text-bold"]Ваш город: {get}[/wt_location]
[wt_location get="region_name" before="г. " /]
[wt_location get="region_name" before="г. " after="!"]{get}[/wt_location]
[wt_location get="subdomain"/]

Телефон

[wt_location get="phone"/]
[wt_location get="phone" before="Тел: " /]
[wt_location get="phone"]Тел: {get}[/wt_location]
[wt_location get="phone"]Тел: <a href="{get_phone_href}">{get}</a>[/wt_location]
[wt_location get="phone" get_format="phone_href"/]
[wt_location get="phone" default="—" before="Тел: "]{get}[/wt_location]

Email

[wt_location get="email"/]
[wt_location get="email"]Email: {get}[/wt_location]
[wt_location get="email"]Email: <a href="mailto:{get}">{get}</a>[/wt_location]
[wt_location get="email" default="info@example.com"]{get}[/wt_location]

Адрес

[wt_location get="address"/]
[wt_location get="address"]Адрес офиса: {get}[/wt_location]
[wt_location get="address" default="Адрес уточняйте у менеджера"]{get}[/wt_location]

Название региона в падежах

Необходимо предварительно добавить написание в настройках региона (REGIONS_SETUP.md):

[wt_location get="region_name_nominative"]есть {get}[/wt_location]
[wt_location get="region_name_genitive"]нет {get}[/wt_location]
[wt_location get="region_name_dative"]по {get}[/wt_location]
[wt_location get="region_name_accusative"]вижу {get}[/wt_location]
[wt_location get="region_name_instrumental"]горжусь {get}[/wt_location]
[wt_location get="region_name_prepositional"]в {get}[/wt_location]

Название родителя (области) в падежах

[wt_location get="parent_name_nominative"]есть {get}[/wt_location]
[wt_location get="parent_name_genitive"]нет {get}[/wt_location]
[wt_location get="parent_name_dative"]по {get}[/wt_location]
[wt_location get="parent_name_accusative"]вижу {get}[/wt_location]
[wt_location get="parent_name_instrumental"]горжусь {get}[/wt_location]
[wt_location get="parent_name_prepositional"]в {get}[/wt_location]

Группа с fallback (position)

Выводится контент первого подходящего условия:

[wt_location position=1 show_for='Москва,Тольятти']Москва или Тольятти[/wt_location]
[wt_location position=1 not_show_for='Владивосток,Самара']не Владивосток и не Самара[/wt_location]
[wt_location position=1]отображаем в случае несовпадения условий выше[/wt_location]

Вложенные шорткоды

[wt_location show_for='Москва' shortcode=true][shortcode/][/wt_location]

Город в заголовке страницы

Не рекомендуется вставлять шорткод в название страницы (title): город может подставляться в пункты меню и другие неконтролируемые области шаблона. Лучше добавлять название города непосредственно в исходном коде шаблона страницы (см. PHP_FUNCTIONS.md).


Технические детали

  • Обработчик: WtContacts::shortcodeLocation()
  • Файл: modules/wt_contacts/wt_contacts.php
  • Данные: WT::$location->getValue('ключ')

См. также

Кейсы внедрения плагина

MAX