Как получить поле properties из заказа minishop2?
Есть плагин на события
msOnCreateOrder
msOnBeforeCreateOrder
В нем получаем все данные адреса из заказа
$msAddress->get('receiver'),
$msAddress->get('phone'),
Проблем нет но $msAddress->get('properties'); Пустой
Знаю что там json, json_decode($properties) тоже пустой.
При этом при в админке все выводится и при получении данных заказа в снипете через SQL запрос к modx_ms2_order_addresses данные приходят.
Подскажите пожалуйста, в чем ошибка и что не так делаю.
msOnCreateOrder
msOnBeforeCreateOrder
В нем получаем все данные адреса из заказа
$msAddress->get('receiver'),
$msAddress->get('phone'),
Проблем нет но $msAddress->get('properties'); Пустой
Знаю что там json, json_decode($properties) тоже пустой.
При этом при в админке все выводится и при получении данных заказа в снипете через SQL запрос к modx_ms2_order_addresses данные приходят.
Подскажите пожалуйста, в чем ошибка и что не так делаю.
Комментарии: 15
Есть мнение, что вам нужны properties не адреса, а заказа.
Пробовал не работает да и они в таблице адреса лежат modx_ms2_order_addresses
Тут наши полномочия всё
Там проблема видимо кроется в том, что $msAddress содержит не все данные. createdon, phone, city,receiver, user_id. Но нет id и properties
Тогда получи самостоятельно объект адреса
Пытаюсь. Но нужен id а его не могу получить
Используйте связь между объектами $msAddress->Order
так там и так связь $msAddress = $msOrder->getOne('Address'); Или я недопонимаю в каком массиве копать?
Пардон не понял тогда. msAddress совершенно точно имеет id.
$msAddress->get('id') вот так не хочет.
$msOrder->get('num') есть
$msAddress->get('user_id') есть
а
$msAddress->get('id') нету.
$msOrder->get('id') тоже нет
$msAddress->get('user_id') есть
а
$msAddress->get('id') нету.
$msOrder->get('id') тоже нет
это массив весь
[id] =>
[user_id] => 115
[createdon] => 2023-06-28 22:38:43
[updatedon] =>
[receiver] => Тест
[phone] => +79999999999
[country] =>
[index] =>
[region] =>
[city] => Карла Маркса д.26
[metro] =>
[street] =>
[building] =>
[entrance] =>
[floor] =>
[room] =>
[comment] =>
[text_address] =>
[properties] =>
[assembly] => 0
[point] =>
[delivery] => 60
[email] => test@yandex.ru
[payment] => 1
[ms2_action] => order/submit
[ctx] => web
[id] =>
[user_id] => 115
[createdon] => 2023-06-28 22:38:43
[updatedon] =>
[receiver] => Тест
[phone] => +79999999999
[country] =>
[index] =>
[region] =>
[city] => Карла Маркса д.26
[metro] =>
[street] =>
[building] =>
[entrance] =>
[floor] =>
[room] =>
[comment] =>
[text_address] =>
[properties] =>
[assembly] => 0
[point] =>
[delivery] => 60
[email] => test@yandex.ru
[payment] => 1
[ms2_action] => order/submit
[ctx] => web
id пусто для события msOnBeforeCreateOrder, так как обект msOrder еще не сохранен на етом етапе. По поводу properties, по умолчанию етот масив пустой, нужно сначала туда что-то положить
properties на этапе msOnBeforeCreateOrder тоже пустой оказался, на этом этапе т.к. в нашем случае там пишутся utm только при сохранении заказа. Судя по многочисленным тестам в плагине на этом этапе можно получить только данные из формы заполненной посетителем в корзине+ товар.
Все Всем спасибо. Разобрался. Плагин собирал данные на момент msOnBeforeCreateOrderа тогда еще не присвоен id и properties
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.