I am making an attempt to register new Elementor Widget with out making a plugin.
So I want to register it in my features.php
Relating to to Elementor developper’s information, I would like to make use of :
perform register_new_widgets( $widgets_manager ) {
require_once( __DIR__ . '/widgets/widget-1.php' );
require_once( __DIR__ . '/widgets/widget-2.php' );
$widgets_manager->register( new Elementor_Widget_1() );
$widgets_manager->register( new Elementor_Widget_2() );
}
add_action( 'elementor/widgets/register', 'register_new_widgets' );
Maybe, I used to be having a deadly error saying my Class would not exists.
After a protracted search I uncover that was as a result of Elementor class hasn’t been loaded but when registering this new courses and that I would like to make use of Elementor Initialization to get my Widget loaded solely when Elementor will load different widgets.
So concerning this doc, I’ve made one thing comparable as :
closing class Plugin {
/**
* Initialize
*
* Load the addons performance solely after Elementor is initialized.
*
* Fired by `elementor/init` motion hook.
*
* @since 1.0.0
* @entry public
*/
public perform init() {
add_action( 'elementor/widgets/register', [ $this, 'register_widgets' ] );
}
/**
* Register Widgets
*
* Load widgets information and register new Elementor widgets.
*
* Fired by `elementor/widgets/register` motion hook.
*
* @param ElementorWidgets_Manager $widgets_manager Elementor widgets supervisor.
*/
public perform register_widgets( $widgets_manager ) {
require_once( __DIR__ . '/contains/widgets/widget-1.php' );
require_once( __DIR__ . '/contains/widgets/widget-2.php' );
$widgets_manager->register( new Widget_1() );
$widgets_manager->register( new Widget_2() );
}
}
So now I’ve no extra deadly error, however I am unable to see my widget in my Elementor widgets.
Did I do it proper ? Or did I miss one thing ?