website logo
Thrive Themes
Navigate through spaces
Thrive Themes
⌘K
General
⚙️Thrive Themes Action Hooks & Custom Functions
⚙️How Can You Extend Thrive Themes Capabilities as a Developer
⚙️How to Integrate Your Thrive Themes Site to a Third Party Autoresponder
Thrive Architect
⚙️How to Develop Custom Rules For the Conditional Display Option
Thrive Automator
Untitled doc
⚙️Thrive Automator for Developers - Extending Automations' Capabilities
⚙️What Type of Data Do Thrive Automator Triggers and Actions Use?
⚙️Creating a New Start Trigger
⚙️Creating a New Filter in Thrive Automator
⚙️Creating a New Action in Thrive Automator
⚙️Creating Data Fields
⚙️Creating Trigger Fields
⚙️Creating Action Fields
⚙️Creating Apps
⚙️Creating Data Objects
Docs powered by archbee 
18min

Creating a New Action in Thrive Automator

About actions

The basic principle that lies behind it will always be a simple one: when → then.

Therefore, actions are the last part of automation and represent what happens if the conditions are met.

Creating your first action

To create your own Action, you need to extend Thrive\Automator\Items\Action 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
PHP
|
<?php
public static function get_id(): string { 
    return 'wp/create-user'; 
}

  • abstract public static function get_name(): string - the name of the action.
PHP
|
<?php
public static function get_name(): string { 
    return 'Create user'; 
}


  • abstract public static function get_description(): string -short description of the action that will be displayed in the tooltip.
PHP
|
<?php
public static function get_description(): string { 
    return 'Create a new wordpress user'; 
}

  • abstract public static function get_image(): string - return the image that will be displayed near the action - ideally, the dimensions should be 32 x 32.
PHP
|
<?php
public static function get_image(): string { 
    return 'https://upload.wikimedia.org/wikipedia/commons/thumb/9/93/Wordpress_Blue_logo.png/1200px-Wordpress_Blue_logo.png'; 
}

  • abstract public static function get_app_name(): string - get the name of the app to which the hook belongs. If you have multiple actions from the same app, make sure to have the same name here.
PHP
|
<?php
public static function get_app_name(): string { 
    return Wordpress_App::get_id();
}

  • abstract public static function get_required_action_fields(): array - return an array of Action_Field ids that are required in the admin UI in order to set up the action. Those fields will be used inside the do_action function.
PHP
|
<?php
public static function get_required_action_fields(): array { 
    return [ Register_Role_Field::get_id() ]; 
}

  • abstract public static function get_required_data_objects(): array - return an array of Data_Object IDs that are required in order to complete this action. When setting automation in the admin UI, actions will be available only for the triggers that provide the same data. An action would require data from a trigger if it wants to use that specific data (e.g. when a user submits a form, create a new user with that email).
PHP
|
<?php
public static function get_required_data_objects(): array { 
    return [ User_Data::get_id() ]; 
}

  • abstract public static function do_action( $data = [] ) - the actual implementation of the action. receives as a parameter an array of Data_Object

Other methods

  • public function is_compatible_with_trigger( $trigger ): bool - check to see if an action is compatible with a specific Trigger

By default, an action is compatible with a trigger if it has all the required Data_Object

  • public function can_run( $data = [] ): bool - check if the current action has all the data needed in order to start
  • public function prepare_data( $data = [] ): void - can be used to set up additional fields inside the current class

Usually used to extract values set for each Action_Field from admin UI

  • public function provides_data_objects() - while the automation is running, the action itself can create and add a Data_Object to the automation data

This can enable other available Action, so by specifying here, the Action will be available in the editor

  • public function get_action_mapped_fields() - while setting up the automation, this can be used to dynamically alter the structure of the already set required Action_Field(s)
  • public function get_search_keywords() - inside the editor, in order for the Action to be more easily found, extra search tags can be added
  • public function is_compatible_with_trigger($provided_data_objects) - inside the editor, the Action will usually be available if the Trigger provides the required Data_Object(s).

Using this can overwrite that rule.

  • public function is_top_level() - inside the editor, the triggers are grouped under a category which usually represents the application for which it was developed

If we require the Action to be outside a category and be a standalone item, this can be set to true

  • public function sync_trigger_data() - inside the editor, while setting up the automation, certain Trigger_Field/Action may alter the provided data objects and some more actions can be enabled.

Registering the action

To register this action so it can appear in the admin area, we should use the thrive_automator_register_action function which receives as the only parameter, the class name.

Updated 03 Mar 2023
Did this page help you?
Yes
No
UP NEXT
Creating Data Fields
Docs powered by archbee 
TABLE OF CONTENTS
About actions
Creating your first action
Other methods
Registering the action