PluginProbe
OttoKit: All-in-One Automation Platform / 1.1.30
OttoKit: All-in-One Automation Platform v1.1.30
1.1.38 1.1.37 1.1.36 1.1.35 1.1.34 1.1.33 1.1.32 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 All 124 releases
suretriggers / src / Controllers / AutomationController.php
AutomationController.php
107 lines 2.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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