通过另一门课程后,是否可以将用户自动注册为LearnDash课程?

问题描述

我正在寻找一种方法,以根据前提课程中所有测验的用户结果来解锁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 );
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...