PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.1.35
OttoKit: All-in-One Automation Platform v1.1.35
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 / metabox / actions / add-cloneable-field-value.php
suretriggers / src / Integrations / metabox / actions Last commit date
add-cloneable-field-value.php 11 months ago get-metabox-value.php 11 months ago get-object-fields.php 11 months ago set-metavalue.php 11 months ago update-cloneable-field-value.php 11 months ago
add-cloneable-field-value.php
127 lines
1 <?php
2 /**
3 * AddCloneableFieldValue.
4 * php version 5.6
5 *
6 * @category AddCloneableFieldValue
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 use SureTriggers\Integrations\AutomateAction;
15 use SureTriggers\Traits\SingletonLoader;
16
17 /**
18 * AddCloneableFieldValue
19 *
20 * @category AddCloneableFieldValue
21 * @package SureTriggers
22 * @author BSF <username@example.com>
23 * @license https://www.gnu.org/licenses/gpl-3.0.html GPLv3
24 * @link https://www.brainstormforce.com/
25 * @since 1.0.0
26 */
27 class AddCloneableFieldValue extends AutomateAction {
28
29 /**
30 * Integration type.
31 *
32 * @var string
33 */
34 public $integration = 'MetaBox';
35
36 /**
37 * Action name.
38 *
39 * @var string
40 */
41 public $action = 'add_cloneable_field_value';
42
43 use SingletonLoader;
44
45 /**
46 * Register a action.
47 *
48 * @param array $actions actions.
49 * @return array
50 */
51 public function register( $actions ) {
52 $actions[ $this->integration ][ $this->action ] = [
53 'label' => __( 'Add Cloneable Field Value', 'suretriggers' ),
54 'action' => $this->action,
55 'function' => [ $this, 'action_listener' ],
56 ];
57 return $actions;
58 }
59
60 /**
61 * Action listener.
62 *
63 * @param int $user_id user_id.
64 * @param int $automation_id automation_id.
65 * @param array $fields fields.
66 * @param array $selected_options selectedOptions.
67 * @psalm-suppress UndefinedMethod
68 * @throws Exception Exception.
69 *
70 * @return array|bool|void
71 */
72 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
73 $post_user_id = $selected_options['post_user_id'];
74 $field_name = $selected_options['mb_field_name'];
75 $response_array = [];
76 $rows = [];
77 $current_row = [];
78
79 if ( ! function_exists( 'rwmb_set_meta' ) || ! function_exists( 'rwmb_get_value' ) ) {
80 return [
81 'status' => 'error',
82 'message' => __( 'Required functions not found.', 'suretriggers' ),
83
84 ];
85 }
86
87 if ( ! empty( $selected_options['mb_meta_update_value'] ) ) {
88 foreach ( $selected_options['mb_meta_update_value'] as $meta ) {
89 $meta_key = $meta['meta_key'];
90 $meta_value = $meta['meta_value'];
91 $is_meta_json = json_decode( $meta_value, true );
92 if ( null !== $is_meta_json ) {
93 $meta_value = $is_meta_json;
94 }
95 if ( ! empty( $current_row ) && array_key_exists( $meta_key, $current_row ) ) {
96 $rows[] = $current_row;
97 $current_row = [];
98 }
99 $current_row[ $meta_key ] = $meta_value;
100 }
101 if ( ! empty( $current_row ) ) {
102 $rows[] = $current_row;
103 }
104
105 // Get previous value.
106 $previous_value = rwmb_get_value( $field_name, [], $post_user_id );
107
108 // Add new value to the previous value.
109 $new_value = array_merge( $previous_value, $rows );
110
111 rwmb_set_meta( $post_user_id, $field_name, $new_value );
112 update_post_meta( $post_user_id, $field_name, $new_value );
113 $response_array[ $field_name ] = rwmb_get_value( $field_name, [], $post_user_id );
114 $response_array['id'] = $post_user_id;
115 $response_array['field_name'] = $field_name;
116 return $response_array;
117 } else {
118 return [
119 'status' => 'error',
120 'message' => 'Field values are empty.',
121 ];
122 }
123 }
124 }
125
126 AddCloneableFieldValue::get_instance();
127