问题描述
我正在寻找一种方法,以根据前提课程中所有测验的用户结果来解锁LearnDash课程。
我已经购买了本来可以完成这项工作的LearnDash Adaptive Learning Pro插件,但是它不能与最新版本的LearnDash 3.2.3.5一起使用,并且我的项目接近截止日期。
因此,我开始研究如何创建一个自定义函数,该函数可以获取用户的总体评分并将他注册到设置为“已关闭”的下一门课程中。
我发现一个旧线程auto-enrolling WP Roles in a Learndash course无法正常工作,但仅通过用$ blogusers替换$ users来设法解决了这个问题。
// Enrolling user role into courses
$blogusers = get_users( [ 'role__in' => [ 'subscriber'] ] );
foreach ( $blogusers as $user ) {
ld_update_course_access( $user->ID,5883,false );
ld_update_course_access( $user->ID,7521,6108,false );
}
现在,我需要一个函数来获取用户对一门课程的“累积分数”(该分数是该课程中所有测验的平均值),并比较该分数是否大于“ 70”,例如,以使用户注册其他课程。
有可能吗?
谢谢
解决方法
最后,我现在设法弄清楚了这件事。简码有点me脚,但对我来说很完美。 我在这里发布该解决方案,供正在互联网上搜索类似情况的任何人使用。
$user = get_current_user_id();
$score_module01 = do_shortcode( "[courseinfo show=\"cumulative_percentage\" course_id=\"1383\"]" );
// Set needed score for Module 01
$needed_score = 70;
if ( "$score_module01" >= "$needed_score" ) {
// Enroll user into courses after Module 01
ld_update_course_access( $user,5883,false );
ld_update_course_access( $user,7521,false );
}