do_action( 'learndash_course_completed', array $course_data )
Fires after the course is marked completed.
Description #
Parameters #
- $course_data
-
(array) An array of course complete data.
Source #
Examples #
Note: Extended code example below not guaranteed, you may need to consult with a developer
<?php
/**
* Example usage for learndash_course_completed action.
*/
add_action(
'learndash_course_completed',
function( $user, $course_id, $course_progress ) {
// Add whatever logic to send custom notification to $user->ID
// based on the value of $course_id or not.
},
20,
3
);
add_action(
'learndash_course_completed',
function ( $args = array() ) {
/*
$args = array(
'user' => $current_user,
'course' => get_post( $course_id ),
'progress' => $course_progress,
)
*/
if ( isset( $args['user'] ) ) {
$user_groups = learndash_get_users_group_ids( $args['user']->ID );
if ( ! empty( $user_groups ) ) {
foreach ( $user_groups as $group_id ) {
$all_group_courses_complete = true;
$group_courses = learndash_group_enrolled_courses( $group_id );
if ( ! empty( $group_courses ) ) {
foreach ( $group_courses as $course_id ) {
$course_status = learndash_course_status( $course_id, $args['user']->ID );
if ( $course_status != __( 'Completed', 'learndash' ) ) {
$all_group_courses_complete = false;
break;
}
}
}
// If TRUE here then all group courses are completed and the user can be removed.
if ( $all_group_courses_complete == true ) {
$group_users = learndash_get_groups_user_ids( $group_id, true );
if ( in_array( $args['user']->ID, $group_users ) ) {
$group_users_less = array_diff( $group_users, array( $args['user']->ID ) );
learndash_set_groups_users( $group_id, $group_users_less );
}
}
}
}
}
}
);
add_action(
'learndash_course_completed',
function ( $data ) {
// Example 1 User ID 1 completes Course 4
if ( ( $data['user']->ID == 1 ) && ( $data['course']->ID == 4 ) ) {
// If user 1 has completed course #4 we want to enroll them into course 36
// LearnDash provides a handy function
ld_update_course_access( $data['user']->ID, 36 );
}
// Example 2 ANY user completed Course 4...
if ( $data['course']->ID == 4 ) {
// If user 1 has completed course #4 we want to enroll them into course 36
// LearnDash provides a handy function
ld_update_course_access( $data['user']->ID, 36 );
}
},
20
);
Changelog #
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |