1

我正在寻找一种方法来根据用户在先修课程中所有测验的结果来解锁 LearnDash 课程。

我已经购买了应该可以完成这项工作的 LearnDash Adaptive Learning Pro 插件,但它不适用于最新版本的 LearnDash 3.2.3.5,而且我的项目即将截止。

因此,我开始研究如何创建一个自定义函数,该函数可以获得用户的总分,并将他注册到设置为已关闭的下一门课程中。

我在 Learndash 课程中发现了一个自动注册 WP Roles的旧线程,该线程无法正常工作,但只需将 $users 替换为 $blogusers 即可修复。

// 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, false );
    ld_update_course_access( $user->ID, 6108, false );
}

现在,我需要一个函数来获取用户的课程“累积分数”(这是课程中所有测验的平均值),并比较它是否大于“70”,例如将用户注册到其他课程。

可能吗?

谢谢

4

1 回答 1

1

最后,我现在设法弄清楚了这件事。简码有点蹩脚,但对我来说很完美。我在这里为任何在互联网上搜索类似案例的人发布解决方案。

$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 );
}
于 2020-10-22T20:38:40.087 回答