Score:1

เหตุการณ์การลบใบสั่งพาณิชย์และการลบรายการในใบสั่ง

ธง cn

คำถามด่วน ฉันหวังว่าจะมีคนตอบได้ง่ายๆ

มีกิจกรรมการสั่งซื้อสองรายการสำหรับการลบคำสั่งซื้อที่แสดงไว้ที่นี่: https://github.com/drupalcommerce/commerce/blob/8.x-2.x/modules/order/src/Event/OrderEvents.php

commerce_order.commerce_order.delete

และ

commerce_order.commerce_order_item.delete

ฉันต้องการลบเอนทิตีที่เกี่ยวข้องบางรายการเมื่อรายการคำสั่งซื้อถูกลบ เพื่อให้ฉันสามารถเชื่อมต่อกับ commerce_order.commerce_order_item.delete ได้ แต่คำถามของฉันคือหากคำสั่งซื้อทั้งหมดถูกลบ เหตุการณ์นี้จะถูกทริกเกอร์สำหรับแต่ละบรรทัดด้วยหรือไม่ หรือฉันต้องการ หากต้องการทำซ้ำรหัสของฉันสำหรับ commerce_order.commerce_order.delete และวนซ้ำแต่ละบรรทัดในคำสั่งซื้อ

No Sssweat avatar
ua flag
อืม... มีทางเดียวที่จะหาคำตอบได้ คุณกำลังคิดอย่างที่ฉันคิดอยู่หรือเปล่า?
Score:2
ธง cn

หากคำสั่งซื้อทั้งหมดถูกลบ เหตุการณ์นี้จะถูกเรียกใช้สำหรับแต่ละบรรทัดด้วย

ใช่ - เอนทิตีคำสั่งซื้อขายมี โพสต์ลบ วิธีการที่วนซ้ำรายการสั่งซื้อและลบออกทีละรายการ

ฟังก์ชันสแตติกสาธารณะ postDelete (EntityStorageInterface $storage, อาร์เรย์ $ เอนทิตี) {
  parent::postDelete($storage,$entities);

  // ลบรายการสั่งซื้อของคำสั่งซื้อที่ถูกลบ
  $order_items = [];
  /** @var \Drupal\commerce_order\Entity\OrderInterface $entity */
  foreach ($ เอนทิตีเป็น $ เอนทิตี) {
    foreach ($entity->getItems() เป็น $order_item) {
      $order_items[$order_item->id()] = $order_item;
    }
  }
  /** @var \Drupal\commerce_order\OrderItemStorageInterface $order_item_storage */
  $order_item_storage = \Drupal::service('entity_type.manager')->getStorage('commerce_order_item');
  $order_item_storage->ลบ($order_items);
}

การลบรายการสั่งซื้อจะเรียกเหตุการณ์ที่คุณสมัคร ดังนั้นไม่ต้องทำอะไรอีก

thiokol avatar
cn flag
สมบูรณ์แบบ ขอบคุณมาก
thiokol avatar
cn flag
ฉันทำทั้งหมดนี้ได้ แต่ฉันมีปัญหาอื่น ฉันไม่ได้แจ้งว่า commerce_order.commerce_order_item.delete ไม่ทำงาน ไม่ใช่แค่เมื่อรายการสั่งซื้อถูกลบ แต่ยังรวมถึงเมื่อสินค้าถูกลบออกจากรถเข็นด้วย มีความแตกต่างระหว่างการลบรายการออกจากคำสั่งซื้อที่เสร็จสมบูรณ์และการลบสินค้าออกจากรถเข็น ในแง่ของเหตุการณ์ที่สมัครหรือไม่ มีเหตุการณ์อื่นที่ฉันควรใช้แทนหรือไม่

โพสต์คำตอบ

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