Bạn có thể xuất cấu hình quy tắc thông qua UI Rules và sau đó triển khai hook_default_rules_configuration_alter () như thế này:
/**
* Implements hook_default_rules_configuration_alter().
*/
function MODULENAME_default_rules_configuration_alter(&$data) {
if (isset($data['commerce_cart_add_to_cart_message'])) {
$data['commerce_cart_add_to_cart_message'] = entity_import('rules_config', '{ "commerce_cart_add_to_cart_message" : {
"LABEL" : "Display an Add to Cart message",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "Commerce Cart" ],
"REQUIRES" : [ "rules", "commerce_cart" ],
"ON" : { "commerce_cart_product_add" : [] },
"IF" : [
{ "data_is" : { "data" : [ "commerce-order:commerce-nocart" ], "value" : "0" } }
],
"DO" : [
{ "commerce_cart_add_to_cart_message" : { "commerce_product" : [ "commerce-product" ] } }
]
}
}');
}
}
Chỉ cần thay đổi phiên bản $data['commerce_cart_add_to_cart_message']
để sử dụng tên máy quy tắc của bạn và thay thế chuỗi xuất bằng tên của riêng bạn.
Bạn cũng có thể sử dụng Rules_import () thay vì entity_import () . Hoặc là chấp nhận được.
Vì mô-đun quy tắc tải các quy tắc mặc định từ mã vào cơ sở dữ liệu và từ đó tải chúng từ cơ sở dữ liệu, nó sẽ không nhận ngay lập tức ghi đè của bạn. Để thực hiện điều đó, hãy điều hướng đến UI UI và hoàn nguyên quy tắc. Nó sẽ trở lại mã mặc định, đây sẽ là phần ghi đè của bạn.
Để lập trình lại quy tắc, bạn có thể thực hiện việc này (một lần nữa thay thế tên máy quy tắc):
if ($rules_config = rules_config_load('commerce_cart_add_to_cart_message')) {
$rules_config->delete();
}
Một ví dụ sử dụng có thể là để thực hiện điều đó trong một chức năng cập nhật cho một mô-đun tùy chỉnh.
Có vẻ như vắt để xóa nó nhưng xóa và hoàn nguyên là tương đương với các quy tắc được cung cấp bởi mã bởi vì xóa có nghĩa là xóa khỏi cơ sở dữ liệu. Nếu đây là quy tắc được tạo thông qua UI thì nó sẽ biến mất, tuy nhiên quy tắc từ mã sẽ chỉ xóa khỏi DB và sau đó đọc lại từ mã.
Thật không may, hiện tại chỉ có các lệnh drush để bật / tắt các quy tắc. Có một yêu cầu tính năng cho lệnh xóa / hoàn nguyên tại https://www.drupal.org/node/2507187