Class Elements
Extending Elements class is done by adding the following filter and actions:
class Elements {
public function __construct() {
add_filter( 'zionbuilder/elements/categories', [ $this, 'add_elements_categories' ] );
add_action( 'zionbuilder/elements_manager/register_elements', [ $this, 'register_elements' ] );
add_action( 'zionbuilder/editor/before_scripts', [ $this, 'enqueue_scripts' ] );
}
}
Registering a new element category
Registering a new category is done by applying the filter
'zionbuilder/elements/categories'
A category is an array with the following structure:
public function add_elements_categories( $categories ) {
return [
[
'id' => 'category_id',
'name' => __( 'My Category', 'text-domain' ),
'priority' => 10,
],
]
}
Registering elements
The final function for registering the new elements should look as the following:
public $elements_manager = null;
public function register_elements( $elements_manager ) {
$new_elements = [
'MyElement',
]
foreach ( $new_elements as $element_name ) {
$file_path = Utils::get_file_path( 'includes/Elements/' . trailingslashit( $element_name ) . $element_name . '.php' );
if ( is_file( $file_path ) ) {
include $file_path;
// Normalize class name
$class_name = str_replace( '-', '_', $element_name );
$class_name = __NAMESPACE__ . '\\Elements\\' . $class_name;
$elements_manager->register_element( new $class_name() );
}
}
}
Last updated
Was this helpful?