About Trigger Fields
Trigger Fields are the fields used for setting up an action in the admin user interface.
Creating Your First Trigger Field
To create your own Trigger_Field
you need to extend ThriveAutomatorItemsTrigger_Field
and implement the required basic methods.
abstract public static function get_id(): string
– should return a unique identifier that will be used as a key in arrays. To avoid conflicts or overwrites we suggest using a prefix.
public static function get_id(): string {
return 'request_headers_toggle';
}
abstract public static function get_name(): string
– the name of theTrigger_Field
.
public static function get_name(): string {
return 'Headers';
}
abstract public static function get_description(): string
– short description of theTrigger_Field
that will be displayed in the tooltip.
public static function get_description(): string {
return 'Whether you want custom headers';
}
abstract public static function get_placeholder(): string
– input placeholder to be displayed in the admin UI.
public static function get_placeholder(): string {
return 'user role';
}
abstract public static function get_type(): string
– type of input field, required to render in the admin UI.
/**
* @see Utils::FIELD_TYPE_TEXT
* @see Utils::FIELD_TYPE_TAGS
* @see Utils::FIELD_TYPE_SELECT
* @see Utils::FIELD_TYPE_CHECKBOX
* @see Utils::FIELD_TYPE_AUTOCOMPLETE
* @see Utils::FIELD_TYPE_DOUBLE_DROPDOWN
* @see Utils::FIELD_TYPE_BUTTON
* @see Utils::FIELD_TYPE_KEY_PAIR
*/
public static function get_type(): string {
return Trigger_Field::FIELD_TYPE_RADIO;
}
Other Methods
abstract public static function get_validators(): array
– returns an array of validations that should be done on the field.
public static function get_validators(): array {
return [ static::REQUIRED_VALIDATION ];
}
abstract public static function is_ajax_field(): bool
– checks if the field values are retrieved normally or with an ajax request.
public static function is_ajax_field(): bool {
return true;
}
public static function allow_dynamic_data(): bool
– Whether users should be allowed to add dynamic data fromData_Field
as value for the currentTrigger_Field
.
public static function allow_dynamic_data(): bool {
return false;
}
public static function get_default_value(): string
– can be used to set default values for a field e.g select field.
public static function get_default_value(): string{
return 'first_key';
}
abstract public static function get_options_callback(): array
– returns an array of id/label arrays representing the option values for theTrigger_Field
.$trigger_id
– the current trigger where the field is displayed, useful when a single field is used in multiple triggers(e.g products list)$trigger_data
– the current state of the trigger.Can be used to filter the values based on other properties set for the current trigger
public static function get_options_callback( $trigger_id, $trigger_data ): array {
return [
'none' => [
'id' => 'none',
'label' => 'None',
],
'custom' => [
'id' => 'custom',
'label' => 'Custom',
],
];
}
Registering the Trigger Field
To register this Trigger_Field
so it can appear in the admin area, we should use the thrive_automator_register_trigger_field
function which receives the class name as the only parameter.