Hacktoberfest: LifterLMS Contributor Month

During the month of October, we’ll be celebrating open source software alongside millions of contributors by launching our first ever Hacktoberfest event: LifterLMS Contributor Month.

Hacktoberfest is a month-long celebration of open source software hosted by DigitalOcean, GitHub, and Twilio.

LifterLMS will be participating in Hacktoberfest as a maintainer and we’ll be encouraging anyone from the LifterLMS community to submit pull requests to the LifterLMS core.

Why Contribute

Contributing to open source projects is a great way to learn, practice your skills, meet new people, have your voice heard within a community, and build a public reputation you can take with you outside the project.

Who can Contribute

Anyone with a GitHub account can submit a pull request. If you don’t have one, you can sign up for free.

You don’t have to be a developer or coder to contribute. LifterLMS will accept contributions from QA testers, user experience and interface designers, documenters, and more! If you’re interested in participating but you don’t know how you can get in touch us with us and we’ll be happy to get you pointed in the right direction based on your unique set of skills and talents.

How to Contribute

Whether you’re a designer, developer, or want to help with documentation we have a task for you!

If you’re looking to write or improve new code, tests, or documentation head over to our the LifterLMS GitHub repo and start looking through our existing issues. We’ve created a special Hacktoberfest tag with issues we feel would be ideal for first-time or new contributors to tackle during this event. You can view all these issues here. You could also check out our good first time contributor issues here.

If you plan to work on an issue please comment and let us know as much. This will help prevent collisions or duplicate efforts with other contributors.

Please review our contributor’s guidelines and ensure you’re adhering to our coding standards and that all new code is well documented!

You may also want to familiarize yourself with how to write and submit pull requests, DigitalOcean has a great guide you can review here.

Rewards for Contributions

In addition to the satisfaction inherent in contributing to an open source project, we’ll be awarding prizes to anyone who contributes to LifterLMS during the month of October.

Tier 1
Requirements: Submit one pull request
Prize: An exclusive LifterLMS / Hacktoberfest sticker pack

Tier 2
Requirements: Submit three pull requests
Prize: An exclusive LifterLMS / Hacktoberfest T-Shirt as well as Tier 1 prizes

Tier 3
Requirements: Submit five pull requests
Prize: Receive a super-secret prize as well as the Tier 1 & Tier 2 Prizes

Office Hours, Webinars, and Resources for Contributors

On October 1, join us for our kick off webinar, “Contributing to LifterLMS: A guide to open source projects for new contributors.” This webinar, hosted by Thomas Patrick Levy our technical co-founder and lead developer, will outline how to get started as a new contributor. If you have any questions you can bring them to the Q&A section of the webinar. This webinar will be available as a replay if you miss the live session! Register here if you’re interested in attending.

Join us on October 2 for our monthly bug scrub meeting. If you’re interested in working on some bugs this is a great time for you to interact with the core team and pick up some tasks to get working on!

During the month of October we’ll have daily office hours in our #developers Slack channels. Head in there and post your questions while we’re live. If you miss us, leave your question in the channel and we’ll answer it the next time we open office hours. Not a member of our Slack community? Join up now (it’s free!).

Check out our contributor’s calendar for more details on these events.

Ready to Contribute?

If you’re ready to get started leave your email below. We’ll be sending out some resources and reminders about the event throughout the month of October.

LifterLMS Version 3.24.3

Updates
  • Added user email, login, url, nicename, display name, first name, and last name as fields searched when searching orders. Thanks Thanks @yojance!
Bug Fixes
  • Fixed issue causing fatal errors encountered during certificate downloading caused by CSS <link> tags existing outside of the <head> element.
  • Certificates downloaded by users who can see the WP Admin Bar will no longer show the admin bar on the downloaded certificate
  • Fixed issue on iOS Safari causing multiple choice quiz questions to require a “long press” to be properly selected
  • Fixed issue causing access plan sales to end 36m and 1s prior to end of the day on the desired sale end date. Thanks @eri-trabiccolo!
  • Ensure that fallback url slugs for course & membership archives are translateable.

LifterLMS Version 3.24.1

Updates
  • The shortcode [lifterlms_hide_content] now accepts multiple IDs and can specify whether the user must belong to either all or any one of the specified memberships. Thanks @yojance!
  • The action llms_voucher_used, called when a voucher code is used, will now pass the voucher code as a 3rd parameter. Thanks @yojance!
Bug Fixes
  • Fixed a typo in engagement drop creation dropdown. Thanks README1ST!
  • Fixed issue causing backslash characters (\) to be removed from course elements (sections, lessons, quizzes, and assignments) constructed in the course builder.
  • Fixed an issue in the 3.16.0 database migration script that would cause migrations to get stuck as a result of malformed data saved in an invalid format.
  • Added processing handlers to payment confirmation form. Fixes an issue which would allow multiple payment confirmation requests to be made (if the form was submitted multiple times before the page reloaded) resulting in duplicate charges.
Templates Changed
  • templates/checkout/form-confirm-payment.php

LifterLMS Advanced Quizzes Version 1.0.8

  • Added admin email notification triggered when a quiz is submitted that requires manual grading
  • Quizzes main reporting screen now shows the number of attempts pending review in the “Awaiting Review” column
  • Quizzes main reporting screen will now embolden any quiz which has at least 1 quiz attempt pending review
  • Quizz attempts reporting screens will now embolden any attempt which is pending review
  • Fixed a few areas where the incorrect textdomain was being used

LifterLMS Assignments Version 1.0.0-beta.6

Minimum Required LifterLMS Version Has Changed
  • The minimum required LifterLMS core version in now 3.24.0 Please upgrade LifterLMS to the latest version to continue using LifterLMS Assignments
