Я в тупике. Как вы получаете значения из конфигурации метода доставки? Например, у меня есть метод доставки с фиксированной ставкой «Экспресс». Я хочу получить необработанные значения формы конфигурации, хранящиеся в этом методе доставки. Например, ставка или пользовательское поле, которое я предоставил.
Я подключился к методам доставки, чтобы добавить пользовательское поле формы. Но теперь нужно получить его позже. Значения не указаны в объекте отгрузки.
$shippingMethodId = $commerceOrder->shipments->entity->shipping_method->entity->shipping_method_id->значение;
$shipping_method_storage = \Drupal::entityTypeManager()->getStorage('commerce_shipping_method');
$shipping_method = $shipping_method_storage->load($shippingMethodId);
//$shipping_method->ставка->значение
//$shipping_method->honeys_place_shipping_code->значение
Я попытался добавить значения к ShippingRate, возвращаемому из calculateRates().
публичная функция calculateRates(ShipmentInterface $shipment) {
$ставки = [];
$rates[] = новый ShippingRate([
'shipping_method_id' => $this->parentEntity->id(),
'сервис' => $this->услуги['по умолчанию'],
'amount' => Price::fromArray($this->configuration['rate_amount']),
'description' => $this->configuration['rate_description'],
'honeys_place_shipping_code' => $this->configuration['honeys_place_shipping_code'] // < -----
]);
вернуть $ставки;
}
Это срабатывает, но позже не попадает в сущность отгрузки в заказе. Я знаю, что могу получить скорость, получив доступ к «сумме» от объекта доставки. Но мне также нужно получить пользовательские значения.
Есть ли способ получить эти значения из конфигурации или передать их в объект сущности отгрузки?
