Carbon_Fields\Container\Nav_Menu_Container::set_instance_for_id PHP Method

set_instance_for_id() public static method

Render attribute prevents field containers showing on menu save
public static set_instance_for_id ( $current_menu_item_id, $render = true )
    public static function set_instance_for_id($current_menu_item_id, $render = true)
    {
        $active_containers = self::get_containers();
        $suffix = '-' . $current_menu_item_id;
        foreach ($active_containers as $container) {
            if ($container->type != 'Nav_Menu') {
                continue;
            }
            $custom_fields = array();
            $fields = $container->get_fields();
            foreach ($fields as $field) {
                $tmp_field = clone $field;
                // Setup Public properties
                $tmp_field->current_menu_item_id = $current_menu_item_id;
                $tmp_field->initial_name = $tmp_field->get_name();
                // Setup Field ID and Name
                $tmp_field->set_id($tmp_field->get_id() . $suffix);
                $tmp_field->set_name($tmp_field->get_name() . $suffix);
                // Update Datastore instance
                $new_datastore = new Nav_Menu_Datastore();
                $new_datastore->set_id($current_menu_item_id);
                $tmp_field->set_datastore($new_datastore);
                $custom_fields[] = $tmp_field;
            }
            self::$instances[$current_menu_item_id] = Container::factory('nav_menu', $container->id . $suffix)->add_fields($custom_fields)->init($current_menu_item_id, $render);
        }
        return self::$instances[$current_menu_item_id];
    }