Created
October 25, 2024 11:11
-
-
Save JarrydLong/1bd77a9f6a066c48f942c39e0715abdb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php //do not copy | |
function mypmpro_enroll_on_new_course( $course_id, $post, $update ) { | |
global $wpdb; | |
if ( ! current_user_can( 'manage_options' ) ) { | |
return; | |
} | |
// Learndash not active, bail. | |
if ( ! function_exists( 'llms_is_user_enrolled' ) ) { | |
return; | |
} | |
//Doing autosave - don't enroll | |
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { | |
return; | |
} | |
//Updating the post - don't enroll | |
if ( $update ) { | |
return; | |
} | |
//Post revision - don't enroll | |
if ( wp_is_post_revision( $post_id ) ) { | |
return; | |
} | |
$everyone_enrolled = get_post_meta( $course_id, 'pmpro_ld_enrolled', true ); | |
//Only enroll everyone if the course is being saved for the first time. | |
if( $everyone_enrolled ) { | |
return; | |
} | |
$sql = "SELECT pmu.user_id, pmu.membership_id FROM {$wpdb->prefix}pmpro_memberships_users pmu | |
LEFT JOIN {$wpdb->prefix}pmpro_memberships_pages mp ON pmu.membership_id = mp.membership_id | |
WHERE pmu.status = ‘active’ | |
AND mp.page_id = ". $course_id; | |
$members_to_enroll = $wpdb->get_results( $sql ); | |
if ( empty( $members_to_enroll ) || ! is_array( $members_to_enroll ) ) { | |
return; | |
} | |
// Loop through all members and make sure they aren't enrolled and enroll them. | |
foreach( $members_to_enroll as $member ) { | |
if ( ! llms_is_user_enrolled( $member->course_id, $member->user_id ) ) { | |
llms_enroll_student( $member->user_id, $member->course_id ); | |
} else { | |
// echo "This user had access - we're not giving it to them again<br/>"; | |
} | |
} | |
update_post_meta( $course_id, 'pmpro_ld_enrolled', true ); | |
} | |
add_action( 'save_post_sfwd-courses', 'mypmpro_enroll_on_new_course', 10, 3 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment