Не могу получить значение дополнительного поля в php

Здравствуйте.
Добавил поля в заказ по этому мануалу modx.pro/solutions/10040. Всё работает. Но не могу понять, как получить значение поля в php коде (плагине на событие BeforeCreateOrder). Пытался так:
$value = $this->Order->Address->get('properties[extfld_srok]');
Почему-то не работает.
Игорь
24 февраля 2021, 13:36
modx.pro
397
0

Комментарии: 5

Наумов Алексей
24 февраля 2021, 14:31
+1
$address =  $this->Order->getOne('Address');
$properties = $address->get('properties');
print_r($properties);
    Игорь
    24 февраля 2021, 15:12
    0
    что-то такое пытался вставить в код — ничего не отображается… заказ формируется без моих дополнительных полей и «пока»…
    самое обидное, что я не пытаюсь изобретать велосипед — просто пытаюсь понять, почему это все не работает в компоненте modstore.pro/packages/import-and-export/frontpadapi, хотя там все эти функции прописаны именно на опцию properties…
    Пока что придумал одну бредовую идею: что оба плагина (формирование полей и фронтпад) срабатывают на одно событие BeforeCreateOrder и поэтому в момент срабатывания фронтпада этих полей еще нет… прошу не смеяться, я ещё только учусь
      Наумов Алексей
      24 февраля 2021, 15:26
      0
      Я не очень понял, про что речь, с компонентом не знаком.

      оба плагина (формирование полей и фронтпад) срабатывают на одно событие BeforeCreateOrder и поэтому в момент срабатывания фронтпада этих полей еще нет
      это можно исправить, для плагина можно изменить приоритет с которым он срабатывает, тем самым управляя очередностью. Есть соответствующее поле на вкладке События у плагина.
        Игорь
        24 февраля 2021, 15:41
        0
        пытался… для плагина, который формирует поля оставил приоритет 0, для frontpadapi поставил 2 — не сработало (
        самое смешное (я ведь не первый час мучаюсь) — один раз, каким-то чудом, сработало… я сам хочу стать программистом, и не верю в чудеса… но я это видел — в поле попала нужная информация))))… чистил кэш, не помогает
          Игорь
          25 февраля 2021, 11:47
          0
          решил просто получать данные из инпута на странице заказа (а не из properties)
          case 'pod': $value = $_POST['extfld_srok']; break;
          так вроде работает
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5