function RulesCommands::delete
Deletes a rule on your site.
@command rules:delete @interact-rule-names @aliases rdel,rules-delete
@usage drush rules:delete Displays all rules and allows you to select one to delete. @usage drush rules:delete test_rule Permanently deletes the rule with machine name 'test_rule'.
Parameters
string $rule: Rule name (machine id) to delete.
Throws
\Exception
File
-
src/
Commands/ RulesCommands.php, line 236
Class
- RulesCommands
- Drush 9+ commands for the Rules module.
Namespace
Drupal\rules\CommandsCode
public function delete($rule) {
// The $rule argument could refer to a Reaction Rule or a Rules Component.
if ($this->configStorage
->exists('rules.reaction.' . $rule)) {
$config = $this->configFactory
->getEditable('rules.reaction.' . $rule);
}
elseif ($this->configStorage
->exists('rules.component.' . $rule)) {
$config = $this->configFactory
->getEditable('rules.component.' . $rule);
}
elseif ($this->configStorage
->exists($rule)) {
$config = $this->configFactory
->getEditable($rule);
}
else {
throw new \Exception(dt('Could not find a Reaction Rule or a Rules Component named @name', [
'@name' => $rule,
]));
}
if ($this->confirm(dt('Are you sure you want to delete the rule named "@name"? This action cannot be undone.', [
'@name' => $rule,
]))) {
$config->delete();
$this->logger
->success(dt('The rule @name has been deleted.', [
'@name' => $rule,
]));
}
}