PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.33
OttoKit: All-in-One Automation Platform v1.1.33
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 / actions / create-cct-item.php
suretriggers / src / Integrations / JetEngineCCT / actions Last commit date
create-cct-item.php 3 months ago get-cct-fields.php 3 months ago get-cct-records-by-field.php 3 months ago update-cct-item.php 3 months ago
create-cct-item.php
167 lines
1 <?php
2 /**
3 * CreateCCTItem.
4 * php version 5.6
5 *
6 * @category CreateCCTItem
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\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * CreateCCTItem
21 *
22 * @category CreateCCTItem
23 * @package SureTriggers
24 * @author BSF <username@example.com>
25 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
26 * @link https://www.brainstormforce.com/
27 * @since 1.0.0
28 */
29 class CreateCCTItem extends AutomateAction {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'JetEngineCCT';
37
38 /**
39 * Action name.
40 *
41 * @var string
42 */
43 public $action = 'jet_engine_create_cct_item';
44
45 use SingletonLoader;
46
47 /**
48 * Register a action.
49 *
50 * @param array $actions actions.
51 * @return array
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'Create CCT Item', 'suretriggers' ),
56 'action' => $this->action,
57 'function' => [ $this, 'action_listener' ],
58 ];
59 return $actions;
60 }
61
62 /**
63 * Action listener.
64 *
65 * @param int $user_id user_id.
66 * @param int $automation_id automation_id.
67 * @param array $fields fields.
68 * @param array $selected_options selectedOptions.
69 *
70 * @return array|void
71 *
72 * @throws \Exception Exception.
73 */
74 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
75 if ( ! class_exists( '\Jet_Engine\Modules\Custom_Content_Types\Module' ) ) {
76 return [
77 'status' => 'error',
78 'message' => __( 'JetEngine Custom Content Types module is not active.', 'suretriggers' ),
79 ];
80 }
81
82 $cct_slug = isset( $selected_options['cct_slug'] ) ? sanitize_text_field( $selected_options['cct_slug'] ) : '';
83 $status = isset( $selected_options['cct_status'] ) ? sanitize_text_field( $selected_options['cct_status'] ) : 'publish';
84
85 if ( empty( $cct_slug ) ) {
86 return [
87 'status' => 'error',
88 'message' => __( 'CCT slug is required.', 'suretriggers' ),
89 ];
90 }
91
92 $content_types = \Jet_Engine\Modules\Custom_Content_Types\Module::instance()->manager->get_content_types();
93 $factory = isset( $content_types[ $cct_slug ] ) ? $content_types[ $cct_slug ] : false;
94
95 if ( ! $factory ) {
96 return [
97 'status' => 'error',
98 'message' => sprintf(
99 /* translators: %s: CCT slug */
100 __( 'Custom Content Type "%s" not found.', 'suretriggers' ),
101 $cct_slug
102 ),
103 ];
104 }
105
106 $item_data = [];
107 $item_data['cct_status'] = $status;
108
109 if ( ! empty( $selected_options['cct_fields'] ) && is_array( $selected_options['cct_fields'] ) ) {
110 foreach ( $selected_options['cct_fields'] as $field ) {
111 $field_name = isset( $field['field_name'] ) ? sanitize_text_field( $field['field_name'] ) : '';
112 $field_value = isset( $field['field_value'] ) ? $field['field_value'] : '';
113
114 if ( ! empty( $field_name ) ) {
115 $item_data[ $field_name ] = $field_value;
116 }
117 }
118 }
119
120 $handler = $factory->get_item_handler();
121
122 if ( ! $handler ) {
123 return [
124 'status' => 'error',
125 'message' => __( 'Unable to get item handler for CCT.', 'suretriggers' ),
126 ];
127 }
128
129 $item_id = $handler->update_item( $item_data );
130
131 if ( is_wp_error( $item_id ) ) {
132 return [
133 'status' => 'error',
134 'message' => $item_id->get_error_message(),
135 ];
136 }
137
138 if ( empty( $item_id ) ) {
139 return [
140 'status' => 'error',
141 'message' => __( 'Failed to create CCT item.', 'suretriggers' ),
142 ];
143 }
144
145 $created_item = $factory->db->get_item( $item_id );
146
147 $context = [
148 'cct_slug' => $cct_slug,
149 'cct_item_id' => $item_id,
150 ];
151
152 if ( ! empty( $created_item ) ) {
153 $item_array = is_object( $created_item ) ? (array) $created_item : $created_item;
154
155 if ( is_array( $item_array ) ) {
156 foreach ( $item_array as $key => $value ) {
157 $context[ $key ] = maybe_unserialize( $value );
158 }
159 }
160 }
161
162 return $context;
163 }
164 }
165
166 CreateCCTItem::get_instance();
167