0

我是 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,只是用户尚未完成的课程 ID。

为了检查用户是否完成了课程,我一直在使用这个:

<?php if(ThemexCourse::isCompletedLesson($lesson_ID)) { echo 'Completed'; } ?>

那么使用上述信息,是否可以只返回下一个未完成课程的单个 ID?

提前感谢任何人的帮助!

4

1 回答 1

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;
于 2013-08-13T08:00:49.870 回答