File "candid-author-widget.php"

Full Path: /websites/hqoliveoil/site/wp-content/themes/fairy/candidthemes/custom-widgets/candid-author-widget.php
File size: 13.79 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/**
 * Author Profile Widget
 *
 * @package Fairy
 */

if (!class_exists('Fairy_Author_Widget')) :

    /**
     * Author widget class.
     *
     * @since Fairy 1.0.0
     */
    class Fairy_Author_Widget extends WP_Widget
    {

        /**
         * Constructor.
         *
         * @since Fairy 1.0.0
         */
        function __construct()
        {
            $opts = array(
                'classname' => 'fairy_widget_author',
                'description' => esc_html__('Display Author Profile.', 'fairy'),
                'customize_selective_refresh' => true,
            );
            parent::__construct('fairy-author', esc_html__('Fairy Author', 'fairy'), $opts);
        }

        /**
         * Echo the widget content.
         *
         * @since 1.0.0
         *
         * @param array $args Display arguments including before_title, after_title,
         *                        before_widget, and after_widget.
         * @param array $instance The settings for the particular instance of the widget.
         */
        function widget($args, $instance)
        {

            $title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);

            $author_description = !empty($instance['author_description']) ? $instance['author_description'] : '';

            $author_image = !empty($instance['author_image']) ? $instance['author_image'] : '';

            $author_facebook = !empty($instance['author_facebook']) ? $instance['author_facebook'] : '';

            $author_twitter = !empty($instance['author_twitter']) ? $instance['author_twitter'] : '';

            $author_linkedin = !empty($instance['author_linkedin']) ? $instance['author_linkedin'] : '';

            $author_instagram = !empty($instance['author_instagram']) ? $instance['author_instagram'] : '';

            $author_pinterest = !empty($instance['author_pinterest']) ? $instance['author_pinterest'] : '';

            $author_youtube = !empty($instance['author_youtube']) ? $instance['author_youtube'] : '';

            $author_vk = !empty($instance['author_vk']) ? $instance['author_vk'] : '';

            $author_sign = !empty($instance['author_sign']) ? $instance['author_sign'] : '';

            echo $args['before_widget']; ?>

<div class="fairy-author-profile">

  <?php

                if ($title) {
                    echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
                } ?>

  <div class="profile-wrapper social-menu-wrap">
    <?php
                    if (isset($author_image) && !empty($author_image)) {
                        ?>
    <figure class="author">
      <img src="<?php echo esc_url($instance['author_image']); ?>">
    </figure>
    <?php
                    }
                    ?>

    <p><?php if (isset($author_description) && !empty($author_description)) {
                            echo wp_kses_post($instance['author_description']);
                        } ?></p>

    <?php
                            if (isset($author_sign) && !empty($author_sign)) {
                                ?>
    <figure class="author-sign">
      <img src="<?php echo esc_url($instance['author_sign']); ?>">
    </figure>
    <?php } ?>


    <?php if ($author_facebook || $author_twitter || $author_linkedin || $author_instagram || $author_pinterest || $author_youtube || $author_vk) { ?>
    <ul class="menu author-social-profiles fairy-menu-social">
      <?php if ($author_facebook) { ?>
      <li>
        <a href="<?php echo esc_url($author_facebook); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('facebook', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_twitter) { ?>
      <li>
        <a href="<?php echo esc_url($author_twitter); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('twitter', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_linkedin) { ?>
      <li>
        <a href="<?php echo esc_url($author_linkedin); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('linkedin', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_instagram) { ?>
      <li>
        <a href="<?php echo esc_url($author_instagram); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('instagram', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_pinterest) { ?>
      <li>
        <a href="<?php echo esc_url($author_pinterest); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('pinterest', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_youtube) { ?>
      <li>
        <a href="<?php echo esc_url($author_youtube); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('youtube', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

      <?php if ($author_vk) { ?>
      <li>
        <a href="<?php echo esc_url($author_vk); ?>" target="_blank"><span
            class="screen-reader-text"><?php esc_html_e('vk', 'fairy'); ?></span></a>
      </li>
      <?php } ?>

    </ul>

    <?php } ?>

  </div>
  <!-- .profile-wrapper -->

</div><!-- .author-profile -->

<?php echo $args['after_widget']; }

        /**
         * Update widget instance.
         *
         * @since 1.0.0
         *
         * @param array $new_instance New settings for this instance as input by the user via
         *                            {@see WP_Widget::form()}.
         * @param array $old_instance Old settings for this instance.
         * @return array Settings to save or bool false to cancel saving.
         */
        function update($new_instance, $old_instance)
        {

            $instance = $old_instance;

            $instance['title'] = sanitize_text_field($new_instance['title']);

            $instance['author_description'] = wp_kses_post($new_instance['author_description']);

            $instance['author_image'] = esc_url_raw($new_instance['author_image']);

            $instance['author_facebook'] = esc_url_raw($new_instance['author_facebook']);

            $instance['author_twitter'] = esc_url_raw($new_instance['author_twitter']);

            $instance['author_linkedin'] = esc_url_raw($new_instance['author_linkedin']);

            $instance['author_instagram'] = esc_url_raw($new_instance['author_instagram']);

            $instance['author_pinterest'] = esc_url_raw($new_instance['author_pinterest']);

            $instance['author_youtube'] = esc_url_raw($new_instance['author_youtube']);

            $instance['author_vk'] = esc_url_raw($new_instance['author_vk']);

            $instance['author_sign'] = esc_url_raw($new_instance['author_sign']);

            return $instance;
        }

    /**
     * Output the settings update form.
     *
     * @since 1.0.0
     *
     * @param array $instance Current settings.
     * @return void
     */
    function form($instance)
    {

        // Defaults.
        $defaults = array(
            'title' => esc_html__('About Us', 'fairy' ),
            'author_description' => '',
            'author_facebook' => '',
            'author_twitter' => '',
            'author_linkedin' => '',
            'author_instagram' => '',
            'author_pinterest' => '',
            'author_youtube' => '',
            'author_vk' => '',
        );

        $instance = wp_parse_args((array)$instance, $defaults);
        ?>

<p>
  <label
    for="<?php echo esc_attr($this->get_field_id('title')); ?>"><strong><?php esc_html_e('Title:', 'fairy'); ?></strong></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 $this->get_field_id('author_image'); ?>">
    <?php _e('Select Image', 'fairy'); ?>
  </label>
  <br />
  <?php
                                if (isset($instance['author_image']) && $instance['author_image'] != '') :
                                    echo '<img class="widefat custom_media_image" src="' . esc_url($instance['author_image']) . '" />';
                                endif;
                                ?>

  <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name('author_image'); ?>"
    id="<?php echo $this->get_field_id('author_image'); ?>" value="<?php
                                if (isset($instance['author_image']) && $instance['author_image'] != '') :
                                    echo esc_url($instance['author_image']);
                                endif;
                                ?>">
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
    name="<?php echo $this->get_field_name('author_image'); ?>" value="<?php esc_attr_e('Upload Image', 'fairy') ?>" />
</p>

<p>
  <label
    for="<?php echo esc_attr($this->get_field_id('author_description')); ?>"><strong><?php esc_html_e('Description:', 'fairy'); ?></strong></label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_description')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_description')); ?>" type="text"
    value="<?php echo esc_attr($instance['author_description']); ?>" />
