ฉันกำลังพยายามสร้างการดำเนินการแบบกำหนดเองสำหรับการดำเนินการจำนวนมากในคำสั่งซื้อขาย
ฉันใช้รหัสต่อไปนี้
mymodule/src/Plugin/Action/DeleteOrderAndApps.php
เนมสเปซ Drupal\mymodule\Plugin\Action;
ใช้ Drupal\commerce_order\Entity\Order;
ใช้ Drupal\Core\Action\ActionBase;
ใช้ Drupal\Core\Session\AccountInterface;
ใช้ Drupal\node\Entity\Node;
/**
* ลบคำสั่งและการกระทำของแอพที่แนบมา
*
* @หนังบู๊(
* id = "delete_order_and_apps",
* label = @Translation("ลบคำสั่งซื้อและแอพ"),
* ประเภท = "commerce_order"
* )
*/
คลาส DeleteOrderAndApps ขยาย ActionBase {
/**
* {@inheritdoc}
*
*/
ดำเนินการฟังก์ชั่นสาธารณะ (สั่งซื้อ $ สั่งซื้อ = NULL) {
// â¦
}
/**
* {@inheritdoc}
*/
การเข้าถึงฟังก์ชันสาธารณะ ($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
$result = $object->access('ลบ', $account, TRUE);
คืน $return_as_object ? $result : $result->isAllowed();
}
}
ฉันไม่แน่ใจว่าฉันต้องการมัน แต่ฉันก็มี mymodule/config/install/system.action.delete_order_and_apps.yml ไฟล์.
รหัสภาษา: th
สถานะ: จริง
การพึ่งพา:
โมดูล:
- commerce_order
id:delete_order_and_apps
ป้ายกำกับ: 'ลบคำสั่งซื้อและแอพ'
ประเภท: commerce_order
ปลั๊กอิน: delete_order_and_apps
การกำหนดค่า: { }
ส่วนที่สับสนคือมี 2 ตัวเลือกแบบกลุ่มที่แตกต่างกัน: VBO และการดำเนินการแบบกลุ่มของคอร์สำหรับเอนทิตีใบสั่งซื้อ น่าเศร้าที่สิ่งเหล่านี้ไม่ได้ใช้คำจำกัดความของการกระทำเดียวกัน แต่การกระทำใหม่ของฉันไม่แสดงเป็นตัวเลือกสำหรับสิ่งเหล่านี้เมื่อสร้างมุมมอง ฉันทำหลายอย่างด้วยวิธีเดียวกัน แต่ทั้งหมดเป็นการกระทำของโหนด
ไม่แน่ใจว่ามีบางอย่างขาดหายไปในโค้ดของฉันหรืออาจมีบางอย่างขาดหายไปใน Commerce ซึ่งจำเป็นต้องอนุญาตการเพิ่มการดำเนินการแบบกำหนดเอง (อาจมีบางอย่างขาดหายไปในคำจำกัดความของเอนทิตี)
ฉันใช้ Drupal 8.9.20 และโมดูล Commerce 8.x-2.24