Simple custom text element for Bricks Builder.

This example only includes type: text control but there are tons of other controls are possible to create as custom element. Here is the full list.
save this inside your theme or plugin like your-element-name.php or change it whatever you want.
<?php if ( ! defined( 'ABSPATH' ) ) { exit; } use Bricks\Frontend; class Prefix_Element_Simple_Text_Element extends \Bricks\Element { public $category = 'snn'; public $name = 'simple-text-element'; public $icon = 'ti-text'; public $scripts = []; public $nestable = false; public function get_label() { return esc_html__( 'Simple text element', 'bricks' ); } public function set_control_groups() { // No control groups needed. } public function set_controls() { // Only Content Control: Text Content $this->controls['text_content'] = [ 'tab' => 'content', 'label' => esc_html__( 'Simple text element', 'bricks' ), 'type' => 'text', 'placeholder' => esc_html__( 'Enter your text content here', 'bricks' ), 'default' => '', ]; } public function render() { $root_classes = [ 'simple-text-element' ]; $this->set_attribute( '_root', 'class', $root_classes ); $text_content = isset( $this->settings['text_content'] ) ? $this->settings['text_content'] : ''; echo '<div ' . $this->render_attributes( '_root' ) . '>'; echo $text_content; echo Frontend::render_children( $this ); echo '</div>'; } /** * Render builder method - used within the Bricks builder interface. */ public static function render_builder() { ?> <script type="text/x-template" id="tmpl-bricks-element-simple-text-element"> <component :is="tag"> <div v-if="element.settings.text_content" class="simple-text-element"> {{ element.settings.text_content }} </div> <bricks-element-children :element="element"/> </component> </script> <?php } }
and ofcourse you need to register this element as well
add_action('init', function () { $yourelement = get_stylesheet_directory() . '/custom_elements/your-element-name.php'; if (file_exists($yourelement)) { require_once $yourelement; \Bricks\Elements::register_element($yourelement); } }, 11);