You are here

function acquia_lift_set_audience_for_test in Acquia Lift Connector 7

Same name and namespace in other branches
  1. 7.2 acquia_lift.admin.inc \acquia_lift_set_audience_for_test()

Saves a test to a particular targeting audience.

Parameters

$parent_agent: The machine name of the parent agent.

$old_audience: The target audience that currently has this test running.

$new_audience: The target audience to move the test to.

1 call to acquia_lift_set_audience_for_test()
acquia_lift_update_targeting in ./acquia_lift.admin.inc
Takes whatever is in the 'lift_targeting' data property and converts it into the required campaign structure (including nested tests where needed).

File

./acquia_lift.admin.inc, line 1645
acquia_lift.admin.inc Provides functions needed for the admin UI.

Code

function acquia_lift_set_audience_for_test($parent_agent, $old_audience, $new_audience) {
  if ($old_audience == $new_audience) {
    return;
  }
  $option_set = acquia_lift_get_option_set_for_targeting($parent_agent->machine_name);
  if (isset($option_set->targeting[$old_audience]) && isset($option_set->targeting[$old_audience]['osid'])) {
    $nested_osid = $option_set->targeting[$old_audience]['osid'];
    unset($option_set->targeting[$old_audience]['osid']);
  }
  else {
    return;
  }

  // Now add the test to the new audience.
  if (isset($option_set->targeting[$new_audience])) {

    // If this audience previously had a single option assigned to it, remove
    // that option.
    if (isset($option_set->targeting[$new_audience]['option_id'])) {
      unset($option_set->targeting[$new_audience]['option_id']);
    }
    $option_set->targeting[$new_audience]['osid'] = $nested_osid;
  }
  personalize_option_set_save($option_set);
}