bp_learndash_get_users_certificates( string $user_id = '' )
Function to get list of certificates the user has
Description
Parameters
- $user_id
-
(Optional)
Default value: ''
Return
(array|bool)
Source
File: bp-integrations/learndash/bp-learndash-functions.php
function bp_learndash_get_users_certificates( $user_id = '' ) { if ( empty( $user_id ) ) { return false; } /** * Course Certificate **/ $user_courses = ld_get_mycourses( $user_id, array() ); $certificates = array(); foreach ( $user_courses as $course_id ) { $certificateLink = learndash_get_course_certificate_link( $course_id, $user_id ); $filename = "Certificate.pdf"; $course_title = get_the_title( $course_id ); $certificate_id = learndash_get_setting( $course_id, 'certificate' ); $image = ''; if ( ! empty( $certificate_id ) ) { $certificate_data = get_post( $certificate_id ); $filename = sanitize_file_name( $course_title ) . "-" . sanitize_file_name( $certificate_data->post_title ) . ".pdf"; $image = wp_get_attachment_url( get_post_thumbnail_id( $certificate_id ) ); } $date = get_user_meta( $user_id, 'course_completed_' . $course_id, true ); if ( ! empty( $certificateLink ) ) { $certificate = new \stdClass(); $certificate->ID = $course_id; $certificate->link = $certificateLink; $certificate->title = get_the_title( $course_id ); $certificate->filename = $filename; $certificate->date = date_i18n( "Y-m-d h:i:s", $date ); $certificate->time = $date; $certificate->type = 'course'; $certificates[] = $certificate; } } /** * Quiz Certificate **/ $quizzes = get_user_meta( $user_id, '_sfwd-quizzes', true ); $quiz_ids = empty( $quizzes ) ? array() : wp_list_pluck( $quizzes, 'quiz' ); if ( ! empty( $quiz_ids ) ) { $quiz_total_query_args = array( 'post_type' => 'sfwd-quiz', 'fields' => 'ids', 'orderby' => 'title', //$atts['quiz_orderby'], 'order' => 'ASC', //$atts['quiz_order'], 'nopaging' => true, 'post__in' => $quiz_ids ); $quiz_query = new \WP_Query( $quiz_total_query_args ); $quizzes_tmp = array(); foreach ( $quiz_query->posts as $post_idx => $quiz_id ) { foreach ( $quizzes as $quiz_idx => $quiz_attempt ) { if ( $quiz_attempt['quiz'] == $quiz_id ) { $quiz_key = $quiz_attempt['time'] . '-' . $quiz_attempt['quiz']; $quizzes_tmp[ $quiz_key ] = $quiz_attempt; unset( $quizzes[ $quiz_idx ] ); } } } $quizzes = $quizzes_tmp; krsort( $quizzes ); if ( ! empty( $quizzes ) ) { foreach ( $quizzes as $quizdata ) { if ( ! in_array( $quizdata['quiz'], wp_list_pluck( $certificates, 'ID' ) ) ) { $quiz_settings = learndash_get_setting( $quizdata['quiz'] ); $certificate_post_id = intval( $quiz_settings['certificate'] ); $certificate_post_data = get_post( $certificate_post_id ); $certificate_data = learndash_certificate_details( $quizdata['quiz'], $user_id ); if ( ! empty( $certificate_data['certificateLink'] ) && $certificate_data['certificate_threshold'] <= $quizdata['percentage'] / 100 ) { $filename = sanitize_file_name( get_the_title( $quizdata['quiz'] ) ) . "-" . sanitize_file_name( get_the_title( $certificate_post_id ) ) . ".pdf"; $certificate = new \stdClass(); $certificate->ID = $quizdata['quiz']; $certificate->link = $certificate_data['certificateLink']; $certificate->title = get_the_title( $quizdata['quiz'] ); $certificate->filename = $filename; $certificate->date = date_i18n( "Y-m-d h:i:s", $quizdata['time'] ); $certificate->time = $quizdata['time']; $certificate->type = 'quiz'; $certificates[] = $certificate; } } } } } usort( $certificates, function ( $a, $b ) { return strcmp( $b->time, $a->time ); } ); return $certificates; }
Changelog
Version | Description |
---|---|
BuddyBoss 1.2.0 | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.