Fix Course Teacher going out of sync with Course Lessons#7839
Open
markcummins wants to merge 3 commits into
Open
Fix Course Teacher going out of sync with Course Lessons#7839markcummins wants to merge 3 commits into
markcummins wants to merge 3 commits into
Conversation
Contributor
Author
|
Hi, This is an updated version of the original commit I made here: Apologies for opening a new PR but it was some time since I made the original PR. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR aims to prevent “Course Teacher” (course author) and lesson authors from drifting out of sync by automatically updating a lesson’s post_author when its _lesson_course association changes, ensuring the assigned course teacher can edit all lessons in the course.
Changes:
- Hooks into postmeta updates to detect
_lesson_coursechanges and sync the lesson author to the course author. - Adds a
sync_lesson_teacher()handler that updates the lessonpost_authorwhen it differs from the course author. - Adds a patch-level changelog entry documenting the fix.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
includes/class-sensei-teacher.php |
Adds a postmeta hook + handler to sync lesson authorship to the associated course author. |
changelog/fix-sync-lesson-author-on-postmeta-update |
Documents the fix as a patch “fixed” entry. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+110
to
+111
| // update lesson owner to course teacher when a lesson is updated. | ||
| add_action( 'updated_postmeta', array( $this, 'sync_lesson_teacher' ), 10, 4 ); |
Comment on lines
+986
to
+988
| /** | ||
| * When the _lesson_course meta is updated, make sure the lesson author is the same as the course author | ||
| * |
Comment on lines
+994
to
+1002
| public function sync_lesson_teacher( $meta_id, $object_id, $meta_key, $meta_value ) { | ||
| if ( '_lesson_course' !== $meta_key ) { | ||
| return; | ||
| } | ||
|
|
||
| // Check that the $object id is a Lesson ID. | ||
| if ( 'lesson' !== get_post_type( $object_id ) ) { | ||
| return; | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #7599
Proposed Changes
This code syncs the Lesson Author and the Course Author (or Course Teacher). It ensures that the lesson author is the same as the course author, and makes sure that the current Course Teacher is able to access and edit all of the lessons in the course.
Testing Instructions
Create a New Course and Lessons (e.g. Lesson A and Lesson B)
Set the Course Teacher to be another User
Add another Lesson and assign it to the Course (e.g. Lesson C)
Log in as the Course Teacher
Before the update, the course teacher would not be able to edit Lesson C, as they would not be the Author of the lesson. After the update, they would be able to edit all the lessons in the course.
Pre-Merge Checklist