Skip to content

Field Dependencies ​

Elementor Pro Advanced

Some form fields are dependent on custom scripts for functionality, and custom styles for look and feel. Let's see how to set field dependencies.

Dependency Properties ​

Inside the field class we can require any JS or CSS dependencies the following way:

php
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {

	public function get_script_depends(): array {
		return [ 'script-handle' ];
	}

	public function get_style_depends(): array {
		return [ 'style-handle' ];
	}

}
  • Field Scripts – The get_script_depends() method defines the JS files required to display the field.

  • Field Styles – The get_style_depends() method defines the CSS files required to display the field.

Registering Scripts & Styles in WordPress ​

Like any other WordPress plugin, scripts and styles have to be registered using the wp_register_script() and wp_register_style() functions in the plugin’s PHP.

You can use the wp_enqueue_scripts hook to register scripts and styles on front-end pages

Registering Scripts & Styles in Elementor ​

Elementor addon developers should register JS and CSS dependencies in the main file, usually where form fields are registered:

php
/**
 * Register Elementor form fields.
 */
function elementor_test_field_registration( $form_fields_registrar ) {

	require_once( __DIR__ . '/forms/fields/field-1.php' );
	require_once( __DIR__ . '/forms/fields/field-2.php' );

	$form_fields_registrar->register( new \Elementor_Test_Field_1() );
	$form_fields_registrar->register( new \Elementor_Test_Field_2() );

}
add_action( 'elementor_pro/forms/fields/register', 'elementor_test_field_registration' );

/**
 * Register scripts and styles for Elementor form fields.
 */
function elementor_test_field_dependencies() {

	/* Scripts */
	wp_register_script( 'field-script', plugins_url( 'assets/js/field-script.js', __FILE__ ) );
	wp_register_script( 'external-library', plugins_url( 'assets/js/libs/external-library.js', __FILE__ ) );

	/* Styles */
	wp_register_style( 'field-style', plugins_url( 'assets/css/field-style.css', __FILE__ ) );
	wp_register_style( 'external-framework', plugins_url( 'assets/css/libs/external-framework.css', __FILE__ ) );

}
add_action( 'wp_enqueue_scripts', 'elementor_test_field_dependencies' );

Then, each form field should set its dependencies as follows:

php
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {

	public function get_script_depends(): array {
		return [ 'field-script', 'external-library' ];
	}

	public function get_style_depends(): array {
		return [ 'field-style', 'external-framework' ];
	}

}

Backwards Compatibility ​

Until Elementor 3.28, dependency declaration done using $depended_scripts and $depended_styles properties:

php
class Elementor_Test_Field extends \ElementorPro\Modules\Forms\Fields\Field_Base {

	public $depended_scripts = [ 'script-handle' ];

	public $depended_styles = [ 'style-handle' ];

}

If you need to support Elementor versions prior to 3.28, add these properties to the form field class with the required script/style handles.