function ca_convert_predicate in Ubercart 7.3
Base helper function to convert CA predicates to Rules configurations.
File
- uc_store/
includes/ ca.inc, line 11 - Helper functions for upgrade from Ubercart 2.x to Ubercart 3.x.
Code
function ca_convert_predicate($predicate) {
// Convert event names to corresponding triggers.
if ($predicate->ca_trigger == 'calculate_taxes') {
return ca_extract_conditions($predicate, $predicate->pid);
}
elseif (strpos($predicate->ca_trigger, 'get_quote_from_') === 0) {
return ca_extract_conditions($predicate, $predicate->ca_trigger);
}
$rule = rules_reaction_rule();
if (is_numeric($predicate->pid)) {
$rule->name = $predicate->ca_trigger . '_' . $predicate->pid;
}
else {
$rule->name = $predicate->pid;
}
$rule->label = $predicate->title;
$rule->active = (bool) $predicate->status;
$rule
->event($predicate->ca_trigger);
ca_add_conditions($rule, $predicate->conditions['#conditions']);
ca_add_actions($rule, $predicate->actions);
$rule
->save();
}