PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.3.1
Tutor LMS – eLearning and online course solution v3.3.1
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / models / UserModel.php
tutor / models Last commit date
BillingModel.php 1 year ago CartModel.php 1 year ago CouponModel.php 1 year ago CourseModel.php 1 year ago LessonModel.php 1 year ago OrderActivitiesModel.php 1 year ago OrderMetaModel.php 1 year ago OrderModel.php 1 year ago QuizModel.php 1 year ago UserModel.php 1 year ago WithdrawModel.php 1 year ago
UserModel.php
104 lines
1 <?php
2 /**
3 * User Model
4 *
5 * @package Tutor\Models
6 * @author Themeum <support@themeum.com>
7 * @link https://themeum.com
8 * @since 3.0.0
9 */
10
11 namespace Tutor\Models;
12
13 use TUTOR\Course;
14 use Tutor\Helpers\QueryHelper;
15
16 /**
17 * UserModel class
18 */
19 class UserModel {
20
21 /**
22 * Get user list
23 *
24 * @since 3.0.0
25 *
26 * @see https://developer.wordpress.org/reference/classes/wp_user_query/
27 *
28 * @param array $args args.
29 *
30 * @return \WP_User_Query
31 */
32 public function get_users_list( array $args ) {
33 $default_args = array(
34 'orderby' => 'ID',
35 'order' => 'DESC',
36 'number' => 10,
37 'offset' => 0,
38 'role' => '',
39 'fields' => array( 'ID', 'user_login', 'display_name', 'user_email', 'user_url', 'registered' ),
40 );
41
42 $args = wp_parse_args( $args, $default_args );
43 $args = apply_filters( 'tutor_user_list_args', $args );
44
45 return new \WP_User_Query( $args );
46 }
47
48 /**
49 * Get unenrolled users of a course/bundle
50 *
51 * @since 3.0.0
52 *
53 * @param int $object_id Course/Bundle id.
54 * @param array $search_clause Search condition.
55 * @param integer $limit List limit.
56 * @param integer $offset Offset.
57 *
58 * @return array
59 */
60 public function get_unenrolled_users( $object_id, $search_clause = array(), $limit = 10, $offset = 0 ) {
61 global $wpdb;
62
63 $primary_table = "{$wpdb->users} AS u";
64 $joining_tables = array(
65 array(
66 'type' => 'LEFT',
67 'table' => "{$wpdb->posts} p",
68 'on' => "p.post_type = 'tutor_enrolled' AND p.post_parent = {$object_id} AND u.ID = p.post_author",
69 ),
70 );
71
72 $response = QueryHelper::get_joined_data(
73 $primary_table,
74 $joining_tables,
75 array(
76 'distinct u.ID',
77 'u.user_login',
78 'u.user_email',
79 'u.display_name',
80 'CASE WHEN p.ID IS NOT NULL THEN 1 ELSE 0 END AS is_enrolled',
81 'p.post_status',
82 ),
83 array(),
84 $search_clause,
85 'ID',
86 $limit,
87 $offset
88 );
89
90 foreach ( $response['results'] as $result ) {
91 // Typecast `is_enrolled` to int.
92 $result->is_enrolled = (int) $result->is_enrolled;
93
94 // Add enrollment status.
95 $result->enrollment_status = in_array( $result->post_status, array( 'cancel', 'cancelled', 'canceled' ) ) ? __( 'Cancelled', 'tutor' ) : ( 'completed' === $result->post_status ? __( 'Approved', 'tutor' ) : ( 'pending' === $result->post_status ? __( 'Pending', 'tutor' ) : $result->post_status ) );
96
97 // Add avatar URL for the user.
98 $result->avatar_url = get_avatar_url( $result->ID );
99 }
100
101 return $response;
102 }
103 }
104