PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.32
OttoKit: All-in-One Automation Platform v1.1.32
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 / updated-cct-item.php
suretriggers / src / Integrations / JetEngineCCT / triggers Last commit date
new-cct-item.php 3 months ago updated-cct-item.php 3 months ago
updated-cct-item.php
171 lines
1 <?php
2 /**
3 * UpdatedCCTItem.
4 * php version 5.6
5 *
6 * @category UpdatedCCTItem
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( 'UpdatedCCTItem' ) ) :
20
21 /**
22 * UpdatedCCTItem
23 *
24 * @category UpdatedCCTItem
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 UpdatedCCTItem {
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_updated_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' => __( 'Updated 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/updated-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/updated-item/' . $slug,
100 [ $this, 'trigger_listener' ],
101 10,
102 3
103 );
104 }
105 }
106
107 /**
108 * Trigger listener for CCT item update.
109 *
110 * @param array $item Updated item data.
111 * @param array $prev_item Previous item data.
112 * @param object $item_handler Item handler instance.
113 * @return void
114 */
115 public function trigger_listener( $item, $prev_item, $item_handler ) {
116
117 if ( empty( $item ) ) {
118 return;
119 }
120
121 $cct_slug = '';
122 $item_id = 0;
123
124 if ( is_object( $item_handler ) && method_exists( $item_handler, 'get_factory' ) ) {
125 $factory = $item_handler->get_factory();
126 if ( is_object( $factory ) && method_exists( $factory, 'get_arg' ) ) {
127 $cct_slug = $factory->get_arg( 'slug' );
128 }
129 }
130
131 if ( is_array( $item ) && isset( $item['_ID'] ) ) {
132 $item_id = $item['_ID'];
133 }
134
135 $context = [
136 'cct_slug' => $cct_slug,
137 'cct_item_id' => $item_id,
138 ];
139
140 if ( is_array( $item ) ) {
141 foreach ( $item as $key => $value ) {
142 $context[ $key ] = maybe_unserialize( $value );
143 }
144 }
145
146 if ( is_array( $prev_item ) ) {
147 $previous = [];
148 foreach ( $prev_item as $key => $value ) {
149 $previous[ $key ] = maybe_unserialize( $value );
150 }
151 $context['previous_item'] = $previous;
152 }
153
154 AutomationController::sure_trigger_handle_trigger(
155 [
156 'trigger' => $this->trigger,
157 'context' => $context,
158 ]
159 );
160 }
161 }
162
163 /**
164 * Ignore false positive
165 *
166 * @psalm-suppress UndefinedMethod
167 */
168 UpdatedCCTItem::get_instance();
169
170 endif;
171