File: /home/elrashedytravel/public_html/wp-content/themes/blogus/inc/ansar/widgets/widget-author-info.php
<?php add_action('admin_enqueue_scripts', 'blogus_author_widget_scripts');
function blogus_author_widget_scripts() {
wp_enqueue_media();
wp_enqueue_script('news_author_widget_script', get_template_directory_uri() . '/js/widget-image.js', false, '1.0', true);
}
class blogus_author_info extends WP_Widget {
public function __construct() {
parent::__construct(
'blogus-author-widget',
__( 'AR: Author Info', 'blogus' )
);
}
function widget($args, $instance) {
extract($args);
$defaults = array(
'title' => '',
'name' => '',
'desc' => '',
'image_uri'=> '',
'facebook' => '',
'twt' => '',
'insta' => '',
'youtube' => '',
'open_btnone_new_window' => 0,
);
$instance = wp_parse_args( (array) $instance, $defaults );
echo $before_widget;
$blogus_btnone_target = '_self';
if( !empty($instance['open_btnone_new_window']) ):
$blogus_btnone_target = '_blank';
endif;
if (!empty($instance['title'])){
echo $args['before_title'] . $instance['title'] . $args['after_title'];
} ?>
<div class="bs-author text-center">
<?php if( !empty($instance['image_uri']) ){ ?>
<img class="rounded-circle" src="<?php echo esc_url($instance['image_uri']); ?>" alt="<?php echo apply_filters('widget_title', $instance['name']); ?>" />
<?php } ?>
<h4><?php echo esc_html($instance['name']); ?></h4>
<p><?php echo esc_html($instance['desc']); ?></p>
<ul class="bs-social justify-content-center">
<?php if($instance['facebook'] !=''){?>
<li>
<a class="" <?php if($instance['open_btnone_new_window']) { ?> target="_blank" <?php } ?>href="<?php echo esc_url($instance['facebook']); ?>">
<i class="fab fa-facebook"></i>
</a>
</li>
<?php } if($instance['twt'] !=''){ ?>
<li>
<a class="" <?php if($instance['open_btnone_new_window']) { ?>target="_blank" <?php } ?>href="<?php echo esc_url($instance['twt']);?>">
<i class="fa-brands fa-x-twitter"></i>
</a>
</li>
<?php } if($instance['insta'] !=''){ ?>
<li>
<a class="" <?php if($instance['open_btnone_new_window']) { ?>target="_blank" <?php } ?> href="<?php echo esc_url($instance['insta']); ?>">
<i class="fab fa-instagram"></i>
</a>
</li>
<?php } if($instance['youtube'] !=''){ ?>
<li>
<a class="" <?php if($instance['open_btnone_new_window']) { ?>target="_blank" <?php } ?> href="<?php echo esc_url($instance['youtube']); ?>">
<i class="fab fa-youtube"></i>
</a>
</li>
<?php } ?>
</ul>
</div>
<?php echo $after_widget;
}
function update($new_instance, $old_instance) {
$instance = $old_instance;
// Basic text fields
$instance['title'] = sanitize_text_field( $new_instance['title'] ?? '' );
$instance['name'] = sanitize_text_field( $new_instance['name'] ?? '' );
// Description - lets keep it plain text but use textarea sanitizer
$instance['desc'] = sanitize_textarea_field( $new_instance['desc'] ?? '' );
// Image URL and social URLs — sanitize as URLs
$instance['image_uri'] = esc_url_raw( $new_instance['image_uri'] ?? '' );
$instance['facebook'] = esc_url_raw( $new_instance['facebook'] ?? '' );
$instance['twt'] = esc_url_raw( $new_instance['twt'] ?? '' );
$instance['insta'] = esc_url_raw( $new_instance['insta'] ?? '' );
$instance['youtube'] = esc_url_raw( $new_instance['youtube'] ?? '' );
// Checkbox — ensure it's always 0 or 1 (avoids undefined index / null)
$instance['open_btnone_new_window'] = ! empty( $new_instance['open_btnone_new_window'] ) ? 1 : 0;
return $instance;
}
function form($instance) {
$defaults = array(
'title' => 'Author Details',
'name' => '',
'desc' => '',
'image_uri' => '',
'facebook' => '',
'twt' => '',
'insta' => '',
'youtube' => '',
'open_btnone_new_window' => 0,
);
$instance = wp_parse_args( (array) $instance, $defaults );
?>
<p>
<label for="<?php echo esc_attr($this->get_field_id( 'title' )); ?>"><?php esc_html_e( 'Title','blogus' ); ?></label>
<input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'title' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'title' )); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
</p>
<p>
<label for="<?php echo esc_attr($this->get_field_id('image_uri')); ?>"><?php esc_html_e('Author Image', 'blogus'); ?></label><br/>
<?php
if ( !empty($instance['image_uri']) ) :
echo '<img class="custom_media_image_team" src="' . $instance['image_uri'] . '" style="margin:0;padding:0;max-width:100px;float:left;display:inline-block" alt="'.__( 'Uploaded image', 'blogus' ).'" /><br />';
endif;
?>
<input type="text" class="widefat custom_media_url_team" name="<?php echo esc_attr($this->get_field_name('image_uri')); ?>" id="<?php echo esc_attr($this->get_field_id('image_uri')); ?>" value="<?php if( !empty($instance['image_uri']) ): echo $instance['image_uri']; endif; ?>" style="margin-top:5px;">
<input type="button" class="button button-primary custom_media_button_team" id="custom_media_button_team" name="<?php echo esc_attr($this->get_field_name('image_uri')); ?>" value="<?php esc_attr_e('Upload Image','blogus'); ?>" style="margin-top:5px;">
</p>
<p>
<label for="<?php echo esc_attr($this->get_field_id( 'name' )); ?>"><?php esc_html_e( 'Name','blogus' ); ?></label>
<input class="widefat" id="<?php echo esc_attr($this->get_field_id( 'name' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'name' )); ?>" type="text" value="<?php echo esc_attr( $instance['name'] ); ?>" />
</p>
<p>
<label for="<?php echo esc_attr($this->get_field_id( 'desc' )); ?>"><?php esc_html_e( 'Description','blogus' ); ?></label>
<textarea class="widefat" id="<?php echo esc_attr($this->get_field_id( 'desc' )); ?>" name="<?php echo esc_attr($this->get_field_name( 'desc' )); ?>"><?php echo esc_textarea( $instance['desc'] ); ?></textarea>
</p>
<table>
<tr>
<td>
<label for="<?php echo esc_attr($this->get_field_id('facebook')); ?>"><?php esc_html_e('Facebook Link', 'blogus'); ?></label>
</td>
</tr>
<tr>
<td>
<input type="text" name="<?php echo esc_attr($this->get_field_name('facebook')); ?>" id="<?php echo esc_attr($this->get_field_id('facebook')); ?>" value="<?php if( !empty($instance['facebook']) ): echo esc_attr($instance['facebook']); endif; ?>" class="widefat"/>
</td>
</tr>
<tr>
<td>
<label for="<?php echo esc_attr($this->get_field_id('twt')); ?>"><?php esc_html_e('Twitter Link', 'blogus'); ?></label>
</td>
</tr>
<tr>
<td>
<input type="text" name="<?php echo esc_attr($this->get_field_name('twt')); ?>" id="<?php echo esc_attr($this->get_field_id('twt')); ?>" value="<?php if( !empty($instance['twt']) ): echo esc_attr($instance['twt']); endif; ?>" class="widefat"/>
</td>
</tr>
<tr>
<td>
<label for="<?php echo esc_attr($this->get_field_id('insta')); ?>"><?php esc_html_e('Instagram Link', 'blogus'); ?></label>
</td>
</tr>
<tr>
<td>
<input type="text" name="<?php echo esc_attr($this->get_field_name('insta')); ?>" id="<?php echo esc_attr($this->get_field_id('insta')); ?>" value="<?php if( !empty($instance['insta']) ): echo esc_attr($instance['insta']); endif; ?>" class="widefat"/>
</td>
</tr>
<tr>
<td>
<label for="<?php echo esc_attr($this->get_field_id('youtube')); ?>"><?php esc_html_e('YouTube Link', 'blogus'); ?></label>
</td>
</tr>
<tr>
<td>
<input type="text" name="<?php echo esc_attr($this->get_field_name('youtube')); ?>" id="<?php echo esc_attr($this->get_field_id('youtube')); ?>" value="<?php if( !empty($instance['youtube']) ): echo esc_attr($instance['youtube']); endif; ?>" class="widefat"/>
</td>
</tr>
</table>
<p>
<label for="<?php echo esc_attr($this->get_field_id('open_btnone_new_window')); ?>">
<input type="checkbox"
id="<?php echo esc_attr($this->get_field_id('open_btnone_new_window')); ?>"
name="<?php echo esc_attr($this->get_field_name('open_btnone_new_window')); ?>"
value="1" <?php checked( $instance['open_btnone_new_window'], 1 ); ?> />
<?php esc_html_e( 'Open link in new tab','blogus' ); ?>
</label>
</p>
<?php
}
}