PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.36
OttoKit: All-in-One Automation Platform v1.1.36
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 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 / Integrations / JetEngineCCT / triggers / new-cct-item.php
suretriggers / src / Integrations / JetEngineCCT / triggers Last commit date
new-cct-item.php 1 week ago updated-cct-item.php 1 week ago
new-cct-item.php
156 lines
1 <?php
2 /**
3 * NewCCTItem.
4 * php version 5.6
5 *
6 * @category NewCCTItem
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\Integrations\JetEngineCCT\Triggers;
15
16 use SureTriggers\Controllers\AutomationController;
17 use SureTriggers\Traits\SingletonLoader;
18
19 if ( ! class_exists( 'NewCCTItem' ) ) :
20
21 /**
22 * NewCCTItem
23 *
24 * @category NewCCTItem
25 * @package SureTriggers
26 * @author BSF <username@example.com>
27 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
28 * @link https://www.brainstormforce.com/
29 * @since 1.0.0
30 *
31 * @psalm-suppress UndefinedTrait
32 */
33 class NewCCTItem {
34
35 /**
36 * Integration type.
37 *
38 * @var string
39 */
40 public $integration = 'JetEngineCCT';
41
42 /**
43 * Trigger name.
44 *
45 * @var string
46 */
47 public $trigger = 'jet_engine_new_cct_item';
48
49 use SingletonLoader;
50
51 /**
52 * Constructor
53 *
54 * @since 1.0.0
55 */
56 public function __construct() {
57 add_filter( 'sure_trigger_register_trigger', [ $this, 'register' ] );
58 add_action( 'init', [ $this, 'register_hooks' ], 99 );
59 }
60
61 /**
62 * Register action.
63 *
64 * @param array $triggers trigger data.
65 * @return array
66 */
67 public function register( $triggers ) {
68 $triggers[ $this->integration ][ $this->trigger ] = [
69 'label' => __( 'New CCT Item', 'suretriggers' ),
70 'action' => $this->trigger,
71 'common_action' => [],
72 'function' => [ $this, 'trigger_listener' ],
73 'priority' => 10,
74 'accepted_args' => 3,
75 ];
76
77 return $triggers;
78 }
79
80 /**
81 * Register hooks for all registered CCTs dynamically.
82 * JetEngine CCT hooks are slug-specific: jet-engine/custom-content-types/created-item/{slug}
83 *
84 * @return void
85 */
86 public function register_hooks() {
87 if ( ! class_exists( '\Jet_Engine\Modules\Custom_Content_Types\Module' ) ) {
88 return;
89 }
90
91 $content_types = \Jet_Engine\Modules\Custom_Content_Types\Module::instance()->manager->get_content_types();
92
93 if ( empty( $content_types ) || ! is_array( $content_types ) ) {
94 return;
95 }
96
97 foreach ( $content_types as $slug => $factory ) {
98 add_action(
99 'jet-engine/custom-content-types/created-item/' . $slug,
100 [ $this, 'trigger_listener' ],
101 10,
102 3
103 );
104 }
105 }
106
107 /**
108 * Trigger listener for CCT item creation.
109 *
110 * @param array $item Item data.
111 * @param int $item_id Item ID.
112 * @param object $item_handler Item handler instance.
113 * @return void
114 */
115 public function trigger_listener( $item, $item_id, $item_handler ) {
116 if ( empty( $item ) || empty( $item_id ) ) {
117 return;
118 }
119
120 $cct_slug = '';
121
122 if ( is_object( $item_handler ) && method_exists( $item_handler, 'get_factory' ) ) {
123 $factory = $item_handler->get_factory();
124 if ( is_object( $factory ) && method_exists( $factory, 'get_arg' ) ) {
125 $cct_slug = $factory->get_arg( 'slug' );
126 }
127 }
128
129 $context = [];
130 $context['cct_slug'] = $cct_slug;
131 $context['cct_item_id'] = $item_id;
132
133 if ( is_array( $item ) ) {
134 foreach ( $item as $key => $value ) {
135 $context[ $key ] = st_safe_unserialize( $value );
136 }
137 }
138
139 AutomationController::sure_trigger_handle_trigger(
140 [
141 'trigger' => $this->trigger,
142 'context' => $context,
143 ]
144 );
145 }
146 }
147
148 /**
149 * Ignore false positive
150 *
151 * @psalm-suppress UndefinedMethod
152 */
153 NewCCTItem::get_instance();
154
155 endif;
156