shell bypass 403
<?php
/**
* Premium Addons Module Base.
*/
namespace PremiumAddons\Includes;
use PremiumAddons\Admin\Includes\Admin_Helper;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly.
}
/**
* Module Base
*
* @since 0.0.1
*/
abstract class Module_Base {
/**
* Reflection
*
* @var reflection
*/
private $reflection;
/**
* Modules
*
* @var modules
*/
private static $modules = null;
/**
* Reflection
*
* @var instances
*/
protected static $instances = array();
/**
* Get Name
*
* @since 0.0.1
*/
abstract public function get_name();
/**
* Class name to Call
*
* @since 0.0.1
*/
public static function class_name() {
return get_called_class();
}
/**
* Check if this is a widget.
*
* @since 1.12.0
* @access public
*
* @return bool true|false.
*/
public function is_widget() {
return true;
}
/**
* Constructor
*/
public function __construct() {
$this->reflection = new \ReflectionClass( $this );
if ( defined( 'ELEMENTOR_VERSION' ) ) {
add_action( 'elementor/widgets/register', array( $this, 'init_widgets' ) );
}
}
/**
* Init Widgets
*
* @since 0.0.1
*/
public function init_widgets() {
$widget_manager = \Elementor\Plugin::instance()->widgets_manager;
foreach ( $this->get_widgets() as $widget ) {
$class_name = $this->reflection->getNamespaceName() . '\Widgets\\' . $widget;
if ( $this->is_widget() ) {
if ( defined( 'ELEMENTOR_VERSION' ) ) {
$widget_manager->register( new $class_name() );
}
}
}
}
/**
* Get Widgets
*
* @since 0.0.1
*
* @return array
*/
public function get_widgets() {
return array();
}
}