# Action Structure
Elementor Pro AdvancedCreating custom form actions, triggered after a form's submission, is not as hard as it sounds.
Each form action needs to have a few basic settings. First, it needs a unique name and a label that will be used in the editor. Next are the controls. These are basically optional fields where users can configure their custom data. The last setting is the actual method that executes the action once the form is submitted.
# Form Action Class
First, we need to create a class that extends the \ElementorPro\Modules\Forms\Classes\Action_Base
class:
class Elementor_Test_Action extends \ElementorPro\Modules\Forms\Classes\Action_Base {
}
1
2
2
# Form Action Structure
As mentioned above, an Elementor Form Action extends the \ElementorPro\Modules\Forms\Classes\Action_Base
class and inherits its methods. A simple action skeleton will look as follows:
class Elementor_Test_Action extends \ElementorPro\Modules\Forms\Classes\Action_Base {
public function get_name(): string {}
public function get_label(): string {}
public function register_settings_section( $widget ): void {}
public function run( $record, $ajax_handler ): void {}
public function on_export( $element ): array {}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Let’s break it down:
get_name()
– Return action name (id) that will be used in the code.get_label()
– Return the action label that will be displayed in the editor.register_settings_section()
– (Optional) Define action controls (setting fields).run()
– Runs the actual action on form submission.on_export()
– Used to clear settings when exporting.