ด้วยโมดูล commerce api คุณสามารถดึงข้อมูลวิธีการจัดส่งที่มีอยู่ทั้งหมดของคำสั่งซื้อโดยเปิดคำขอ GET {{host}}/jsonapi/checkout/{{cart_uuid}}/วิธีการจัดส่ง
. ผลลัพธ์เป็นดังนี้:
{
"ประเภท": "ตัวเลือกอัตราค่าขนส่ง",
"id": "3--default",
"คุณลักษณะ": {
"shipping_method_id": "3",
"บริการ": {
"id": "ค่าเริ่มต้น",
"ป้ายกำกับ": "รับที่สถานที่"
},
"original_amount": {
"หมายเลข": "0",
"currency_code": "เช็ก",
"จัดรูปแบบ": "0,00Â KÄ"
},
"จำนวน": {
"หมายเลข": "0",
"currency_code": "เช็ก",
"จัดรูปแบบ": "0,00Â KÄ"
},
"คำอธิบาย": "",
"delivery_date": null
}
},
ฉันต้องการเพิ่มฟิลด์ที่กำหนดเองให้กับวิธีการจัดส่งแต่ละวิธี
กำลังติดตาม นี้ บทช่วยสอน ฉันพยายามสร้างฟิลด์ที่คำนวณดังนี้:
ฟังก์ชัน custom_module_entity_base_field_info (EntityTypeInterface $entity_type) {
ถ้า ($entity_type->id() === 'commerce_shipment') { // ลอง 'shipping_rate_option' ด้วย
$fields['tooltip'] = BaseFieldDefinition::create('สตริง')
->setLabel(t('คำแนะนำเครื่องมือ'))
->ตั้งค่าอ่านอย่างเดียว(จริง)
->ตั้งค่าการคำนวณ (จริง)
->setClass(FieldTooltip::class);
ส่งคืนฟิลด์ $;
}
}
และชั้นเรียนของฉันคือ
/**
* คลาส FieldTooltip
*/
คลาส FieldTooltip ขยาย FieldItemList {
ใช้ ComputedItemListTrait;
/**
* {@inheritdoc}
*/
ฟังก์ชั่นการป้องกัน computeValue () {
$this->list[0] = $this->createItem(0, 'ข้อความคำแนะนำเครื่องมือ');
}
}
มันไม่ได้ทำอะไรเลย
พยายามสร้างนอร์มัลไลเซอร์ด้วย แต่ก็ไม่ได้เปลี่ยนแปลงอะไรเช่นกัน
มีวิธีเพิ่มฟิลด์ในการตอบกลับนี้หรือไม่?