Releases: gocodebox/lifterlms
Version 2.3.0-2 PreRelease
= v2.3.0-2 - 2016/03/22 =
Engagements Refactoring (lots of bugfixes, performance improvements, more hook & filter friendly)
- We've completely rewritten the LifterLMS Engagement Handler methods (
class LLMS_Engagements
) and added some new engagement actions. - The rewrite unifies engagement handling into one function that can be easily hooked into by plugin and theme developers.
- We've moved any engagment related data out of the main
LifterLMS
class - Fixed the broken engagement delay functionality which now runs of
wp_schedule_single_event
. This makes the function more reliable and also keeps it within the traditional WordPress architecture. - Added an additional check before sending emails or triggering any engagments that will prevent the achievement from being awarded or the email from being sent if the post is in not published. This fixes an issue that caused emails in the trash from still being emailed.
- Removed the unused
LLMS_Engagements
class and file - Added two new engagment trigger events "Membership Purchased" and "Course Purchased"
- Deprecated actions -- Removes some redundancy because the triggering actions (
lifterlms_course_completed
triggered the notification action, insteadlifterlms_course_completed
simply triggers the engagement now).lifterlms_lesson_completed_notification
lifterlms_section_completed_notification
lifterlms_course_completed_notification
lifterlms_course_track_completed_notification
lifterlms_course_completed_notification
lifterlms_user_purchased_product_notification
lifterlms_created_person_notification
Bug and Issue fixes
- Fixed a CSS issue that caused some weirdness on the course archive page on mobile devices
- Fixed an issue with automated membership expirations
- Fixed a function that should have been called statically in
LLMS_Ajax
class - Fixed a ton of issues related to the triggering of engagements and cleaned up a lot of classes and functions associated with them.
- Properly instatiate
LifterLMS
singleton via LLMS() function and prevent direct instantiation of the class vianew LifterLMS()
. - Removed the deprecated 'class.llms.email.person.new.php' file as it was rendered useless a long time ago and caused some duplicate emails.
Version 2.2.3
= v2.2.3 - 2016/03/15 =
Translations
- Added translation functions around quite a few untranslated strings. Thanks to the team at Netzstrategen
- Added German translation .mo and .po files again thanks to the team at Netzstrategen
Student Enrollment Functions
We've refactored a bit of our code related to how to programmatically enroll a student in a course or membership during registration and purchase.
A new class LLMS_Student
makes working with a LifterLMS student (user) a bit easier. We'll begin exposing user meta data through this class as we continue to improve the usability of the codebase for other developers.
We've also created a simple enrollment function llms_enroll_student()
which enables programmatic enrollment to LifterLMS courses or memberships. This was previously handled in a pretty schizophrenic manner and this unifies various ways of enrollment into one clean function. All enrollment moving forward will use this functions.
The enrollment function calls a new action as well as calling existing enrollment-related actions:
before_llms_user_enrollment
- called immediately prior to begining the user enrollment functionllms_user_enrolled_in_course
(previously existing)llms_user_added_to_membership_level
(previously existing)
This also addresses an issue that prevented the llms_user_enrolled_in_course
action from being called when a user was auto-enrolled in a course because they joined a membership level that included auto-enrollment in one or more courses.
Bug and Issue fixes
- Fixed an inconsistency in the way membership IDs were being saved to the postmeta table that would cause courses to not appear restricted on the Membership Enrollment tab, even though they were actually restricted and functioning correctly.
- New lines are now preserved in the quiz question clarification text areas, thanks to @atimmer
- Escape HTML in the quiz question description fields on the admin panel to allow outputting html without rendering it, thanks @atimmer
- Fixed an issue related to the outputting of restricted course and membership content which caused errors on certain themes
- added a clearfix to the
.llms-lesson-preview
element on the course syllabus template - Removed the
class.llms.person.handler.php
file as it wasn't actually being used by anything anywhere and contained no functions - Removed some unused and depreacted class functions from the LLMS Student Metabox class
- Fixed an undefined javascript error resulting from code cleanup in 2.2.2. This issue prevented Vouchers from being published. The code has been further cleaned.
Version 2.2.3 Prerelease 1
= v2.2.3-1 - 2016/03/15 =
Translations
- Added translation functions around quite a few untranslated strings. Thanks to the team at Netzstrategen
- Added German translation .mo and .po files again thanks to the team at Netzstrategen
Student Enrollment Functions
We've refactored a bit of our code related to how to programmatically enroll a student in a course or membership during registration and purchase.
A new class LLMS_Student
makes working with a LifterLMS student (user) a bit easier. We'll begin exposing user meta data through this class as we continue to improve the usability of the codebase for other developers.
We've also created a simple enrollment function llms_enroll_student()
(see TKTKTKTTK for usage documentation) which enables programmatic enrollment to LifterLMS courses or memberships. This was previously handled in a pretty schizophrenic manner and this unifies various ways of enrollment into one clean function. All enrollment moving forward will use this functions.
The enrollment function calls a new action as well as calling existing enrollment-related actions:
before_llms_user_enrollment
- called immediately prior to begining the user enrollment functionllms_user_enrolled_in_course
(previously existing)llms_user_added_to_membership_level
(previously existing)
This also addresses an issue that prevented the llms_user_enrolled_in_course
action from being called when a user was auto-enrolled in a course because they joined a membership level that included auto-enrollment in one or more courses.
Bug and Issue fixes
- New lines are now preserved in the quiz question clarification text areas, thanks to @atimmer
- Escape HTML in the quiz question description fields on the admin panel to allow outputting html without rendering it, thanks @atimmer
- Fixed an issue related to the outputting of restricted course and membership content which caused errors on certain themes
- added a clearfix to the
.llms-lesson-preview
element on the course syllabus template - Removed the
class.llms.person.handler.php
file as it wasn't actually being used by anything anywhere and contained no functions
Version 2.2.2
One step closer to a public GitHub repository
We've made a assive syntatical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
Okay, we haven't exactly clearly defined it yet. We're working off a modified version of the WordPress Coding Standards.
Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
Quizzes
- Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
- Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
- Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
- Resolved an issue that occassionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
- Quiz questions now have a default point value of 1, thanks @atimmer
- Quiz question answers now accept valid HTML as per
wp_kses_post
, thanks again to @atimmer
Translations
- Thanks to @AndreaBarghigiani and the team at codeat LifterLMS now ships with Italian language files!
Issue and bug resolutions
- Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
- Fixed an issue with the
[lifterlms_my_account]
shortcode that was preventing the shortcode from working on the Divi theme. - Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
- Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
- Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
- Added a link to the new ConvertKit extension to the .org readme
- When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
- CSS fix for
has-icon
class on course syllabus - Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
- Fixed an undefined variable warning in the WooCommerce integration class
- Fixed a few templating issues related to certificates
- Added a few new CSS rules that should make certificates more compatible across various themes
- Added a css class to LifterLMS Next Lesson buttons,
llms-next-lesson
- Updated the scheduled event name for cleaning up LifterLMS session data from the WP database. It had a conflicting name with the scheduled event for expiring LifterLMS memberships.
Versions 2.2.2 RC 3
= v2.2.2-3 - 2016/03/?? =
One step closer to a public GitHub repository
We've made a assive syntatical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
Okay, we haven't exactly clearly defined it yet. We're working off a modified version of the WordPress Coding Standards.
Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
Quizzes
- Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
- Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
- Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
- Resolved an issue that occassionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
- Quiz questions now have a default point value of 1, thanks @atimmer
- Quiz question answers now accept valid HTML as per
wp_kses_post
, thanks again to @atimmer
Translations
- Thanks to @AndreaBarghigiani and the team at codeat LifterLMS now ships with Italian language files!
Issue and bug resolutigons
- Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
- Fixed an issue with the
[lifterlms_my_account]
shortcode that was preventing the shortcode from working on the Divi theme. - Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
- Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
- Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
- When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
- CSS fix for
has-icon
class on course syllabus - Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
- Fixed an undefined variable warning in the WooCommerce integration class
- Fixed a few templating issues related to certificates
- Added a few new CSS rules that should make certificates more compatible across various themes
- Added a css class to LifterLMS Next Lesson buttons,
llms-next-lesson
Versions 2.2.2 RC 2
= v2.2.2-2 - 2016/03/?? =
One step closer to a public GitHub repository
We've made a assive syntatical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
Okay, we haven't exactly clearly defined it yet. We're working off a modified version of the WordPress Coding Standards.
Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
Quizzes
- Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
- Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
- Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
- Resolved an issue that occassionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
- Quiz questions now have a default point value of 1, thanks @atimmer
- Quiz question answers now accept valid HTML as per
wp_kses_post
, thanks again to @atimmer
Translations
- Thanks to @AndreaBarghigiani and the team at codeat LifterLMS now ships with Italian language files!
Issue and bug resolutigons
- Composer updates to include php52 support
- Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
- Fixed an issue with the
[lifterlms_my_account]
shortcode that was preventing the shortcode from working on the Divi theme. - Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
- Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
- Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
- When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
- CSS fix for
has-icon
class on course syllabus - Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
- Fixed an undefined variable warning in the WooCommerce integration class
- Fixed a few templating issues related to certificates
- Added a few new CSS rules that should make certificates more compatible across various themes
- Added a css class to LifterLMS Next Lesson buttons,
llms-next-lesson
Versions 2.2.2 RC 1
= v2.2.2-1 - 2016/03/?? =
One step closer to a public GitHub repository
We've made a assive syntatical update to almost every file in the codebase for a (finally) unified and clearly defined coding standard. This puts us one step closer to beginning to open our GitHub repo publicly and accepting pull requests and contributions from developers everywhere.
Okay, we haven't exactly clearly defined it yet. We're working off a modified version of the WordPress Coding Standards.
Notable exceptions are related to file names because Thomas Levy didn't have the energy to rename a bunch of files as well as ignoring the Yoda Conditions standards. We'll be fixing these deviations in the future.
Quizzes
- Created new time calculation and humanizing functions related to the display of quiz time on quiz results pages
- Quizzes will now display hours, minutes, and seconds depending on the time it took to take the quiz
- Timing calculations are more accurate and quizzes that are completed in less than 60 seconds will not bug out and display incredibly long lengths
- Resolved an issue that occassionally prevented quiz data from saving during the last question causing the quiz to hang in an uncompletable state
Translations
- Thanks to TKTKTKTKTKTKT LifterLMS now ships with Italian language files!
Issue and bug resolutions
- Composer updates to include php52 support
- Fixed a restriction issue that would happen when individual lessons were restricted to a membership level
- Fixed an issue with the
[lifterlms_my_account]
shortcode that was preventing the shortcode from working on the Divi theme. - Engagements will now only be triggered if they are "Published". Resolves an issue where draft or trashed engagements were still firing.
- Fixed CSS overflow on LifterLMS Meta boxes. Fixes an issue where select boxes would be hidden inside a metabox.
- Changed the ConvertKit extension banner image on the LifterLMS general settings page and replaced added a link to the extension now that it's available.
- When restricting an entire site to a membership level the page selected as the "Terms and Conditions" page in LifterLMS settings will automatically bypass Membership restriction settings. This will allow your unregistered users to actually read the T&C that they're confirming during registration.
- CSS fix for
has-icon
class on course syllabus - Fixed a PHP warning that displayed when purchasing a membership with no auto-enrollment courses
Version 2.2.1
= v2.2.1 - 2016/03/07 =
- Added a few actions to the
class.llms.voucher.php
class.
Version 2.2.0 - 2016-03-04
Translations
- We've updated our .pot file for the first time in quite a while. We're really sorry for de-emphasizing translation. An updated .pot file will now accompany each version of LifterLMS whenever a translatable string is adjusted or when a new string is added.
- We've also made it easier to include custom translations. Read our Translation Guide.
Certificate Background Images
We've completely rewritten the certificates template (but it's all backwards compatible).
- New filters are available to make customizing the certificate template easier for developers. All new filters are documented at https://lifterlms.readme.io/docs/functions-certificates.
- A new WordPress Image Size is now available and will be used for generating the image used by default when uploading certificates to the media library. Fore more information on these new settings visit https://lifterlms.com/docs/certificate-background-image-sizes/.
Course and Membership Pricing & Sales
- Sale price start and end date are now completely optional.
- Provide neither a start date nor an end date to have a sale run indefinetly
- Provide a start date with no end date to have a sale start at a pre-determined time with no pre-determined ending
- Provide an end date with no start date to have a sale end a a pre-determined date but start immediately
- Provide a start date and an end date to have a sale run for a pre-determined period of time
- Optimized the
LLMS_Product
class to provide more reliable and extenable use of the class - The templates related to pricing functions have been refactored. Affected templates include: "templates/course/price.php", "templates/loop/price.php", "templates/membership/price.php"
- Many people complained about the size of the
.llms-price
element on course and membership tiles on loop pages. We removed the inflated size and will now default to your theme for sizing. You selector remains the same if you wish to customize the size of the price text.
Coupon Updates
- Coupons can (finally) be removed after being applied!
- Coupons can now be restricted to specific courses and/or memberships
- Percentage based coupons can no longer be created with a value larger than 100%
- Added numeric restrictions to usage and coupon amount fieds on the admin panel
- Fixed a programmatic error that prevented product restrictions from being entirely removed
- Fixed a few instances where hardcoded a US Dollar symbol ($) where a dynamic currency symbol should have been displayed.
Wow Bad Syntax, Very Typo, Such Grammar, So Undefined
- Fixed a typo in filter associated with modifying the registration of the lesson post type (
lifterlms_register_post_type_lesson
) - Fixed a grammatical error in a Membership restriction message
- Fixed a syntax error in "/templates/course/outline-list-small.php" that prevented the
done
CSS class from being properly applied to completed lessons - Fixed a few typos and grammatical errors on the Course and Membership settings metaboxes
- Fixed an undefined variable in "templates/course/syllabus.php"
- Fixed an issue on the system report that prevented the "Courses Page" from being reported properly
- Fixed an issue that caused PHP warnings on the admin panel for students or WP users with no LifterLMS menu permissions
- Fixed an installation warning caused by a reference to an undefined class variable
- Fixed an HTML character encoding issue that caused
–
to display on the admin panel when viewing LifterLMS Orders - Fixed an undefined variable found during engagment triggering for non-email engagements.
Additional, less exciting updates
- Added input type restrictions to course & membership price fields.
- The "Emails" LifterLMS Settings Tab has been renamed "Engagements." All Email settings are found under this tab as well as some new settings related to other kinds of LifterLMS engagements.
- Added
the_content
filter to the content of emails sent by LifterLMS - Fixed some CSS issues on Voucher screens
- Updated Courses settings retrieval function to retrieve the correct "shop" page id
- Added translation functions to voucher export meta box class
- Vouchers Export metabox will only allow export after a voucher has been published. This prevent's an issue caused by attempting to export voucher codes before they were saved in the database via the publish / save action.
- Vouchers can no longer be saved with a use of "0"
- added a CSS class for various syllabus outputs that notes that the lesson has an icon. Previously CSS relied on "is-complete" to output styles for having an icon but with the addition of placeholders the "is-complete" is used only to note that the lesson is completed and "has-icon" is a more semantic class that applies to both complete and incomplete lessons with an icon.
- Removed the membership restriction metabox from some post types where it shouldn't have been displaying.
- admin select fields now have an option
allow_null
(default to "true") which can be set tofalse
in order to prevent the output of the default "None" option
Version 2.2.0-2 (PRE RELEASE)
= v2.2.0-2 - 2016/03/07 - PreRelease =
Tranlations
- We've updated our .pot file for the first time in quite a while. We're really sorry for de-emphasizing translation. An updated .pot file will now accompany each version of LifterLMS whenever a translatable string is adjusted or when a new string is added.
- We've also made it easier to include custom translations. Read our knowledge base article on the matter here: [adsfadsfasdf]
Certificate Background Images
We've completely rewritten the certificates template (but it's all backwards compatible).
Course and Membership Sales
- Sale price start and end date are now completely optional.
- Provide neither a start date nor an end date to have a sale run indefinetly
- Provide a start date with no end date to have a sale start at a pre-determined time with no pre-determined ending
- Provide an end date with no start date to have a sale end a a pre-determined date but start immediately
- Provide a start date and an end date to have a sale run for a pre-determined period of time
- Optimized the
LLMS_Product
class to provide more reliable and extenable use of the class
Coupon Updates
- Coupons can (finally) be removed after being applied!
- Coupons can now be restricted to specific courses and/or memberships
- Percentage based coupons can no longer be created with a value larger than 100%
- Fixed a few instances where hardcoded a US Dollar symbol ($) where a dynamic currency symbol should have been displayed.
Wow Bad Syntax, Very Typo, Such Grammar, So Undefined
- Fixed a typo in filter associated with modifying the registration of the lesson post type (
lifterlms_register_post_type_lesson
) - Fixed a grammatical error in a Membership restriction message
- Fixed a syntax error in "/templates/course/outline-list-small.php" that prevented the
done
CSS class from being properly applied to completed lessons - Fixed a few typos and grammatical errors on the Course and Membership settings metaboxes
- Fixed an undefined variable in "templates/course/syllabus.php"
- Fixed an issue on the system report that prevented the "Courses Page" from being reported properly
- Fixed an issue that caused PHP warnings on the admin panel for students or WP users with no LifterLMS menu permissions
- Fixed an installation warning caused by a reference to an undefined class variable
Additional, less exciting updates
- Added
the_content
filter to the content of emails sent by LifterLMS - Fixed some CSS issues on Voucher screens
- Updated Courses settings retrieval function to retrieve the correct "shop" page id
- Added translation functions to voucher export meta box class
- Vouchers Export metabox will only allow export after a voucher has been published. This prevent's an issue caused by attempting to export voucher codes before they were saved in the database via the publish / save action.
- Vouchers can no longer be saved with a use of "0"
- added a CSS class for various syllabus outputs that notes that the lesson has an icon. Previously CSS relied on "is-complete" to output styles for having an icon but with the addition of placeholders the "is-complete" is used only to note that the lesson is completed and "has-icon" is a more semantic class that applies to both complete and incomplete lessons with an icon.