NOTE (wplms v 2.3+) : Tip no longer required. Enable Setting : WP Admin – LMS – Settings – Assign Free courses to students on account activation
1. Go to WP Admin -> Plugins -> Editor -> WPLMS Customizer -> wplms-Customizer.php
2. Add following code in at the bottom of the file:
PHP Code:
add_action('bp_core_activated_user','wplms_activate_free_courses',99); // Runs when user activates his account. add_action('user_register','wplms_activate_free_courses',99,1);
function wplms_activate_free_courses($user_id = NULL){ if(empty($user_id)){ if(!is_user_logged_in()) return; $user_id = get_current_user_id(); } if ( bp_account_was_activated() ){ // Checks if the Account was activated $args = array( 'post_type' => 'course', 'post_per_page' => -1, 'meta_query'=>array( array( 'key' => 'vibe_course_free', 'value' => 'S', 'compare' => '=', 'type' => 'CHAR' ) ) ); $free_courses = new WP_Query($args); if($free_courses->have_posts()){ while($free_courses->have_posts()){ the_post(); $course_id = get_the_ID(); bp_course_add_user_to_course($user_id,$course_id); } } wp_reset_postdata(); } }
For custom courses:
function wplms_activate_free_courses(){ if(!is_user_logged_in()) return; $user_id = get_current_user_id(); $course_ids = array(15,68,78); //Array of course ids you want user to get access to on account creation. foreach($course_ids as $course_id) bp_course_add_user_to_course($user_id,$course_id); }