For any custom rule where you are tempted to use the Conditional Rules module, you can always create corresponding Rules Components, with similar Rules Actions to be performed, but also with additional Rules Conditions equivalent to any Rules Conditions you'd want to include by using the Conditional Rules module. And then perform that Rules Component inside your Rules Actions of your original rule.
Consider this prototype-example (just assume it's a simplified version of a more complicated rule with preceding Rules Actions like "Fetch entity by ID", "Set a variable", etc):
{ "rules_show_a_message_using_conditional_rules" : {
"LABEL" : "Show a message using Conditional Rules",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules_conditional", "rules" ],
"ON" : { "node_delete--page" : { "bundle" : "page" } },
"DO" : [
{ "CONDITIONAL" : [
{
"IF" : { "NOT data_is" : { "data" : [ "node:promote" ], "value" : "1" } },
"DO" : [
{ "drupal_message" : { "message" : "Bingo ... using \u0022Conditional Rules\u0022 ..." } }
]
}
]
}
]
}
}
Here is its equivalent using Rules Components:
{ "rules_show_a_message_using_a_rules_component" : {
"LABEL" : "Show a message using a Rules Component",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "node_delete--page" : { "bundle" : "page" } },
"DO" : [ { "component_rules_say_bingo" : { "current_node" : [ "node" ] } } ]
}
}
And the related Rules Component looks like so:
{ "rules_say_bingo" : {
"LABEL" : "Say bingo",
"PLUGIN" : "rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"USES VARIABLES" : { "current_node" : { "label" : "Current node", "type" : "node" } },
"IF" : [
{ "NOT data_is" : { "data" : [ "current-node:promote" ], "value" : "1" } }
],
"DO" : [
{ "drupal_message" : { "message" : "Bingo ... using a Rules Component instead of \u0022Conditional Rules\u0022 ..." } }
]
}
}
Some details about the alternative using a Rules Component:
- The Rules Condition within the Conditional Rules construct, has become a Rules Condition of the Rules Component.
- The actual Rules Action to be performed, was moved to a Rules Action of the Rules Component.
- The original rule simply calls the Rules Component, thereby passing the node to be processed as a parameter of the Rules Component.
- The Rules Event in the original rule is unchanged, and if there would have been any additional Rules Conditions in the original rule, those would have remained unchanged also.
Note: the above is just a "concept", to illustrate the key-part of the solution. Because this prototype did not require any previous "Fetch entity by ID" (or "Set a variable", or "load current user points") as a previous action.