PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.6
OttoKit: All-in-One Automation Platform v1.1.6
1.1.31 1.1.30 1.1.29 1.1.28 1.1.27 1.1.9 trunk 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 1.0.22 1.0.23 1.0.24 1.0.25 1.0.26 1.0.27 1.0.28 1.0.29 1.0.30 1.0.31 1.0.32 1.0.33 1.0.34 1.0.35 1.0.36 1.0.37 1.0.38 1.0.39 1.0.40 1.0.41 1.0.42 1.0.43 1.0.44 1.0.45 1.0.46 1.0.47 1.0.48 1.0.49 1.0.50 1.0.51 1.0.52 1.0.53 1.0.54 1.0.55 1.0.56 1.0.57 1.0.58 1.0.59 1.0.60 1.0.61 1.0.62 1.0.63 1.0.64 1.0.65 1.0.66 1.0.67 1.0.68 1.0.69 1.0.7 1.0.70 1.0.71 1.0.72 1.0.73 1.0.74 1.0.75 1.0.76 1.0.77 1.0.78 1.0.79 1.0.8 1.0.80 1.0.81 1.0.82 1.0.83 1.0.84 1.0.85 1.0.86 1.0.87 1.0.88 1.0.89 1.0.9 1.0.90 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8
suretriggers / src / Controllers / AutomationController.php
suretriggers / src / Controllers Last commit date
AuthController.php 11 months ago AutomationController.php 11 months ago EventController.php 11 months ago GlobalSearchController.php 9 months ago IntegrationsController.php 11 months ago OptionController.php 3 years ago RestController.php 10 months ago RoutesController.php 1 year ago SettingsController.php 10 months ago WebhookRequestsController.php 1 year ago
AutomationController.php
107 lines
1 <?php
2 /**
3 * AutomationController.
4 * php version 5.6
5 *
6 * @category AutomationController
7 * @package SureTriggers
8 * @author BSF <username@example.com>
9 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
10 * @link https://www.brainstormforce.com/
11 * @since 1.0.0
12 */
13
14 namespace SureTriggers\Controllers;
15
16 use SureTriggers\Traits\SingletonLoader;
17
18 /**
19 * AutomationController
20 *
21 * @category AutomationController
22 * @package SureTriggers
23 * @author BSF <username@example.com>
24 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
25 * @link https://www.brainstormforce.com/
26 * @since 1.0.0
27 */
28 class AutomationController {
29
30 use SingletonLoader;
31
32 /**
33 * Trigger handler.
34 *
35 * @param array $trigger_data trigger data.
36 *
37 * @return bool
38 */
39 public static function sure_trigger_handle_trigger( $trigger_data ) {
40 // Call rest API.
41 return RestController::get_instance()->trigger_listener( $trigger_data );
42 }
43
44 /**
45 * Register trigger listener.
46 *
47 * @return string|void
48 */
49 public function register_trigger_listener() {
50 $events = OptionController::get_option( 'triggers' );
51 $test_trigger_transient = OptionController::get_option( 'test_triggers' );
52
53 if ( empty( $events ) && empty( $test_trigger_transient ) ) {
54 return;
55 }
56
57 if ( empty( $events ) && ! empty( $test_trigger_transient ) ) {
58 $events = $test_trigger_transient;
59 }
60
61 if ( ! empty( $events ) && ! empty( $test_trigger_transient ) ) {
62 $events = array_merge( (array) $events, (array) $test_trigger_transient );
63 }
64
65 foreach ( (array) $events as $trigger ) {
66 self::register_trigger( (array) $trigger );
67 }
68 }
69
70 /**
71 * Register a given trigger.
72 *
73 * @param array $trigger trigger.
74 * @return bool|void
75 */
76 public static function register_trigger( $trigger ) {
77 if ( ! isset( $trigger['trigger'] ) || ! isset( $trigger['integration'] ) ) {
78 return;
79 }
80
81 $integration = $trigger['integration'];
82 $trigger_name = $trigger['trigger'];
83 $registered_triggers = EventController::get_instance()->triggers;
84
85 // If Event is not registered but used in automation then continue.
86 if ( ! isset( $registered_triggers[ $integration ][ $trigger_name ] ) ) {
87 return false;
88 }
89
90 $event = $registered_triggers[ $integration ][ $trigger_name ];
91
92 $action = isset( $event['common_action'] ) ? $event['common_action'] : $event['action'];
93
94 if ( ! is_array( $action ) ) {
95 add_action( $action, $event['function'], $event['priority'], $event['accepted_args'] );
96 } else {
97 foreach ( $action as $action_name ) {
98 add_action( $action_name, $event['function'], $event['priority'], $event['accepted_args'] );
99 }
100 }
101
102 return true;
103 }
104 }
105
106 AutomationController::get_instance();
107