LLMS_Analytics::get_users( $post_id,  $include_expired = false )


Description Description


Source Source

File: includes/class.llms.analytics.php

	public static function get_users( $post_id, $include_expired = false ) {
		global $wpdb;

		$students_array = array();
		$students_large = array();
		$students_small = array();

		$table_name = $wpdb->prefix . 'lifterlms_user_postmeta';
		$users_table = $wpdb->prefix . 'users';

		if ( 'all_products' === $post_id ) {

			// query user_postmeta table
			$results = $wpdb->get_results(
				'SELECT
					user_id,
					meta_value,
					updated_date
				FROM ' . $table_name . '
				WHERE meta_key = "_status"
				AND ( meta_value = "Enrolled" OR meta_value = "Expired" )
				AND EXISTS(SELECT 1 FROM ' . $users_table . ' WHERE ID = user_id)
				group by user_id'
			);

		} else {

			// query user_postmeta table
			$results = $wpdb->get_results(
				$wpdb->prepare(
					'SELECT
						user_id,
						meta_value,
						updated_date
					FROM ' . $table_name . '
					WHERE meta_key = "_status"
					AND post_id = %s
					AND ( meta_value = "Enrolled" OR meta_value = "Expired" )
					AND EXISTS(SELECT 1 FROM ' . $users_table . ' WHERE ID = user_id)
					group by user_id',
					$post_id
				)
			);

		}

		if ( $results ) {

			foreach ( $results as $key => $student ) {

				// if include expired students is false then remove expired students from array
				if ( ! $include_expired && 'Expired' === $student->meta_value ) {

					unset( $results[ $key ] );

				} else {

					//get member name
					$first_name = get_user_meta( $student->user_id, 'first_name', true );
					$last_name = get_user_meta( $student->user_id, 'last_name', true );
					$user = get_user_by( 'id', $student->user_id );
					$email = $user->user_email;
					$profile_link = '<a href="' . get_admin_url( '', 'admin.php?page=llms-students&tab=profile&student=' . $student->user_id ) . '">View</a>';
					//add data to large table array
					$student_data = array(
						$last_name,
						$first_name,
						$email,
						$profile_link,
					);
					array_push( $students_large, $student_data );

					//add data to small table array
					$student_data = array(
						$last_name,
						$first_name,
						$profile_link,
					);
					array_push( $students_small, $student_data );

				}
			}

			$students_array['large'] = $students_large;
			//$students_array['small'] = $students_small;
		}// End if().

		return $students_array;

	}

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.