Не удается вывести значение из массива $order Есть решение

1) В общем уже битый час не могу вытащить значение поля из массива $order.

Дело обстоит в печатной форме: в шаблоне формы (плагин Invoice) нужно вывести поле, добавленное в поля адреса.

Родные поля: Город, район, адрес выводятся кодом {$order.billing_address.city} .... {$order.billing_address.address} Выделенное жирным, являются ключами в массиве как я понимаю.

Есть добавленное поле: Телефон получателя у него ключ telefon-polucha. Логически, при вводе {$order.billing_address.telefon-polucha} должно выводиться, но нет, выводится 0.

Ладно, проверяем кодом:

{foreach from=$order.billing_address key=k item=v}

   <strong>{$k}</strong>: {$v}<br>

{/foreach}

получаем:

name: 
firstname: 
lastname: 
address: Караганда, Казахстан
zip: 
street:
city: Караганда
region: 01
country: kaz
======= ЭТО ДОБАВЛЕННЫЕ ПОЛЯ
ne-znayu-adres: 
imya-poluchatel: Ксения
telefon-polucha: +81234567
otpravit-anonim: 1
tekst-besplatno: 
======= / ЭТО ДОБАВЛЕННЫЕ ПОЛЯ
lng: 
lat: 
country_name: Казахстан
region_name: Город (р-н Караганды)
address_1: Караганда
address_2: Казахстан

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


2) Помимо данной проблемы, не могу вывести статус данного заказа. На {$status} и {$order.state} ноль реакции

2 ответа

  • 2
    Сам спросил - сам ответил. Проблема была в дефисе imya-poluchatel, он воспринимался как минус, отсюда и ошибка. Я считаю это недочетом разработчиков webasyst, так как логичнее, вместо пробела подставлять нижнее подчеркивание _

    Сам код правильного написания:

    <div>Имя получателя: {$order.billing_address['imya-poluchatel']|escape}</div>
    <div>Телефон получателя: {$order.billing_address['telefon-polucha']|escape}</div>
    <div>Текст открытки: {$order.billing_address['tekst-besplatno']|escape}</div>



    • +1

      ИМХО, тут больше виноват синтаксис PHP, допускающий запись строковых ключей без заключения их в кавычки, что расслабляет и приводит к таким ошибкам. (Smarty превращает шаблоны в PHP код)

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите