null.
*
* @return null|Element_Base|Element_Base[] Element types, or a list of all the element
* types, or null if element does not exist.
*/
public function get_element_types( $element_name = null ) {
if ( is_null( $this->_element_types ) ) {
$this->init_elements();
}
if ( null !== $element_name ) {
return isset( $this->_element_types[ $element_name ] ) ? $this->_element_types[ $element_name ] : null;
}
return $this->_element_types;
}
/**
* Get element types config.
*
* Retrieve the config of all the element types.
*
* @since 1.0.0
* @access public
*
* @return array Element types config.
*/
public function get_element_types_config() {
$config = [];
foreach ( $this->get_element_types() as $element ) {
$config[ $element->get_name() ] = $element->get_config();
}
return $config;
}
/**
* Render elements content.
*
* Used to generate the elements templates on the editor.
*
* @since 1.0.0
* @access public
*/
public function render_elements_content() {
foreach ( $this->get_element_types() as $element_type ) {
$element_type->print_template();
}
}
/**
* Init elements.
*
* Initialize Elementor elements by registering the supported elements.
* Elementor supports by default `section` element and `column` element.
*
* @since 2.0.0
* @access private
*/
private function init_elements() {
$this->_element_types = [];
foreach ( [ 'section', 'column' ] as $element_name ) {
$class_name = __NAMESPACE__ . '\Element_' . $element_name;
$this->register_element_type( new $class_name() );
}
$experiments_manager = Plugin::$instance->experiments;
if ( $experiments_manager->is_feature_active( 'container' ) ) {
$this->register_element_type( new Container() );
}
/**
* After elements registered.
*
* Fires after Elementor elements are registered.
*
* @since 1.0.0
*/
do_action( 'elementor/elements/elements_registered', $this );
}
/**
* Init categories.
*
* Initialize the element categories.
*
* @since 1.7.12
* @access private
*/
private function init_categories() {
$this->categories = [
'layout' => [
'title' => esc_html__( 'Layout', 'elementor' ),
'hideIfEmpty' => true,
],
'basic' => [
'title' => esc_html__( 'Basic', 'elementor' ),
'icon' => 'eicon-font',
],
'pro-elements' => [
'title' => esc_html__( 'Pro', 'elementor' ),
'promotion' => [
'url' => esc_url( 'https://go.elementor.com/go-pro-section-pro-widget-panel/' ),
],
],
'general' => [
'title' => esc_html__( 'General', 'elementor' ),
'icon' => 'eicon-font',
],
'theme-elements' => [
'title' => esc_html__( 'Site', 'elementor' ),
'active' => false,
'promotion' => [
'url' => esc_url( 'https://go.elementor.com/go-pro-section-site-widget-panel/' ),
],
],
'woocommerce-elements' => [
'title' => esc_html__( 'WooCommerce', 'elementor' ),
'active' => false,
'promotion' => [
'url' => esc_url( 'https://go.elementor.com/go-pro-section-woocommerce-widget-panel/' ),
],
],
];
// Not using the `add_category` because it doesn't allow 3rd party to inject a category on top the others.
$this->categories = array_merge_recursive( [
'favorites' => [
'title' => esc_html__( 'Favorites', 'elementor' ),
'icon' => 'eicon-heart',
'sort' => 'a-z',
'hideIfEmpty' => false,
],
], $this->categories );
/**
* When categories are registered.
*
* Fires after basic categories are registered, before WordPress
* category have been registered.
*
* This is where categories registered by external developers are
* added.
*
* @since 2.0.0
*
* @param Elements_Manager $this Elements manager instance.
*/
do_action( 'elementor/elements/categories_registered', $this );
$this->categories['wordpress'] = [
'title' => esc_html__( 'WordPress', 'elementor' ),
'icon' => 'eicon-wordpress',
'active' => false,
];
}
/**
* Require files.
*
* Require Elementor element base class and column, section and repeater
* elements.
*
* @since 1.0.0
* @access private
*/
private function require_files() {
require_once ELEMENTOR_PATH . 'includes/base/element-base.php';
require ELEMENTOR_PATH . 'includes/elements/column.php';
require ELEMENTOR_PATH . 'includes/elements/section.php';
require ELEMENTOR_PATH . 'includes/elements/repeater.php';
}
}
Fatal error: Uncaught Error: Class "Elementor\Elements_Manager" not found in /htdocs/wp-content/plugins/elementor/includes/plugin.php:717
Stack trace:
#0 /htdocs/wp-content/plugins/elementor/includes/plugin.php(647): Elementor\Plugin->init_components()
#1 /htdocs/wp-includes/class-wp-hook.php(324): Elementor\Plugin->init('')
#2 /htdocs/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array)
#3 /htdocs/wp-includes/plugin.php(517): WP_Hook->do_action(Array)
#4 /htdocs/wp-settings.php(727): do_action('init')
#5 /htdocs/wp-config.php(85): require_once('/htdocs/wp-sett...')
#6 /htdocs/wp-load.php(50): require_once('/htdocs/wp-conf...')
#7 /htdocs/wp-blog-header.php(13): require_once('/htdocs/wp-load...')
#8 /htdocs/index.php(17): require('/htdocs/wp-blog...')
#9 {main}
thrown in /htdocs/wp-content/plugins/elementor/includes/plugin.php on line 717