Grading
  • Assignment grades will now contribute to the grade of a lesson
  • If no quiz is present, the lesson grade will equal the grade of the lesson
  • If both a quiz and assignment are present on a lesson, the lesson grade will be determined by a combination of the quiz and assignment grades
  • The default weight of quizzes and assignments are 1:1, by defining custom weights for the quiz and assignment it is now possible to weight a quiz or assignment more heavily (or make one not count at all by defining a weight of 0)
  • The grade of the lesson is calculated by the following formula: ( quiz_grade x quiz_weight ) + ( assignment_grade x assignment_weigth ) / ( quiz_weight + assignment_weigth ). If the total weight is 0, the lesson grade will be null which results in the lesson not counting towards the overall grade of the course.
  • Existing course and lesson grades will automatically be updated after a database migration. Existing quizzes and assignments will all be set with a default weight of 1 point.
Notifications
  • Customizable email notifications are now available
  • Assignment Graded: an email sent to the student when their assignment has been manually graded by an instructor
  • Assignment Submitted: an email sent to the instructor when an assignment has been submitted by a student
Updates and Enhancements
  • Added assignment information on the “My Grades” area of the student dashboard
  • Added assignment information to the student course reporting table
  • Added submission review url getter method to submission model
  • Added Links between courses and assignments on reporting screens
  • Assignment submission data will now be included in personal data exports
  • Assignment submission data will now be deleted from the database during personal data erasure requests (only if “Remove Student LMS Data” is enabled in account settings)
Bug fixes
  • When a lesson is a deleted any associated lessons will also be deleted
  • When an assignment is graded the action llms_assignment_submitted is no longer called and llms_assignment_graded is now called instead. llms_assignment_submitted is reserved for student submission only.
  • Fixed issue with mimetype validation for upload assignments
Templates Changed
  • templates/assignment/content-upload.php
  • templates/assignment/results.php
  • templates/assignment/lesson/take-assignment-button.php

LifterLMS Version 3.24.0

“My Grades” Student Dashboard Endpoint
  • A new student dashboard endpoint, “My Grades”, has been added
  • The main screen displays a paginated and sortable list of all courses a student is enrolled in and outputs their progress and grade in the courses
  • Students can drill into individual reporting screens for each course where specific details for each course are available for review
Grading Enhancements
  • Each lesson can now be assigned an individual “points” value
  • When a course is graded the points assigned to each lesson will be used to calculate the value of the lesson’s grade within the overall course grade
  • Lessons can also be assigned a value of “0” to allow a lesson to not count towards the overall grade of the course.
  • Email notifications are now sent to a student when an instructor reviews, grades, or leaves remarks on a quiz attempt.
Test Email Notifications
  • An interface and API for sending test email notifications has been added, the following notifications can now be tested:
    • Purchase Receipt
    • Quizzes: Failed (Thanks @philwp!)
    • Quizzes: Graded
    • Quizzes: Passed (Thanks @philwp!)
Updates and Enhancements
  • Quiz Passed & Quiz Failed notifications have new names on the admin panel (“Quizzes: Quiz Passed” & “Quizzes: Quiz Failed”)
  • The default content for Quiz Passed and Quiz Failed notifications have been enhanced. If you’ve modified these you can delete your modified content to have your notifications “restored” to the improved defaults.
  • Change the page title of the Student Dashboard page installed via the Setup Wizard to be “Dashboard” instead of “My Courses.” Thanks @philwp!
  • In the course builder when a lesson is duplicated, the attached quiz will be duplicated as well
  • Minor increase to performance in the LLMS_Course->get_lessons() method
  • Added student_id as a parameter passed to the llms_student_get_progress filter
  • Updated all access plan templates added in 3.23.0 to ensure ABSPATH is defined to prevent direct template access
  • Remove use of deprecated LLMS_Lesson->get_children_lessons() in the LLMS_Course and LLMS_Lesson models as well as in the course/syllabus.php template
  • Refactored the LLMS_Section->get_percent_complete() method to utilize methods from the LLMS_Student model
  • Added the ability for admin table classes to define <tr> element CSS classes
  • Admin settings pages with no settings to save (like the Notifications list) no longer display a “Save” button
  • Added actions when creating, updating, and deleting records managed by LLMS_Abstract_Database_Store classes
  • Updated system report to include URLs to settings with URLs, adds a small speed boost to support request turn around time.
Please Rate & Review LifterLMS on WordPress.org
  • Added a WordPress.org review request link to the footer of LifterLMS admin pages.
  • Added a WordPress.org review request notice which displays a week after installation if the site has 50+ active students.
Bug fixes
  • Fixed issue causing HTML entity codes to display in email subject lines. Thanks @philwp!
  • Fixed issue causing post cleanup functions to run queries against unsupported post types.
  • Fixed typos in a handful of i18n functions so that the proper textdomain is now being used
  • Removed get_option() call to unused option lifterlms_logout_endpoint which ran on WordPress initialization unnecessarily.
  • Removed 3.21.0 fixes for iOS touch issues that are now causing iOS touch issues on quizzes.
  • When an order is deleted, all order transactions will also be deleted. This does not happen until the order is deleted (transactions will remain while the order is in the trash)
  • Fixed an issue causing duplicated quizzes to initially show images for question images & image choices (reorder pictures & picture choice) but the image data would not be properly saved so when returning to the builder or viewing a quiz on the frontend the images would be lost
Deprecated Functions & Methods
  • Deprecated LLMS_Section->get_children_lessons(), use LLMS_Section->get_lessons( 'posts' ) instead
Template Updates