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 Assignments Version 1.0.0-beta.5

Reporting Improvements
  • Added a column to the main assignments reporting screen to display the number of ungraded submissions for each assignment
  • On the main assignments screen the total number of submissions is now a link to the submission list for that assignment
  • On assignment submission lists it’s now possible to filter assignments by status. This will make it easy to see all assignments which you need to grade on a single screen
  • Both assignment and submission lists will now highlight (in bold) any assignment / submission which is awaiting review / requires a grade.
Bug Fixes
  • Assignment uploads will now display their original filenames when uploaded and downloaded
  • Fixed issue causing fatal errors encountered when a quiz is passed on a lesson which has both a quiz and assignment and the assignment is currently imcomplete.

LifterLMS WooCommerce Version 2.0.0-beta.1

Access Plans Instead of Related Products
  • Instead of relating courses & membership to products you can now relate Access Plans to Products (and product variations!)
  • Course & Membership pricing tables will now look like native LifterLMS pricing tables except information will be pulled from the product
  • It is now possible to create one-time payment products which EXPIRE by utilizing access plan expiration functionality!
  • You can use FREE access plans which will move students through the native “Free Enrollment” checkout process provided by the LifterLMS Core instead of having to create a $0.00 product. It is additionally possible to link an access plan to a $0.00 product if you prefer that user experience.
  • All the above is additionally possible with subscription products (and subscription variations) when using WooCommerce Subscriptions
Members Only Product Restrictions
  • Members Only product functionality has been reworked and extended to product variations
  • Each product (subscription) variation can have it’s own membership restriction. Simple products retain preexisting functionality.
  • Added the ability to customize the language for the “Members Only” button displayed when the visitor/user doesn’t meet the product restriction requirements. Each product/variation can be customized to be unique or use the sitewide default “Members Only”
Updates and enhancements
  • Added course & membership association metadata lists to help users navigate from a product to it’s related course(s) and/or membership(s)
  • Added plugin integration description to the integration settings screen
  • Added plugin dependency helper message to display when WooCommerce itself is not available
  • Added helper messages to show information related to WooCommerce Subscriptions features when the extension isn’t available
  • Added a documentation link on the settings screen to help new users learn how to create orders for courses and membership automatically complete
  • Added an information message when viewing LifterLMS Checkout & Gateway settings on the admin panel to help orient users to the related WooCommerce settings panels which should be used when using this integration.
  • Slightly improved course & membership page load performance by removing stylesheets used to build WooCommerce-powered pricing tables
  • Moved methods related to WC order item meta to their own class for improved code clarity
Bug fixes
  • Fixed an issue causing incomplete orders to display enrollment status as “Cancelled”. This status was displaying due to enrollment not yet taking place. The correct status is now “None” when an order has not yet completed to trigger related enrollments.
  • Fixes an issue causing account endpoint defaults to not display when first enabling the integration
Removed Functions & Methods
  • llms_wc_output_pricing_table() has no replacement
  • llms_product_get_wc_product_ids() has no replacement
  • LLMS_Integration_WooCommerce->order_status_actions() replaced with LLMS_WC_Order_Actions->add_status_actions()
  • LLMS_Integration_WooCommerce->do_order_enrollments() replaced with LLMS_WC_Order_Actions->do_order_enrollments()
  • LLMS_Integration_WooCommerce->do_order_unenrollments() replaced with LLMS_WC_Order_Actions->do_order_unenrollments()
  • LLMS_Integration_WooCommerce->before_wc_product() replaced with LLMS_WC_Availability_Buttons->before_product()
  • LLMS_Integration_WooCommerce->save_wc_product_fields() replaced with LLMS_WC_Product_Meta->save()
  • LLMS_Integration_WooCommerce->add_wc_product_fields() replaced with LLMS_WC_Product_Meta->add_advanced_fields()
  • LLMS_Integration_WooCommerce->output_item_meta() replaced with LLMS_WC_Order_Item_Meta->output()
  • LLMS_Integration_WooCommerce->save_order_enrollments() replaced with LLMS_WC_Order_Item_Meta->save()
  • LLMS_Integration_WooCommerce->output_endpoint_courses() replaced with LLMS_Integration_WooCommerce->output_endpoint_view_courses()
  • LLMS_Integration_WooCommerce->output_endpoint_memberships() replaced with LLMS_Integration_WooCommerce->output_endpoint_view_memberships()
  • LLMS_Integration_WooCommerce->output_endpoint_certificates() replaced with LLMS_Integration_WooCommerce->output_endpoint_view_certificates()
  • LLMS_Integration_WooCommerce->output_endpoint_vouchers() replaced with LLMS_Integration_WooCommerce->output_endpoint_redeem_vouchers()

LifterLMS Helper Version 3.0.2

  • Fixed fatal errors encountered as a result of failed API calls
  • Fixed broken links output on the plugins update screen when an add-on is unlicensed and has an update available
  • Fixed issue causing non-beta versions of the LifterLMS core to be served from LifterLMS.com instead of from WordPress.org

LifterLMS Version 3.23.0

Access Plan & Pricing Table Template Improvements
  • The pricing table template has been split into multiple templates which are now rendered via action hooks. No visual changes have been made but if you’ve customized the template using a template override you’ll want to review the template changes before updating!
  • New action hooks are available to modify the rendering of access plans in course / membership pricing tables.
    • llms_access_plan: Main hook for outputting an entire access plan within the pricing table
    • llms_before_access_plan: Called before main content of access plan. Outputs the “Featured” area of plans
    • llms_acces_plan_content: Main access plan content. Outputs title, pricing info, restrictions, and description
    • llms_acces_plan_footer: Called after main content. Outputs trial info and the checkout / enrollment button
  • Added filters to the returns of many of the functions in the LLMS_Acces_Plan model.

  • Minor improvements made to LLMS_Access_Plan model
Updates and Enhancements
  • Improved handling of empty blank / empty data when adding instructors to courses and memberships
  • Added filters to the “Sales Page Content” type options & functions for courses and memberships to allow 3rd parties to define their own type of sales page functionality
  • Added filters to the saving of access plan data
  • Improved the HTML and added CSS classes to the access plan admin panel html view
Bug Fixes
  • Fixes issue causing the “Preview Changes” button on courses to lock the “Update” publishing button which prevents changes from being properly saved.gi
  • Fixed issue causing PHP errors when viewing courses / memberships on the admin panel when an instructor user was deleted
  • Fixed issue causing PHP notices when viewing course / membership post lists on the admin panel when an instructor user was deleted
  • Fixed issue causing PHP warnings to be generated when viewing the user add / edit screen on the admin panel
  • Fixed an issue which would cause access plans to never be available to users. This bug didn’t affect any existing installations except if you wrote custom code that called the LLMS_Access_Plan::is_available_to_user() method.
Template Updates

LifterLMS MailChimp Version 3.1.0

  • Adds a “Default Group” option to add interest groups to users during registration
  • Adds a new option when using WooCommerce which will add consenting users to lists and groups during account registration, checkout, and enrollment into courses and memberships through connected products
  • Added filters to allow disabling student consent requirements. Use add_filter( 'llms_mc_enable_consent', '__return_false' ); to completely disable consent.