ฉันกำลังพัฒนาตัวจัดการเว็บฟอร์มตัวแรกของฉัน และฉันต้องเข้าถึงผู้ส่งของการส่งเว็บฟอร์มใน โพสต์บันทึก
กระบวนการ.
ฉันรู้ว่าฉันสามารถรับ ID การส่งเว็บฟอร์มด้วย $webform_submission->id()
แต่ฉันไม่สามารถหาวิธีรับผู้ส่งได้ เท่าที่ฉันรู้, $webform_submission->getWebform()->getOwner()
ไม่ใช่สิ่งที่ฉันกำลังมองหา เพราะมันบอกฉันว่าเป็นเจ้าของแบบฟอร์ม ไม่ใช่ "เจ้าของ" ของการส่ง ฉันพบ ฉันจะทราบได้อย่างไรว่ามีฟิลด์ใดบ้าง แต่ไม่ละเอียดเท่าที่ฉันต้องการ
เหตุผลที่ฉันจำเป็นต้องทราบผู้ส่งมีดังต่อไปนี้:
ฉันต้องการพัฒนา "กระเป๋าเงิน" สำหรับเว็บไซต์ของฉัน เพื่อจุดประสงค์นั้น ฉันได้ติดตั้งโมดูล "โปรไฟล์" และฉันได้สร้างประเภทโปรไฟล์ "กระเป๋าเงิน" ด้วยฟิลด์เดียว: "ยอดคงเหลือ" ดังนั้นผู้ใช้ทุกคนจะมี "ความสมดุล"
ฉันได้สร้างเว็บฟอร์มชื่อ "ธุรกรรมใหม่" ซึ่งผู้ใช้จะส่งการฝากและ/หรือถอนเงิน เว็บฟอร์มนี้มีฟิลด์ "สถานะ" และฟิลด์ "จำนวนเงิน" ในฟิลด์อื่นๆ
เมื่อผู้ใช้ส่ง "ธุรกรรมใหม่" การส่งเว็บฟอร์มจะถูกจัดเก็บโดยมีสถานะ "ยืนยัน" และตัวจัดการอีเมลจะส่งอีเมลไปยังผู้ดูแลระบบของเว็บไซต์ (ไม่เกี่ยวข้องกับ WebformHandler ที่นี่)
ผู้ดูแลระบบได้รับอีเมลและตรวจสอบการฝาก/ถอน หากตกลง ผู้ดูแลระบบจะอัปเดตสถานะของการส่งเป็น "ยอมรับ" ในช่วงเวลานั้น (เมื่อผู้ดูแลระบบอัปเดตการส่ง) เมื่อ WebformHandler ทำสิ่งมหัศจรรย์ จะเพิ่ม/ลดจำนวนลงในยอดคงเหลือของโปรไฟล์กระเป๋าเงินที่เป็นของผู้ใช้ที่ส่ง นี่คือเหตุผลที่ฉันจำเป็นต้องรู้จักผู้ใช้ที่สร้างการส่งเว็บฟอร์ม ฉันต้องทำสิ่งต่อไปนี้เพื่อดึงโปรไฟล์กระเป๋าเงินของผู้ใช้:
$wallet_profiles = \Drupal::entityTypeManager()->getStorage("โปรไฟล์")
->loadByProperties(['uid' => $user->id(),
'type' => 'wallet_profile',
'is_default' => 1,
]);
ถ้าใครรู้วิธีที่หรูหรากว่านี้เพื่อให้ได้แนวคิด "กระเป๋าเงิน" โปรดแจ้งให้เราทราบ