Điểm:0

Tôi không thể thấy hành động tùy chỉnh

lá cờ us

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.

lá cờ id
Câu hỏi là gì? Chúng tôi cần một người để trả lời.
miststudent2011 avatar
lá cờ fr
Không giúp đỡ à ? https://drupal.stackexchange.com/questions/295329/custom-action-plugin-with-configurationform
liquidcms avatar
lá cờ us
@ miststudent2011, các bài đăng đó dường như chủ yếu là về việc thêm cấu hình cho một hành động - đây không phải là câu hỏi. Phần duy nhất được đề cập ở đó bị thiếu có thể là tệp .schema; nhưng chưa bao giờ thêm chúng cho hành động (nút) mà tôi đang làm việc.
Điểm:2
lá cờ cn

Giả sử bạn đang sử dụng trường "Cập nhật hàng loạt" cốt lõi mà Chế độ xem đơn đặt hàng thương mại sử dụng ngay lập tức, thì bạn cần tạo hành động dưới dạng một thực thể cấu hình.

Bạn đã có cấu hình để làm điều đó, nhưng nó sẽ chỉ được sử dụng khi mô-đun được cài đặt.Nếu bạn có thể gỡ cài đặt thì hãy cài đặt lại mô-đun của mình, hãy làm điều đó và bạn sẽ thấy hành động của mình trong Chế độ xem ở vị trí cần có:

nhập mô tả hình ảnh ở đây

Nếu bạn không thể cài đặt lại mô-đun, hãy thêm hook cập nhật trong mymodule.post_update.php để tạo tác vụ theo cách thủ công, sau đó chạy cập nhật cơ sở dữ liệu:

hàm mymodule_post_update_add_my_action() {
  \Drupal::entityTypeManager()->getStorage('action')->create([
    'id' => 'delete_orders_and_apps',
    'nhãn' => 'Xóa đơn đặt hàng và ứng dụng',
    'type' => 'commerce_order',
    'plugin' => 'delete_order_and_apps',
  ])-> lưu();
}

Nếu đang sử dụng VBO, bạn không cần tạo thực thể cấu hình, mô-đun sẽ nhận hành động mà không cần thực thể cấu hình. Nếu điều đó không hoạt động, hãy đảm bảo rằng mọi thứ được đặt tên chính xác, bộ nhớ cache bị xóa, v.v., vì nó chắc chắn ở đó:

nhập mô tả hình ảnh ở đây

liquidcms avatar
lá cờ us
tốt để biết tôi đã làm điều đó một cách chính xác. Và tôi hình dung đó là thứ sẽ chỉ được kích hoạt khi gỡ cài đặt/cài đặt lại mô-đun. Tôi đã làm điều đó ngày hôm qua trước khi tôi đăng bài này. Hôm nay tôi đã tải một bản sao mới của db từ trang web sản xuất của chúng tôi, chạy nhập cấu hình và xây dựng lại nhiều bộ đệm trước khi thấy câu trả lời của bạn và quay lại xem xét điều này - và sau các hoạt động trong ngày, nó hiện hiển thị. Không chắc điều gì đã kích hoạt nó nhưng rất vui khi biết nó hoạt động như tôi mong đợi. Cảm ơn câu trả lời rất chi tiết.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.