You are here

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();
}