HEX
Server: Apache
System: Linux p3plzcpnl507418.prod.phx3.secureserver.net 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
User: retoti4c1e1s (10075650)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/retoti4c1e1s/public_html/izz.world/wp-content/plugins/elespare/class-elespare.php
<?php
/**
 * Widgets class.
 *
 * @category   Class
 * @package    Elespare
 * @subpackage WordPress
 * @author     Elespare
 * @copyright  2021 Elespare
 * @license    https://opensource.org/licenses/GPL-3.0 GPL-3.0-only
 * @link       https://afthemes.com/plugins/elespare/
 *             Build Custom Elementor Widgets)
 * @since      1.0.0
 * php version 7.3.9
 */

namespace Elespare;

// Security Note: Blocks direct access to the plugin PHP files.
defined( 'ABSPATH' ) || die();


/**
 * Class Plugin
 *
 * Main Plugin class
 *
 * @since 1.0.0
 */

class Widgets {

    /**
     * Instance
     *
     * @since 1.0.0
     * @access private
     * @static
     *
     * @var Plugin The single instance of the class.
     */
    private static $instance = null;

    /**
     * Instance
     *
     * Ensures only one instance of the class is loaded or can be loaded.
     *
     * @since 1.0.0
     * @access public
     *
     * @return Plugin An instance of the class.
     */
    public static function instance() {
        if ( is_null( self::$instance ) ) {
            self::$instance = new self();
        }

        return self::$instance;
    }

    /**
     * Include Widgets files
     *
     * Load widgets files
     *
     * @since 1.0.0
     * @access private
     */
    private function include_widgets_files() {
        require_once 'src/widgets/posts-grid/widget.php';
        require_once 'src/widgets/posts-tile/widget.php';
        require_once 'src/widgets/posts-list/widget.php';
        require_once 'src/widgets/posts-express-list/widget.php';
        require_once 'src/widgets/posts-slider/widget.php';
        require_once 'src/widgets/posts-flash/widget.php';
        require_once 'src/widgets/posts-banner-1/widget.php';
        require_once 'src/widgets/author/widget.php';
        require_once 'src/widgets/social-links/widget.php';
        require_once 'src/widgets/posts-single-column/widget.php';
        require_once 'src/widgets/search-form/widget.php';
        require_once 'src/widgets/site-logo/widget.php';
        require_once 'src/widgets/site-title/widget.php';
        require_once 'src/widgets/site-tagline/widget.php';
        require_once 'src/widgets/nav-menu-horizontal/widget.php';
        require_once 'src/widgets/date-time/widget.php';
        require_once 'src/widgets/section-title/widget.php';
        require_once 'src/widgets/copyright/widget.php';
        require_once 'src/widgets/copyright/copyright-shortcode.php';
        require_once 'src/widgets/popular-tags/widget.php';
        require_once 'src/widgets/custom-link-button/widget.php';
        require_once 'src/widgets/main-banner-1/widget.php';


    }

