LifterLMS and Hacktoberfest

Hacktoberfest and the Second Annual LifterLMS Contributor Month

During the month of October, LifterLMS will be celebrating open source with our second annual Hacktoberfest event: LifterLMS Contributor Month.

Hacktoberfest is a month-long open source community event organized by DigitalOcean and Dev.

LifterLMS will be participating in Hacktoberfest as a project maintainer. We encourage anyone to submit pull requests to any of the LifterLMS codebases found on GitHub.

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, want to help with documentation, or something else entirely 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’re using the special hacktoberfest tag for 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. 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 and documentation standards before submitting a PR!

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

Finally, make sure you sign up for the official Hacktoberfest event so your eligible to win an official limited edition event shirt.

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.

Submit at least one pull request and win a LifterLMS Contributor Month sticker package.

Submit three or more pull requests and get the sticker pack and a LifterLMS t-shirt, baseball cap, or mug (your choice).

Additionally, every accepted pull request will provide you with an entry into a drawing for a free LifterLMS add-on license of your choice valued up to $199.00.

All pull requests will be reviewed by the LifterLMS team by November 30, 2019. Only accepted pull requests count towards your contribution count.

Resources for Contributors

During the month of October we have several events to help support anyone looking to contribute:

October 1, 2019: Monthly Bug Scrub

Our monthly bug scrub is an open public meeting held on Zoom with notes recorded in Slack on the #developers channel.

Check out our contributor’s calendar for specifics in your timezone.

October 2, 2019: LifterLMS Contributor Month Kickoff Webinar

Join Thomas Patrick Levy, our technical co-founder and lead developer, for “Contributing to LifterLMS: A guide to open source projects for new contributors.”

The webinar 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.

Office Hours

In addition to our weekly Wednesday Developer Office Hours held in Slack in the #developers channel, we’ll also be hosting short dev chats on Mondays and Fridays.

These informal chats are a great opportunity to interact with LifterLMS core developers and other contributors.

If you have any questions about any contributions you want to make, if you’re just getting started, or if you want to just say hello and keep Thomas company, these dev chats are for you (and you don’t have to be a developer to join).

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

LifterLMS REST API Version 1.0.0-beta.7

Updates
  • Added the following properties to the lesson schema and response object: drip_date, drip_days, drip_method, public, quiz.
  • Added the following links to lesson objects: prerequisite and quiz.
  • Use WP_Error::$errors in place of WP_Error::has_errors() to support WordPress version prior to 5.1.
  • Added llms_rest_lesson_item_schema, llms_rest_pre_insert_lesson, llms_rest_prepare_lesson_object_response, llms_rest_lesson_links filter hooks.
  • Course properties access_opens_date, access_closes_date, enrollment_opens_date, enrollment_closes_date are now nullable.
  • Course properties prerequisite and prerequisite_track can be be cleared (set to 0 to signify no prerequisite exists).
  • Added prerequisite validation for courses, if prerequisite is not a valid course the course prerequisite will be set to 0 and if prerequisite_track is not a valid course track, the course prerequisite_track will be set to 0.
Bug Fixes
  • Fixed lesson siblings link that was using the parent course’s id instead of the parent section’s id.
  • Fixed lesson parent link href, replacing ‘section’ with ‘sections’.
  • Fixed lesson progression callback name when defining the filters to be removed while preparing the item for response.
  • Fixed description of the post_id path parameter for student enrollments resources. Thanks @pondermatic.
  • Fixed section parent course object retrieval method when building the resource links.

LifterLMS Version 3.36.1

Updates
  • Include SendWP Connector in LifterLMS Engagement Settings.
  • Removed usage of WP_Error::has_errors() to support WordPress version prior to 5.1.
  • Improve performances when checking if an event is valid in LLMS_Events->is_event_valid().
  • Remove redundant check on is_singular() and is_post_type_archive() in LLMS_Events->should_track_client_events().