</p>


<p>
  <label for="<?php echo $this->get_field_id('author_sign'); ?>">
    <?php _e('Upload Author Signature Image', 'fairy'); ?>
  </label>
  <br />
  <?php
                                if (isset($instance['author_sign']) && $instance['author_sign'] != '') :
                                    echo '<img class="widefat custom_media_image" src="' . esc_url($instance['author_sign']) . '" />';
                                endif;
                                ?>

  <input type="text" class="widefat custom_media_url" name="<?php echo $this->get_field_name('author_sign'); ?>"
    id="<?php echo $this->get_field_id('author_sign'); ?>" value="<?php
                                if (isset($instance['author_sign']) && $instance['author_sign'] != '') :
                                    echo esc_url($instance['author_sign']);
                                endif;
                                ?>">
  <input type="button" class="button button-primary custom_media_button" id="custom_media_button"
    name="<?php echo $this->get_field_name('author_sign'); ?>" value="<?php esc_attr_e('Upload Sign', 'fairy') ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_facebook')); ?>">
    <?php esc_html_e('Facebook:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_facebook')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_facebook')); ?>" type="text"
    value="<?php echo esc_url($instance['author_facebook']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_twitter')); ?>">
    <?php esc_html_e('Twitter:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_twitter')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_twitter')); ?>" type="text"
    value="<?php echo esc_url($instance['author_twitter']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_linkedin')); ?>">
    <?php esc_html_e('LinkedIn:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_linkedin')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_linkedin')); ?>" type="text"
    value="<?php echo esc_url($instance['author_linkedin']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_instagram')); ?>">
    <?php esc_html_e('Instagram:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_instagram')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_instagram')); ?>" type="text"
    value="<?php echo esc_url($instance['author_instagram']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_pinterest')); ?>">
    <?php esc_html_e('Pinterest:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_pinterest')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_pinterest')); ?>" type="text"
    value="<?php echo esc_url($instance['author_pinterest']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_youtube')); ?>">
    <?php esc_html_e('Youtube:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_youtube')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_youtube')); ?>" type="text"
    value="<?php echo esc_url($instance['author_youtube']); ?>" />
</p>

<p>
  <label for="<?php echo esc_attr($this->get_field_name('author_vk')); ?>">
    <?php esc_html_e('VK:', 'fairy'); ?>
  </label>
  <input class="widefat" id="<?php echo esc_attr($this->get_field_id('author_vk')); ?>"
    name="<?php echo esc_attr($this->get_field_name('author_vk')); ?>" type="text"
    value="<?php echo esc_url($instance['author_vk']); ?>" />
</p>

<?php } } endif;
add_action('admin_enqueue_scripts', 'fairy_widgets_backend_enqueue');
function fairy_widgets_backend_enqueue()
{
    wp_register_script('fairy-custom-widgets', get_template_directory_uri() . '/candidthemes/assets/custom/js/widget.js', array('jquery'), true);
    wp_enqueue_media();
    wp_enqueue_script('fairy-custom-widgets');
}