'Elementor access settings inside _register_controls function

I am using Elementor. In one section user can create categories with repeater field. In other section I would like to list these categories in Select2 control. How could I access category_data in _register_controls function? I know I can access it in render function.

protected function _register_controls() {

    $this->start_controls_section(
        'content_section',
        [
            'label' => __( 'Content', 'plugin-name' ),
            'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
        ]
    );

    $repeater->add_control(
    'category_title', [
        'label' => esc_html__( 'Title', 'plugin-name'),
        'type' => \Elementor\Controls_Manager::TEXT,
        'label_block' => false,
    ]
);

$repeater->add_control(
    'category_slug', [
        'label' => esc_html__( 'Slug', 'plugin-name'),
        'type' => \Elementor\Controls_Manager::TEXT,
        'label_block' => false,
    ]
);

$this->add_control(
    'category_data',
    [
        'label' => esc_html__( 'Category', 'plugin-name'),
        'type' => \Elementor\Controls_Manager::REPEATER,
        'fields' => $repeater->get_controls(),
        'prevent_empty' => false, 
        'title_field' => '{{{ category_title }}}',

    ]
);

    $this->end_controls_section();

 $this->start_controls_section(
        'category_section',
        [
            'label' => __( 'Category', 'plugin-name' ),
            'tab' => \Elementor\Controls_Manager::TAB_CONTENT,
        ]
    );


//how could I access category_data here?

$settings = $this->get_settings_for_display();
$category_data = $settings['category_data'];

$cd_arr = [];
foreach ($category_data as $cd) {
    $cd_arr[] = $cd['category_slug'];
}

if(count($cd_arr) > 0){

    $this->add_control(
        'media_category',
        [
            'label' => esc_html__( 'Categories', 'plugin-name'),
            'type' => \Elementor\Controls_Manager::SELECT2,
            'multiple' => true,
            'options' => $cd_arr,
        ]
    );

}


 $this->end_controls_section();

}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source