Bugfixes
  • Fixed a compatibility issue with FitVids.js causing excess white space displayed around videos when using the library, WP plugin, or themes that utilize the library.
  • Fixed an issue allowing recurring charges to continue processing after the order or customer had been deleted from the site.
  • Fixed issue causing Membership Restriction settings from properly saving.
  • Fixed issue that allowed instructors to see all quizzes on a site when the instructor had either no courses or only empty courses (courses with no lessons).
  • Fixed “Last Seen” column displaying wrong date when the student last login date was saved as timestamp.
  • Fixed an issue causing popover notifications to be skipped (never displayed) as a result of redirects.

LifterLMS Advanced Videos Version 1.0.0-beta.2

Updates
  • Add Wistia Support.
  • Optimized embed output checking.
  • Automatically add autoplay permissions on iframes for supported providers.
Bug Fixes
  • Settings return their proper (opposite) values when modifying an embed URL.
  • Resolved an issue with Divi (and possibly other themes) that have custom embed wrappers for Videos.
  • Fixed language for Vimeo Playback Control setting.
  • Fixed issue causing some settings to not save properly.
  • Fixed syntax error when checking for async loading of the Vimeo player SDK.
  • Fixed issue causing the Vimeo player SDK to be excluded from release distributions.
  • Fixed filter for get_player_theme_color which had the wrong provider.
  • Fixed issue causing elapsed time (in hh:mm:ss) to be incorrectly reported on slim controls player.

LifterLMS Version 3.36.0

User Interaction event and session Tracking
  • Added user interaction tracking for the following events:

  • User sign in and out.

  • Page load and exit (for LMS content)

  • Page focus and blur (for LMS content)

  • And more to come

  • Interaction events are grouped into sessions automatically. A session is “closed” after 30 minutes of inactivity or a log-out event.

  • Added “Last Seen” student reporting column which reports the last recorded activity for the student.

Enhancements
  • Automatically hydrate when calling LLMSAbstractDatabaseStore::toarray().
  • Added CSS to make course and lesson video embeds automatically responsive.
Bug Fixes
  • Correctly pass the $remember variable when using llms_set_person_auth_cookie().
  • Fixed undefined index error when retrieving an unset value from an unsaved database model.
  • Fix issue causing quotes to be encoded in shortcodes used in course and membership restriction message settings fields.
  • Fix issue preventing manual updates of order dates (next payment, trial expiration, and access expiration) from being saved properly.

LifterLMS Version 3.35.2

  • When sanitizing settings, don’t strip tags on editor and textarea fields that allow HTML.
  • Added JS filter llms_lesson_rerender_change_events to lesson editor view re-render change events.

LifterLMS Stripe Version 5.0.0

Updates
  • Updated to support PSD2 (SCA). For more details on what this means see Stripe’s article at https://stripe.com/guides/strong-customer-authentication.
  • LifterLMS version 3.29.0 or later is now required.
  • Updated Stripe API Version to 2019-08-14.
  • Added a purchase-aware dynamic statement descriptor for each charge.
  • Added automatic installation of Stripe Webhooks from admin settings screen.
  • Added webhook receipt endpoints for receiving updates from Stripe when asynchronous payments fail and charges are refunded.
  • Added minimum transaction checks for the following currencies: BRL, INR, MYR, & NZD.
  • Added UGX as a supported zero-decimal currency.
  • Database installation script no longer installs tables from version 2.x and 3.x.
Bug fixes
  • Fixed typo in filter llms_stripe_get_card_desrcription, use llms_stripe_get_card_description.
Deprecations
  • Removed class constant LLMS_Stripe_API::API_VERSION, use LLMS_STRIPE_API_VERSION instead.
  • Removed method LLMS_Payment_Gateway_Stripe::get_stripe_amount() use llms_stripe_get_amount() instead.
  • Removed method LLMS_Payment_Gateway_Stripe::get_transaction_minimum() use llms_stripe_get_transaction_minimum() instead.
  • Removed method LLMS_Payment_Gateway_Stripe::get_card_desrcription() use llms_stripe_get_card_description() instead.
  • Removed method LLMS_Payment_Gateway_Stripe::charge()
  • Removed class LLMS_Stripe_Crons
  • Renamed file includes/class-llms-gateway-stripe.php to includes/class-llms-payment-gateway-stripe.php