PluginProbe ʕ •ᴥ•ʔ
OttoKit: All-in-One Automation Platform / 1.0.83
OttoKit: All-in-One Automation Platform v1.0.83
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 / learndash / actions / add-user-group.php
suretriggers / src / Integrations / learndash / actions Last commit date
add-user-group.php 3 years ago enroll-to-course.php 3 years ago find-course-taxonomy.php 1 year ago find-user-groups.php 1 year ago list-user-enrolled-courses.php 2 years ago make-user-group-leader.php 2 years ago mark-course-complete-for-user.php 3 years ago mark-lesson-complete-for-user.php 2 years ago mark-quiz-complete-for-user.php 2 years ago mark-topic-complete-for-user.php 2 years ago remove-from-course.php 3 years ago remove-user-from-group-leader.php 2 years ago remove-user-group.php 3 years ago reset-user-course-progress.php 2 years ago
add-user-group.php
139 lines
1 <?php
2 /**
3 * AddUserGroup.
4 * php version 5.6
5 *
6 * @category AddUserGroup
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\LearnDash\Actions;
15
16 use SureTriggers\Integrations\AutomateAction;
17 use SureTriggers\Integrations\LearnDash\LearnDash;
18 use SureTriggers\Traits\SingletonLoader;
19 use WP_Query;
20
21 /**
22 * AddUserGroup
23 *
24 * @category AddUserGroup
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 class AddUserGroup extends AutomateAction {
32
33
34 /**
35 * Integration type.
36 *
37 * @var string
38 */
39 public $integration = 'LearnDash';
40
41 /**
42 * Action name.
43 *
44 * @var string
45 */
46 public $action = 'learndash_add_user_group';
47
48 use SingletonLoader;
49
50 /**
51 * Register an action.
52 *
53 * @param array $actions actions.
54 * @return array
55 */
56 public function register( $actions ) {
57 $actions[ $this->integration ][ $this->action ] = [
58 'label' => __( 'Add user to a group', 'suretriggers' ),
59 'action' => $this->action,
60 'function' => [ $this, 'action_listener' ],
61 ];
62 return $actions;
63 }
64
65 /**
66 * Action listener.
67 *
68 * @param int $user_id user id.
69 * @param int $automation_id automation_id.
70 * @param array $fields template fields.
71 * @param array $selected_options saved template data.
72 * @psalm-suppress UndefinedFunction
73 *
74 * @return bool|array
75 */
76 public function _action_listener( $user_id, $automation_id, $fields, $selected_options ) {
77
78 if ( ! $user_id ) {
79 $this->set_error(
80 [
81 'msg' => __( 'User Not found', 'suretriggers' ),
82 ]
83 );
84 return false;
85 }
86
87 $group_id = ( isset( $selected_options['groups'] ) ) ? $selected_options['groups'] : '';
88
89 // Adding to all groups.
90 if ( 'all' === $group_id ) {
91 // Get all groups.
92 $query = new WP_Query(
93 [
94 'post_type' => 'groups',
95 'post_status' => 'publish',
96 'fields' => 'ids',
97 'nopaging' => true, //phpcs:ignore
98 ]
99 );
100 $groups = $query->get_posts();
101 } else {
102 $group = get_post( (int) $group_id );
103
104 // Bail if group doesn't exists.
105 if ( ! $group ) {
106 $this->set_error(
107 [
108 'msg' => __( 'No group is available ', 'suretriggers' ),
109 ]
110 );
111 return false;
112 }
113
114 $groups = [ $group_id ];
115 }
116
117 $added_to_groups = [];
118
119 // Add user to groups.
120 $count = 1;
121 foreach ( $groups as $group_id ) {
122 ld_update_group_access( $user_id, $group_id );
123 $arr_key = count( $groups ) > 1 ? 'group_' . $count : 'group';
124 $added_to_groups[ $arr_key ] = LearnDash::get_group_pluggable_data( $group_id );
125 $count++;
126 }
127
128 $user_data = LearnDash::get_user_pluggable_data( $user_id );
129
130 return [
131 'user' => $user_data,
132 'groups' => $added_to_groups,
133 ];
134 }
135
136 }
137
138 AddUserGroup::get_instance();
139