Origin commit
This commit is contained in:
116
inc/vendors/elementor/class-opalestate-elementor-extended.php
vendored
Executable file
116
inc/vendors/elementor/class-opalestate-elementor-extended.php
vendored
Executable file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
/**
|
||||
* Main Opalestate_Elementor_Extended Class
|
||||
*
|
||||
* The main class that initiates and runs the plugin.
|
||||
*/
|
||||
|
||||
final class Opalestate_Elementor_Extended {
|
||||
/**
|
||||
* Instance
|
||||
*
|
||||
* @access private
|
||||
* @static
|
||||
*
|
||||
* @var Opalestate_Elementor_Extended The single instance of the class.
|
||||
*/
|
||||
private static $_instance = null;
|
||||
|
||||
/**
|
||||
* Instance
|
||||
*
|
||||
* Ensures only one instance of the class is loaded or can be loaded.
|
||||
*
|
||||
* @access public
|
||||
* @static
|
||||
*
|
||||
* @return Opalestate_Elementor_Extended An instance of the class.
|
||||
*/
|
||||
public static function instance() {
|
||||
if ( is_null( self::$_instance ) ) {
|
||||
self::$_instance = new self();
|
||||
}
|
||||
|
||||
return self::$_instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function __construct() {
|
||||
add_action( 'plugins_loaded', [ $this, 'init' ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the plugin
|
||||
*
|
||||
* Load the plugin only after Elementor (and other plugins) are loaded.
|
||||
* Checks for basic plugin requirements, if one check fail don't continue,
|
||||
* if all check have passed load the files required to run the plugin.
|
||||
*
|
||||
* Fired by `plugins_loaded` action hook.
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function init() {
|
||||
// Check if Elementor installed and activated.
|
||||
if ( ! did_action( 'elementor/loaded' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
add_action( 'elementor/elements/categories_registered', [ $this, 'add_widget_categories' ] );
|
||||
|
||||
// Add Plugin actions.
|
||||
add_action( 'elementor/widgets/widgets_registered', [ $this, 'register_widgets' ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add widget categories.
|
||||
*
|
||||
* @param object $elements_manager elements manager.
|
||||
*/
|
||||
public function add_widget_categories( $elements_manager ) {
|
||||
$elements_manager->add_category(
|
||||
'opalestate-pro',
|
||||
[
|
||||
'title' => esc_html__( 'Opal Estate', 'opalestate-pro' ),
|
||||
'icon' => 'fa fa-plug',
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Includes
|
||||
*/
|
||||
public function includes() {
|
||||
require OPALESTATE_PLUGIN_DIR . 'inc/vendors/elementor/class-opalestate-elementor-widget-base.php';
|
||||
}
|
||||
|
||||
/**
|
||||
* Init Widgets
|
||||
*
|
||||
* Include widgets files and register them
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function register_widgets() {
|
||||
$this->includes();
|
||||
|
||||
$widget_paths = glob( OPALESTATE_PLUGIN_DIR . 'inc/vendors/elementor/widgets/*.php' );
|
||||
|
||||
if ( $widget_paths ) {
|
||||
foreach ( $widget_paths as $path ) {
|
||||
require_once $path;
|
||||
$class_name = ucfirst( str_replace("-","_", basename( $path, '.php' ) ) ).'_Elementor_Widget';
|
||||
|
||||
if( class_exists($class_name) ){
|
||||
\Elementor\Plugin::instance()->widgets_manager->register_widget_type( new $class_name() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Opalestate_Elementor_Extended::instance();
|
||||
Reference in New Issue
Block a user