我是PHP的新手,我正在尝试修改基于Wordpress的学习管理主题(在ThemeForest上称为Academy),以便能够确定用户所在的当前课程中的哪一课。
换句话说,我想检查用户已完成哪些课程,只获取课程层次结构中尚未完成的第一课的ID。
以下是我所知道的一切:
在单个帖子的循环中(在本例中为“课程”),这就是我获取当前课程数组的方法:
<?php $lessons_array = ThemexCourse::sortLessons(ThemexCourse::$data['course']['lessons']); ?>
这会产生这个嵌套数组:
Array ( [0] => WP_Post Object ([ID] => 117 [menu_order]=>1) [1] => WP_Post Object ([ID] => 124 [menu_order]=>2) [2] => WP_Post Object ([ID] => 156 [menu_order]=>3))
我已经截断了一点,因为两个值[ID]和[menu_order]是最重要的:它们会告诉你每节课的ID及其在课程中的层次结构。
但这就是我陷入困境的地方:我不想获得所有课程ID,只是用户尚未完成的课程。
为了检查用户是否完成了课程,我一直在使用它:
<?php if(ThemexCourse::isCompletedLesson($lesson_ID)) { echo 'Completed'; } ?>
因此,使用上述信息,是否可以仅返回下一个不完整课程的单个ID?
感谢任何人提前帮助您!
答案 0 :(得分:0)
我认为应该这样做:
$next_lesson = NULL;
foreach($lessons_array as $index=>$lesson) {
if(!ThemexCourse::isCompletedLesson($lesson->ID)) {
$next_lesson = $lesson;
break;
}
}
echo "Next lesson is: " . $next_lesson->ID;