ฉันนิ่งงัน คุณจะรับค่าจากการกำหนดค่าวิธีการจัดส่งได้อย่างไร ตัวอย่างเช่น ฉันมีวิธีจัดส่งแบบอัตราคงที่ "ด่วน" ฉันต้องการรับค่าแบบฟอร์มการกำหนดค่าดิบที่จัดเก็บไว้ในวิธีการจัดส่งนั้น เช่น อัตรา หรือฟิลด์ที่กำหนดเองที่ฉันให้ไว้
ฉันได้เสียบเข้ากับวิธีการจัดส่งเพื่อเพิ่มฟิลด์แบบฟอร์มที่กำหนดเอง แต่ตอนนี้จำเป็นต้องเรียกคืนในภายหลัง ค่าไม่ได้อยู่ในเอนทิตีการจัดส่ง
$shippingMethodId = $commerceOrder->shipments->entity->shipping_method->entity->shipping_method_id->value;
$shipping_method_storage = \Drupal::entityTypeManager()->getStorage('commerce_shipping_method');
$shipping_method = $shipping_method_storage->โหลด($shippingMethodId);
//$shipping_method->rate->value
//$shipping_method->honeys_place_shipping_code->value
ฉันได้ลองต่อท้ายค่ากับ ShippingRate ที่ส่งคืนจาก calculatorRates()
ฟังก์ชั่นสาธารณะ คำนวณอัตรา (ส่วนต่อประสานการจัดส่ง $ การจัดส่ง) {
อัตรา $ = [];
อัตรา $[] = อัตราค่าขนส่งใหม่([
'shipping_method_id' => $this->parentEntity->id(),
'บริการ' => $this->services['default'],
'amount' => ราคา::fromArray($this->configuration['rate_amount']),
'description' => $this->configuration['rate_description'],
'honeys_place_shipping_code' => $this->configuration['honeys_place_shipping_code'] // < -----
]);
คืนอัตรา $;
}
การดำเนินการนี้เริ่มทำงานแต่ไม่ได้ทำให้เป็นเอนทิตีการจัดส่งในใบสั่งในภายหลัง ฉันรู้ว่าฉันสามารถเรียกดูอัตราได้โดยการเข้าถึง 'จำนวนเงิน' จากเอนทิตีการจัดส่ง แต่ฉันจำเป็นต้องดึงค่าที่กำหนดเองด้วย
มีวิธีดึงค่าเหล่านี้จากการกำหนดค่าหรือนำค่าเหล่านี้ไปยังวัตถุเอนทิตีการจัดส่งหรือไม่
