# Field Render
Elementor Pro AdvancedA field used in a form needs to have an output in the frontend. The render method sets the field's code when the field is displayed to the user on the site.
# Render Method
The method that actually generates the field output is called render()
. In your field class, use the method as follows:
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {
public function render( $item, $item_index, $form ): void {
echo '<input type="text" class="elementor-test-field" title="Some text...">';
}
}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
- Field Render – The
render()
method renders the data and displays the field output.
# Render Attribute
To add attributes "the Elementor way", you should not hardcode the HTML elements with your attributes. You should use the add_render_attribute()
method. This method is responsible for defining attributes and their values programmatically.
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {
public function render( $item, $item_index, $form ): void {
$form->add_render_attribute(
'input' . $item_index,
[
'type' => 'text',
'class' => 'elementor-test-field',
'placeholder' => esc_html__( 'Some placeholder', 'textdomain' ),
]
);
echo '<input ' . $form->get_render_attribute_string( 'input' . $item_index ) . '>';
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Retrieve Data From Field Controls
Some fields have custom controls that allow the user to customize the field. Displaying user data in the form widget is done as follows:
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {
public function render( $item, $item_index, $form ): void {
$form->add_render_attribute(
'textarea' . $item_index,
[
'class' => 'elementor-test-field',
'rows' => $item['textarea-rows'],
'cols' => $item['textarea-cols'],
]
);
echo '<textarea ' . $form->get_render_attribute_string( 'textarea' . $item_index ) . '></textarea>';
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16