/
home
/
assocoweys
/
ermada24
/
wp-content
/
plugins
/
ht-mega-for-elementor
/
includes
/
Upload File
HOME
<?php if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly. if ( !class_exists( '\HTMegaOpt\Admin\Options_Field' ) ) { require_once HTMEGAOPT_INCLUDES . '/classes/Admin/Options_field.php'; } class HTMega_Widgets_Control{ private static $instance = null; public static function instance() { if ( is_null( self::$instance ) ) { self::$instance = new self(); } return self::$instance; } public function __construct(){ // Register custom category add_action( 'elementor/elements/categories_registered', [ $this, 'add_category' ] ); // Init Widgets add_action( 'elementor/widgets/register', [ $this, 'init_widgets' ] ); // Add custom control add_action( 'elementor/controls/register', [ $this, 'initiliaze_custom_control' ] ); } public function initiliaze_custom_control($controls_manager){ if ( file_exists( HTMEGA_ADDONS_PL_PATH.'admin/include/custom-control/preset-select.php' ) ) { $controls_manager->register( new \HtMega\Preset\Preset_Select()); } } // Add custom category. public function add_category( $elements_manager ) { $elements_manager->add_category( 'htmega-addons', [ 'title' => __( 'HTMega Addons', 'htmega-addons' ), 'icon' => 'fa fa-snowflake', ] ); } public function init_widgets(){ // Only check if Elementor is loaded if (!did_action('elementor/loaded')) { return; } // Check maintenance mode if (!is_admin()) { $maintenance_mode = get_option('elementor_maintenance_mode_mode'); if ($maintenance_mode && $maintenance_mode !== 'disabled' && !\Elementor\Plugin::$instance->editor->is_edit_mode()) { if (!current_user_can('edit_posts')) { return; } } } $widget_list = $this->get_widget_list(); $widgets_manager = \Elementor\Plugin::instance()->widgets_manager; //Get registered settings $settings = \HTMegaOpt\Admin\Options_Field::instance()->get_registered_settings(); foreach($widget_list as $option_key => $option){ $option_tab = $option['option-tab']; $settings_ids = array_column($settings[$option_tab], 'default','id'); $default_status = ( array_key_exists($option_key, $settings_ids) ) ? $settings_ids[$option_key] : 'on'; $widget_path = $option['is_pro'] ? HTMEGA_ADDONS_PL_PATH_PRO : HTMEGA_ADDONS_PL_PATH; if(strpos($option['title'], ' ') !== false){ $widget_file_name = strtolower(str_replace(' ', '_', $option['title'])); $widget_class = $option['is_pro'] ? 'HTMegaPro\Elementor\Widget\HTMega_'. str_replace(' ', '_', $option['title']).'_Element' : "\Elementor\HTMega_Elementor_Widget_" . str_replace(' ', '_', $option['title']); }else{ $widget_file_name = strtolower($option['title']); $widget_class =$option['is_pro'] ? 'HTMegaPro\Elementor\Widget\HTMega_'. $option['title'] .'_Element' : "\Elementor\HTMega_Elementor_Widget_" . $option['title']; } if(isset($option['third-party-resource'])){ $widget_status = is_plugin_active($option['third-party-resource']) && ( htmega_get_option( $option_key, $option['option-tab'], $default_status ) === 'on' ) && file_exists( $widget_path.'includes/widgets/htmega_'.$widget_file_name.'.php' ) ? true : false ; }else{ $widget_status = ( htmega_get_option( $option_key, $option['option-tab'], $default_status ) === 'on' ) && file_exists( $widget_path.'includes/widgets/htmega_'.$widget_file_name.'.php' ) ? true : false ; } if ( $widget_status ){ if( htmega_is_pro_active() && file_exists( HTMEGA_ADDONS_PL_PATH_PRO.'includes/widgets/htmega_'.$widget_file_name.'.php' ) ) { require_once HTMEGA_ADDONS_PL_PATH_PRO.'includes/widgets/htmega_'.$widget_file_name.'.php'; } else { require_once $widget_path.'includes/widgets/htmega_'.$widget_file_name.'.php'; } if ( htmega_is_elementor_version( '>=', '3.5.0' ) ){ $widgets_manager->register( new $widget_class() ); }else{ $widgets_manager->register_widget_type( new $widget_class() ); } } } } private function get_widget_list(){ $widget_list =[ 'accordion'=> [ 'title' => 'Accordion', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'animatesectiontitle'=> [ 'title' => 'Animated Heading', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'addbanner' => [ 'title' => 'Add Banner', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'specialadsbanner' =>[ 'title' => 'Special day Banner', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'blockquote' =>[ 'title' => 'Blockquote', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'brandlogo' =>[ 'title' => 'Brand', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'businesshours' =>[ 'title' => 'Business Hours', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'button' =>[ 'title' => 'Button', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'calltoaction' =>[ 'title' => 'Call To Action', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'carousel' =>[ 'title' => 'Carousel', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'countdown' =>[ 'title' => 'Countdown', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'counter' =>[ 'title' => 'Counter', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'customevent' =>[ 'title' => 'Custom_Event', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'dualbutton' =>[ 'title' => 'Double Button', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'dropcaps' =>[ 'title' => 'Dropcaps', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'flipbox' =>[ 'title' => 'Flip Box', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'galleryjustify' =>[ 'title' => 'Gallery Justify', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'googlemap' =>[ 'title' => 'GoogleMap', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'imagecomparison' =>[ 'title' => 'Image Comparison', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'imagegrid' =>[ 'title' => 'Image Grid', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'imagemagnifier' =>[ 'title' => 'Image Magnifier', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'imagemarker' =>[ 'title' => 'ImageMarker', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'imagemasonry' =>[ 'title' => 'Image_Masonry', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'inlinemenu' =>[ 'title' => 'InlineMenu', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'instagram' =>[ 'title' => 'Instagram', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'lightbox' =>[ 'title' => 'Lightbox', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'modal' =>[ 'title' => 'Modal', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'newtsicker' =>[ 'title' => 'Newsticker', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'notify' =>[ 'title' => 'Notify', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'offcanvas' =>[ 'title' => 'Offcanvas', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'panelslider' =>[ 'title' => 'Panel Slider', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'popover' =>[ 'title' => 'Popover', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'postcarousel' =>[ 'title' => 'Post Carousel', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'postgrid' =>[ 'title' => 'PostGrid', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'postgridtab' =>[ 'title' => 'Post Grid Tab', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'postslider' =>[ 'title' => 'Post Slider', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'pricinglistview' =>[ 'title' => 'Pricing List View', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'pricingtable' =>[ 'title' => 'Pricing Table', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'progressbar' =>[ 'title' => 'Progress Bar', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'scrollimage' =>[ 'title' => 'Scroll Image', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'scrollnavigation' =>[ 'title' => 'Scroll Navigation', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'search' =>[ 'title' => 'Search', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'sectiontitle' =>[ 'title' => 'Section_Title', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'service' =>[ 'title' => 'Service', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'singlepost' =>[ 'title' => 'SinglePost', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'thumbgallery' =>[ 'title' => 'Slider Thumb Gallery', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'socialshere' =>[ 'title' => 'SocialShere', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'switcher' =>[ 'title' => 'Switcher', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'tabs' =>[ 'title' => 'Tabs', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'datatable' =>[ 'title' => 'Data Table', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'teammember' =>[ 'title' => 'TeamMember', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'testimonial' =>[ 'title' => 'Testimonial', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'testimonialgrid' =>[ 'title' => 'Testimonial Grid', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'toggle' =>[ 'title' => 'Toggle', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'tooltip' =>[ 'title' => 'Tooltip', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'twitterfeed' =>[ 'title' => 'Twitter_Feed', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'userloginform' =>[ 'title' => 'User Login Form', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'userregisterform' =>[ 'title' => 'User Register Form', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'verticletimeline' =>[ 'title' => 'Verticle Time Line', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'videoplayer' =>[ 'title' => 'VideoPlayer', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'workingprocess' =>[ 'title' => 'Working Process', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'errorcontent' =>[ 'title' => 'ErrorContent', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'template_selector' =>[ 'title' => 'Template Selector', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'weather' =>[ 'title' => 'Weather', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'audio_player' =>[ 'title' => 'Audio Player', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'calendly' =>[ 'title' => 'Calendly', 'option-tab'=>'htmega_element_tabs', 'is_pro' => false, ], 'bbpress' => [ 'title' => 'Bbpress', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'bookedcalender' => [ 'title' => 'Booked Calendar', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'third-party-resource' => 'booked/booked.php', 'is_pro'=>false ], 'buddypress' => [ 'title' => 'Buddy Press', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'calderaform' => [ 'title' => 'Caldera Form', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'contactform' => [ 'title' => 'Contact Form Seven', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'downloadmonitor' => [ 'title' => 'Download Monitor', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'easydigitaldownload' => [ 'title' => 'Easy Digital Download', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'gravityforms' => [ 'title' => 'Gravity Forms', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'instragramfeed' => [ 'title' => 'Instragram Feed', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'jobmanager' => [ 'title' => 'Job Manager', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'layerslider' => [ 'title' => 'Layer Slider', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'third-party-resource' => 'LayerSlider/layerslider.php', 'is_pro'=>false ], 'mailchimpwp' => [ 'title' => 'Mailchimp Wp', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'ninjaform' => [ 'title' => 'Ninja Form', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'quforms' => [ 'title' => 'QUforms', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'wpforms' => [ 'title' => 'WPforms', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'revolution' => [ 'title' => 'Revolution Slider', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'tablepress' => [ 'title' => 'Tablepress', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'is_pro'=>false ], 'wcaddtocart' => [ 'title' => 'WC Add to Cart', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'third-party-resource' => 'woocommerce/woocommerce.php', 'is_pro'=>false ], 'categories' => [ 'title' => 'WC Categories', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'third-party-resource' => 'woocommerce/woocommerce.php', 'is_pro'=>false ], 'wcpages' => [ 'title' => 'WC Element Pages', 'option-tab'=> 'htmega_thirdparty_element_tabs', 'third-party-resource' => 'woocommerce/woocommerce.php', 'is_pro'=>false ], ]; return apply_filters( 'htmega_widget_list', $widget_list ); } } HTMega_Widgets_Control::instance();