public function duplicate($new_name) { $id = parent::duplicate($new_name); if (-1 == $id) { return $id; } require_once NELIOAB_EXP_CONTROLLERS_DIR . '/widget-experiment-controller.php'; require_once NELIOAB_MODELS_DIR . '/experiments-manager.php'; /** @var NelioABMenuAlternativeExperiment $exp */ $exp = NelioABExperimentsManager::get_experiment_by_id($id, $this->get_type()); $alts_src = $this->get_alternatives(); $alts_dest = $exp->get_alternatives(); for ($i = 0; $i < count($alts_src); ++$i) { /** @var NelioABAlternative $alt_src */ $alt_src = $alts_src[$i]; /** @var NelioABAlternative $alt_dest */ $alt_dest = $alts_dest[$i]; NelioABWidgetExpAdminController::duplicate_widgets($this->get_id(), $alt_src->get_id(), $exp->get_id(), $alt_dest->get_id()); } return $id; }