Рейтинг:0

Программное получение полей типа варианта по порядку

флаг ao

Я пытаюсь получить значения поля типа вариации из объекта заказа, но не могу найти никакой документации по этому поводу. Я использую подписчика событий для запуска следующего кода при оплате заказа.Код работает, но я не вижу никаких ссылок на поля в kint и не могу найти никаких ссылок на какие-либо «getVariation» или эквивалентные функции в Интернете.

/**
 * Этот метод вызывается при отправке commerce_order.order.paid.
 *
 * @param\Symfony\Component\EventDispatcher\Event $event
 * Отправленное событие.
 */
общедоступная функция commerceOrderOrderPaid (событие $event) {
  /** @var \Drupal\commerce_order\Entity\OrderInterface $order */
  $order = $event->getOrder();
  $items = $order->getItems();
  foreach ($items as $item) {
    вид ($ пункт);
    if ($item->get('type')->target_id == 'purchase_things') {
      // 'number_of_things' - поле типа вариации.
      $thingQuant = $item->get('number_of_things'); 
      // Строка явно не работает. 
      // Я нигде не вижу 'number_of_things' в kint($item).
    }
  }
}
Рейтинг:1
флаг ao

Используя Devel и Kint, я смог найти искомую функцию "getVariation". Этот код позволяет получить поля типа варианта.

$item->getPurchasedEntity()->get('field_number_of_things')->значение

Ответить или комментировать

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