andem
01.Апрель.2017 00:00:00
#1
Ребят, снова нужна помощь. Не пойму что делаю неправильно или чего не догоняю.
Предисловие:
Коротко, в стандартно созданной доставке "Обсудить с менеджером" нужно переименовать "Бесплатная доставка" на другой текст или совсем убрать.
Нашел хук {hook name="checkout:shipping_method"} в templates/views/checkout/components/shipping_rates.tpl
для проверки перед самим хуком добавил нужный код. Если айди этой доставки такойто, переименовываем цену ($rate) на нужный текст.
{if $shipping.shipping_id == 6}
{$rate = "Стоимость доставки обговаривается"}
{/if}
Все сработало!
Проблема:
Когда этот код перенес в свой модуль, со вставкой перед этим хуком шаблона с суфиксом pre. Он не стал работать.
Проверял. И между условием и в этом шаблоне к хуку, прописывал тестовые тексты. Все работает. А вот переменную $rate нифига не меняет. Хоть тресни.
Через assign тоже пробовал. Ничего.
Что не так?
Область видимости для это переменной только данный шаблон
Попробуйте
{assign var="rate" value="Стоимость доставки обговаривается" scope="parent"}
andem
03.Апрель.2017 00:00:00
#3
Область видимости для это переменной только данный шаблон
Попробуйте
{assign var="rate" value="Стоимость доставки обговаривается" scope="parent"}
Спасибо огромное! Я уже думал этого в smarty нет...
myway
08.Февраль.2019 13:33:52
#4
Пытаюсь вставить код на то же место, но не срабатывает. Работает ли он с новым Checkout?
vitus
08.Февраль.2019 13:41:31
#5
А нельзя просто языковую переменную изменить? Через “Администрирование” - “Языки” - “Переводы”
Скорее всего, в новом чекауте шаблоны перезаписывают стандартные шаблоны
myway
08.Февраль.2019 14:04:19
#7
В таком случае изменится и там, где это не требуется. Например, если доставка действительно должна быть бесплатной.
albinoz
08.Февраль.2019 16:27:51
#8
@myway , вы хотите убрать слово “Бесплатно” в “Обсудить с менеджером” в новом чекауте?
Если так, то способ такой.
В responsive/templates/addons/lite_checkout/components/shipping_rates.tpl
замените строку
<p class="shipping-method__title">{$shipping.shipping} — {$rate nofilter}</p>
на
<p class="shipping-method__title">{$shipping.shipping}{if $shipping.shipping_id !== "id_номер_доставки"} — {$rate nofilter}{/if}</p>
Вместо “id_номер_доставки ” – число, которое можно узнать в ссылке на странице редактирования доставки:
В итоге, для этого способа не будет отображаться слово “Бесплатно”:
2 лайка
myway
08.Февраль.2019 19:28:17
#9
У меня почему-то нет этой строки(
albinoz
08.Февраль.2019 20:32:16
#10
@myway , вы ищите через поиск браузера, который не ищет по коду на странице.
Сначала кликните в любом месте кода, затем нажмите CTRL + F и в появившемся окне уже ищите.
Нужное место на 76 строке.
1 лайк
myway
08.Февраль.2019 20:34:22
#11
Да, всё получилось. А возможно задать эту функцию для нескольких способов доставки? Куда можно добавить id другого вида?
albinoz
08.Февраль.2019 20:41:09
#12
Вместо {if $shipping.shipping_id !== "id_номер_доставки"}
вот так:
{if $shipping.shipping_id !== "id_доставки_1" && $shipping.shipping_id !== "id_доставки_2"}
Конструкция неидеальная, но рабочая. Не забывайте, что при обновлении может затереться, хуков в файле нет, чтоб прицепиться.
1 лайк
myway
08.Февраль.2019 20:47:55
#13
Получилось именно так, как хотел. Спасибо!
1 лайк