Tôi đang cố gắng tạo một hành động tùy chỉnh cho các hoạt động hàng loạt đối với các đơn đặt hàng thương mại.
Tôi đang sử dụng đoạn mã sau.
mymodule/src/Plugin/Action/DeleteOrderAndApps.php
không gian tên Drupal\mymodule\Plugin\Action;
sử dụng Drupal\commerce_order\Entity\Order;
sử dụng Drupal\Core\Action\ActionBase;
sử dụng Drupal\Core\Session\AccountInterface;
sử dụng Drupal\node\Entity\Node;
/**
* Xóa Đơn hàng và hành động Ứng dụng đính kèm
*
* @Hoạt động(
* id = "delete_order_and_apps",
* label = @Translation("Xóa đơn hàng và ứng dụng"),
* gõ = "thương mại_đặt hàng"
* )
*/
lớp DeleteOrderAndApps mở rộng ActionBase {
/**
* {@inheritdoc}
*
*/
chức năng công khai thực thi (Đơn hàng $order = NULL) {
// â¦
}
/**
* {@inheritdoc}
*/
truy cập chức năng công cộng($object, AccountInterface $account = NULL, $return_as_object = FALSE) {
$result = $object->access('delete', $account, TRUE);
trả về $return_as_object? $result : $result->isAllowed();
}
}
Tôi không chắc là tôi cần nó, nhưng tôi cũng có mymodule/config/install/system.action.delete_order_and_apps.yml tập tin.
mã ngôn ngữ: en
trạng thái: đúng
phụ thuộc:
mô-đun:
- thương mại_đặt hàng
id: xóa_order_and_apps
nhãn: 'Xóa đơn đặt hàng và ứng dụng'
gõ: thương mại_order
plugin: xóa_order_and_apps
cấu hình: { }
Phần khó hiểu là có 2 tùy chọn hàng loạt khác nhau: VBO và hành động hàng loạt của lõi đối với thực thể Đơn hàng. Đáng buồn thay, những điều này không sử dụng cùng một định nghĩa hành động nhưng hành động mới của tôi không hiển thị dưới dạng tùy chọn cho một trong hai định nghĩa này khi tạo chế độ xem. Tôi đã thực hiện nhiều thao tác này theo cùng một cách nhưng tất cả đều là các hành động Node.
Không chắc liệu có thiếu thứ gì đó trong mã của tôi hay có thể thiếu thứ gì đó trong Thương mại cần thiết để cho phép thêm hành động tùy chỉnh (có thể thiếu thứ gì đó trong định nghĩa thực thể).
Tôi đang sử dụng Drupal 8.9.20 và mô-đun Thương mại 8.x-2.24.