I create a module for elementor. I need to display the author name, choosen from the elementor admin control. I have 4 administrator. They show up correctly on control panel:
- admin (ID=0.)
 - Jhon Doe (ID=1.)
 - Jeane Doe (ID=3.)
 - Mary Doe (ID=5.)
 
The code for Elementor admin panel:
 <php 
 //Get all author
 $blogusers = get_users('blog_id=1&orderby=nicename&role=Administrator');
 foreach ($blogusers as $user) {
$author_list[] = $user->user_nicename; }
        $this->add_control(
            'my_authorname',
                [
                    'label'       => __( 'From AUTHOR', 'my_authorname-for-elementor' ),
                    'type' => Controls_Manager::SELECT, 
                    'options' => $author_list,
                    'default' => 'admin'
                ]
        ); ?>   
    
When I choose Jeane Doe from Elementor control admin, the output on the frontpage display the wrong author ID (1, and Jeane Doe ID is 3). Not the author name which I need.
The code for the output:
<?php echo $settings['my_authorname']; ?>
Really appreciate for any helps.
Advertisement
Answer
Change
$author_list[] = $user->user_nicename;
to
$author_list[$user->ID] = $user->user_nicename;
See: Arguments section here: https://developers.elementor.com/elementor-controls/select-control/