/** * PHPDOC * * @param array $all_widgets PHPDOC * @param NelioABAlternative $alt PHPDOC * * @return array PHPDOC * * @since PHPDOC */ private function fix_widgets_for_widget_exp($all_widgets, $alt) { /** @var NelioABExperiment $exp */ $exp = $this->get_global_alt_exp_running(); if ($exp->get_type() != NelioABExperiment::WIDGET_ALT_EXP) { return $all_widgets; } $alt_id = $alt->get_id(); $exp_id = $exp->get_id(); $use_ori_widgets = $exp->get_originals_id() == $alt_id; $res = array(); if ($use_ori_widgets) { $res = $this->filter_original_widgets($all_widgets); } else { require_once NELIOAB_EXP_CONTROLLERS_DIR . '/widget-experiment-controller.php'; $widgets_in_experiments = NelioABWidgetExpAdminController::get_widgets_in_experiments(); foreach ($all_widgets as $sidebar => $widgets) { $res[$sidebar] = array(); if (!is_array($widgets)) { continue; } foreach ($widgets as $widget) { if ($this->is_widget_enabled($widget, $widgets_in_experiments, $exp_id, $alt_id)) { array_push($res[$sidebar], $widget); } } } } return $res; }