    /**
     * Register Widgets
     *
     * Register new Elementor widgets.
     *
     * @since 1.0.0
     * @access public
     */
    public function register_widgets() {
        // It's now safe to include Widgets files.
        $this->include_widgets_files();

        // Register the plugin widget classes.
        
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\SiteLogo() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\SiteTitle() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\SiteTagline() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\Site_Search() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\NavigationHorizontalMenu() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostBannerOne() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostExpressList() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostGrid() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostTile() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostList() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostSingleColumn() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostSlider() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\Author() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PostFlash() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\SocialLinks() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\DateTime() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\SectionTitle() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\Copyright() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\PopularTags() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\CustomLinkButton() );
        \Elementor\Plugin::instance()->widgets_manager->register( new Widgets\MainBannerOne() );


    }

    /**
     *  Plugin class constructor
     *
     * Register plugin action hooks and filters
     *
     * @since 1.0.0
     * @access public
     */
    public function __construct() {
        // Register the widgets.
        add_action( 'elementor/widgets/register', array( $this, 'register_widgets' ) );
        add_action('wp_enqueue_scripts',array($this,'elespare_load_scripts'));

        // Enqueue editor scripts
       add_action('elementor/editor/after_enqueue_scripts', [$this, 'elespare_load_editor_scripts']);
       add_filter('elementor/editor/localize_settings', [$this, 'elespare_pro_widget_map']);
    }

    function elespare_load_editor_scripts(){

       

        wp_enqueue_script(
            'elespare-editor-scripts-for-pro',
            ELESPARE_DIR_URL . 'dist/elespare.build.min.js',
            ['elementor-editor', 'jquery'],
            ELESPARE_VERSION,
            true
        );

       
    }


    /**
     * Get the pro widgets map for dashboard only
     *
     * @return array
     */
    public function elespare_pro_widget_map($config) {
        $promotion_widgets = [];

        if (isset($config['promotionWidgets'])) {
            $promotion_widgets = $config['promotionWidgets'];
        }

        $combine_array = array_merge($promotion_widgets, [
            [
                'name' => 'elespare-nav-vertical-menu',
                'title' => __( 'Vertical Nav Menu', 'elespare' ),
                'icon' => 'elespare-icons-verti-nav',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],
            [
                'name' => 'elespare-nav-expanded-menu',
                'title' => __( 'Expanded Nav Menu', 'elespare' ),
                'icon' => 'elespare-icons-expan-nav',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],

            [
                'name' => 'elespare-post--banner-2',
                'title' => __( 'Hero Banner 2', 'elespare' ),
                'icon' => 'elespare-icons-banner-2-1',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],
            [
                'name' => 'elespare-post-express-grid',
                'title' => __( 'Posts Express Grid', 'elespare' ),
                'icon' => 'elespare-icons-express-gird',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],

            [
                'name' => 'elespare-post-carousel',
                'title' => __( 'Posts Carousel', 'elespare' ),
                'icon' => 'elespare-icons-carousel',
                'is_pro' => true,
                'categories' => '["elespare"]',

            ],
            [
                'name' => 'elespare-post-tabs',
                'title' => __( 'Posts Tabbed Grid', 'elespare' ),
                'icon' => 'elespare-icons-tabs',
                'is_pro' => true,
                'categories' => '["elespare"]',

            ],
            [

                'name' => 'elespare-post-masonry',
                'title' => __( 'Posts Masonry', 'elespare' ),
                'icon' => 'elespare-icons-masonry',
                'is_pro' => true,
                'categories' => '["elespare"]',

            ],
            [
                'name'=>'elespare-post-trending-carousel',
                'title' => __( 'Trending Posts Carousel', 'elespare' ),
                'icon' => 'elespare-icons-treinding',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],
            [
                'name'=>'elespare-post-timeline',
                'title' => __( 'Posts Timeline', 'elespare' ),
                'icon' => 'elespare-icons-timeline',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],
            [
                'name'=>'elespare-post-full',
                'title' => __( 'Posts Full', 'elespare' ),
                'icon' => 'elespare-icons-full',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ],
            [
                'name'=>'main-banner-2',
                'title' => __( 'Main Banner 2', 'elespare' ),
                'icon' => 'elespare-icons-main-banner-2',
                'is_pro' => true,
                'categories' => '["elespare"]',
            ]
            
            
        ]);

        $config['promotionWidgets'] = $combine_array;

        return $config;

    }

    




    function elespare_load_scripts(){
        wp_enqueue_style(
            'elespare-icons',
            ELESPARE_DIR_URL . 'assets/font/elespare-icons.css',
            null,
            ELESPARE_VERSION
        );
       
        wp_register_style('slick',ELESPARE_DIR_URL.'assets/slick/css/slick.css','',time(),'all');
        wp_register_script( 'slick', ELESPARE_DIR_URL . 'assets/slick/js/slick.js', array('jquery'), time(), true );
        wp_enqueue_script( 'jquery-marquee', ELESPARE_DIR_URL . 'assets/marquee/jquery.marquee.js', array('jquery'), time(), true );
        wp_register_script( 'elespare-custom-scripts', ELESPARE_DIR_URL . 'assets/js/elespare-scripts.js', array('jquery'), time(), true );
        
       
        wp_localize_script(
            'elespare-custom-scripts',
            'ElespareLocalize',
             [
                'ajax_url' => admin_url( 'admin-ajax.php' ),
                'nonce'    => wp_create_nonce( 'elespare_elementor_nonce' ),

             ]
        );



    }
}



// Instantiate the Widgets class.
Widgets::instance();