Score:2

ฉันจะรับค่าอัตราและการกำหนดค่าได้อย่างไร

ธง ar

ฉันนิ่งงัน คุณจะรับค่าจากการกำหนดค่าวิธีการจัดส่งได้อย่างไร ตัวอย่างเช่น ฉันมีวิธีจัดส่งแบบอัตราคงที่ "ด่วน" ฉันต้องการรับค่าแบบฟอร์มการกำหนดค่าดิบที่จัดเก็บไว้ในวิธีการจัดส่งนั้น เช่น อัตรา หรือฟิลด์ที่กำหนดเองที่ฉันให้ไว้

ฉันได้เสียบเข้ากับวิธีการจัดส่งเพื่อเพิ่มฟิลด์แบบฟอร์มที่กำหนดเอง แต่ตอนนี้จำเป็นต้องเรียกคืนในภายหลัง ค่าไม่ได้อยู่ในเอนทิตีการจัดส่ง

    $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'] // < -----
    ]);

    คืนอัตรา $;
  }

การดำเนินการนี้เริ่มทำงานแต่ไม่ได้ทำให้เป็นเอนทิตีการจัดส่งในใบสั่งในภายหลัง ฉันรู้ว่าฉันสามารถเรียกดูอัตราได้โดยการเข้าถึง 'จำนวนเงิน' จากเอนทิตีการจัดส่ง แต่ฉันจำเป็นต้องดึงค่าที่กำหนดเองด้วย

มีวิธีดึงค่าเหล่านี้จากการกำหนดค่าหรือนำค่าเหล่านี้ไปยังวัตถุเอนทิตีการจัดส่งหรือไม่

ป้อนคำอธิบายรูปภาพที่นี่

Score:2
ธง cn
$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);

$rate = $shipping_method->plugin->getValue()[0]['target_plugin_configuration']['rate_amount'];

คุณจะต้องเจาะลึกลงไปในฟิลด์ปลั๊กอินจากเอนทิตี shipping_method

$shipping_method->plugin->getValue()[0];
// นี่จะส่งกลับอาร์เรย์ต่อไปนี้ด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

Matt Campbell avatar
ar flag
ขอบคุณที่สวยงาม ฉันไม่คิดจะไปดูที่นั่น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา