public function add_control_to_stack(Element_Base $element, $control_id, $control_data)
{
$default_args = ['default' => '', 'type' => self::TEXT, 'tab' => self::TAB_CONTENT];
$control_data['name'] = $control_id;
$control_data = array_merge($default_args, $control_data);
$stack_id = $element->get_name();
if (isset($this->_controls_stack[$stack_id]['controls'][$control_id])) {
_doing_it_wrong(__CLASS__ . '::' . __FUNCTION__, 'Cannot redeclare control with same name. - ' . $control_id, '1.0.0');
return false;
}
$available_tabs = self::_get_available_tabs_controls();
if (!isset($available_tabs[$control_data['tab']])) {
$control_data['tab'] = $default_args['tab'];
}
$this->_controls_stack[$stack_id]['tabs'][$control_data['tab']] = $available_tabs[$control_data['tab']];
$this->_controls_stack[$stack_id]['controls'][$control_id] = $control_data;
return true;
}