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_Fieldthat 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_Fieldas 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.