PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.25
OttoKit: All-in-One Automation Platform v1.0.25
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 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 / wordpress / actions / set-user-meta.php
suretriggers / src / Integrations / wordpress / actions Last commit date
add-new-role.php 3 years ago change-role.php 3 years ago create-comment.php 3 years ago create-post.php 3 years ago create-user-if-not-exists.php 3 years ago find-user-by-id.php 2 years ago find-user-meta-by-key.php 3 years ago find-user-metas.php 3 years ago remove-role.php 3 years ago remove-user.php 3 years ago send-mail.php 3 years ago set-post-meta.php 3 years ago set-user-meta.php 3 years ago update-post.php 3 years ago update-user.php 3 years ago
set-user-meta.php
137 lines
1 <?php
2 /**
3 * SetUserMeta.
4 * php version 5.6
5 *
6 * @category SetUserMeta
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\WordPress\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Traits\SingletonLoader;
18
19 /**
20 * SetUserMeta
21 *
22 * @category SetUserMeta
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 SetUserMeta extends AutomateAction {
30
31 /**
32 * Integration type.
33 *
34 * @var string
35 */
36 public $integration = 'WordPress';
37
38 /**
39 * Action name.
40 *
41 * @var string
42 */
43 public $action = 'set_user_meta';
44
45 use SingletonLoader;
46
47 /**
48 * Register action.
49 *
50 * @param array $actions action data.
51 * @return array
52 */
53 public function register( $actions ) {
54 $actions[ $this->integration ][ $this->action ] = [
55 'label' => __( 'User: Set User meta', 'suretriggers' ),
56 'action' => 'set_user_meta',
57 'function' => [ $this, 'action_listener' ],
58 ];
59
60 return $actions;
61 }
62
63 /**
64 * Action listener.
65 *
66 * @param int $user_id user_id.
67 * @param int $automation_id automation_id.
68 * @param array $fields fields.
69 * @param array $selected_options selected_options.
70 *
71 * @return array|bool
72 */
73 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
74 if ( empty( $selected_options['user_meta_operations'] ) ) {
75 $this->set_error(
76 [
77 'msg' => __( 'No user meta operation found!', 'suretriggers' ),
78 ]
79 );
80 return false;
81 }
82
83 $dynamic_response = [];
84
85 foreach ( $selected_options['user_meta_operations'] as $meta ) {
86 $email = $meta['user_email'];
87 $user_id = 0;
88
89 $user = get_user_by( 'email', $email );
90 if ( $user ) {
91 $user_id = $user->ID;
92 }
93
94 $opr = $meta['operation'];
95 $meta_key = $meta['meta_key'];
96 $meta_value = $meta['meta_value'];
97 $is_meta_json = json_decode( $meta_value );
98 if ( null !== $is_meta_json && is_object( $is_meta_json ) ) {
99 $meta_value = $is_meta_json;
100 }
101
102 $value = get_user_meta( $user_id, $meta_key, true );
103 switch ( $opr ) {
104 case 'set':
105 $value = $meta_value;
106 break;
107 case 'insert':
108 if ( is_array( $value ) ) {
109 $value[] = $meta_value;
110 } else {
111 $value .= $meta_value;
112 }
113 break;
114 case 'increment':
115 $value += $meta_value;
116 break;
117 case 'decrement':
118 $value -= $meta_value;
119 break;
120 }
121
122 update_user_meta( $user_id, $meta_key, $value );
123
124 $dynamic_response[] = [
125 'user_id' => $user_id,
126 'meta_key' => $meta_key,
127 'meta_value' => $value,
128 'operation' => $opr,
129 ];
130 }
131
132 return $dynamic_response;
133 }
134 }
135
136 SetUserMeta::get_instance();
137