forked from gocodebox/lifterlms
-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
2907 lines (2107 loc) · 161 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== LifterLMS ===
Contributors: thomasplevy, chrisbadgett, kathy11, lifterlms, codeboxllc
Donate link: https://lifterlms.com
Tags: learning management system, LMS, membership, elearning, online courses, quizzes, sell courses, badges, gamification, learning, Lifter, LifterLMS
Requires at least: 4.0
Tested up to: 4.9.1
Stable tag: 3.15.1
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
LifterLMS, the #1 WordPress LMS solution, makes it easy to create, sell, and protect engaging online courses.
== Description ==
LifterLMS is a powerful WordPress LMS plugin that makes it easy to create, sell, and protect engaging online courses. The mission of LifterLMS is to democratize education in the digital classroom.
https://www.youtube.com/watch?v=LugJPS7bhxI
# **Extend and Enhance LifterLMS with Add-ons**
#### **Advanced**
_Courses + Community + Coaching = Engagement_
+ [LifterLMS Private Areas][pa]
+ [LifterLMS Social Learning][sl]
#### **Integrations**
_Integrate with the third-party tools you know and love_
+ [LifterLMS Stripe][stripe]
+ [LifterLMS PayPal][pp]
+ [LifterLMS Authorize.Net][anet]
+ [LifterLMS WooCommerce][wc]
+ [LifterLMS ConvertKit][ck]
+ [LifterLMS MailChimp][mc]
#### **Design Tools**
_Make your learning platform beautiful_
+ [LifterLMS Pro][pro]
+ [LifterLMS LaunchPad Theme][lp]
#### **Support**
_Our world-class support has your back_
+ [LifterLMS Pro][pro]
+ [LifterLMS Office Hours][oh]
#### **Save Big with a Bundle**
_Save money while unlocking the full potential of your learning platform_
+ [Infinity Bundle][infinity]
+ [Universe Bundle][universe]
# **Give LifterLMS a Try**
_Try LifterLMS and the premium add-ons before investing any time_
+ [Try LifterLMS for $1][try]
+ [Take a Free Course][demo]
# **[LifterLMS Features][features]**
_With LifterLMS and LifterLMS Add-ons you can..._
#### **Create Courses**
+ Multimedia lessons
+ Quizzes
+ Course builder
+ Drip Content
+ Pre-requisites
+ Course tracks
+ Assignments (coming soon)
+ Quiz time limits
+ Student dashboard
+ Multi-instructor
+ Lesson downloads
+ Course import & export
+ Discussion areas
+ Instructional design
+ Forum integrations
+ Graphics pack
+ Course reviews
#### **Build an Education-Based Business**
+ Credit card payments
+ One-time payments
+ Recurring payments
+ Payment plans
+ Unlimited pricing models
+ PayPal
+ Subscriptions
+ Checkout
+ Free courses
+ Course bundles
+ Private coaching upsells
+ Coupons
+ Bulk sales
+ Affiliate ready
+ Native sales pages
+ Offline sales
+ Customizable enrollment
+ Country and currency
+ E-commerce dashboard
+ Credit card management
+ Subscription switching
+ Payment switching
#### **Engage Your Students**
+ Achievement bages
+ Certificates
+ Peronalized email
+ Social learning
+ Private coaching
+ Text messaging
#### **Offer Memberships**
+ Sitewide membership
+ Course bundles
+ Traditional memberships
+ Automatic course enrollment
+ Bulk course enrollment
+ Content restrictions
+ Members-only payment plans
+ Private group discussions
+ Members-only forums
#### **Integrate with the Tools You Need**
+ Payment gateways
+ Email marketing
+ Forums
+ Mobile friendly
+ Use any theme
+ Built for compatibility
+ CRMs
+ E-learning authoring tools
+ Tin Can API (xAPI)
#### **Secure and Protect Your Content**
+ Course protection
+ User account management and registration
+ Members-only content
+ Restricted access
+ Password management
+ Self-hosted
#### **Own and Manage Your Platform**
+ Detailed reporting
+ Gradebook
+ Email notifications
+ Bulk enrollments
+ Student management
+ Access management
+ Web design management
+ Branding & Typography
+ LMS Roles
+ Security
+ Require terms
+ Scaleable
+ Layout
+ Testing tools
#### **Get Support**
+ Technical support
+ Live office hours
+ Free training courses
+ Setup wizard
+ Detailed documentation
+ Dynamic resources
+ Demo course
+ System analyzer
+ User community
+ Developer ecosystem
#### **Further Reading**
+ The [LifterLMS Official Homepage][home]
+ The [LifterLMS Knowledgebase][docs]
+ The [LifterLMS Blog][blog]
+ The [LifterLMS Podcast][podcast]
# **Join Our Growing Community**
When you download LifterLMS, you join a thriving community of education entrepreneurs, developers, and WordPress enthusiasts. We’re one of the fastest growing open source eLearning communities online, and you are welcome here.
If you’re interested in contributing to LifterLMS, head over to the [LifterLMS GitHub Repository][git] to find out how you can pitch in.
Want to add a new language to LifterLMS? Swell! You can contribute at [translate.wordpress.org][translate].
Also I'd like to invite you to the [LifterLMS VIP Facebook group][facebook] so you can check out what other LifterLMS users are up to and ask questions to the community.
[home]: https://lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[docs]: https://lifterlms.com/docs/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[blog]: http://blog.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[podcast]: http://podcast.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[git]: https://github.com/gocodebox/lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[demo]: https://demo.lifterlms.com/course/how-to-build-a-learning-management-system-with-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[translate]: https://translate.lifterlms.com/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[facebook]: https://www.facebook.com/groups/lifterlmsvip/
[anet]: https://lifterlms.com/product/authorize-net/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[dfy]: https://lifterlms.com/dfy/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[ck]: https://lifterlms.com/product/lifterlms-convertkit/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[infinity]: https://lifterlms.com/product/infinity-bundle/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[lp]: https://lifterlms.com/product/launchpad/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[mc]: https://lifterlms.com/product/mailchimp-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[oh]: https://lifterlms.com/product/office-hours/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[pa]: https://lifterlms.com/product/private-areas/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[pp]: https://lifterlms.com/product/paypal-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[pro]: https://lifterlms.com/product/lifterlms-pro/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[sl]: https://lifterlms.com/product/social-learning/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[stripe]: https://lifterlms.com/product/stripe-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[try]: https://lifterlms.com/product/try/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[universe]: https://lifterlms.com/product/universe-bundle/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[wc]: https://lifterlms.com/product/woocommerce-extension/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[features]: https://lifterlms.com/features/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[feature-lms]: https://lifterlms.com/features/lms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[feature-ecomm]: https://lifterlms.com/features/e-commerce/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[feature-membership]: https://lifterlms.com/features/membership/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
[feature-engagement]: https://lifterlms.com/features/engagement/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale
== Installation ==
#### Minimum System Requirements
LifterLMS Requires
+ PHP 5.6 or later
+ MySQL 5.6 or later
+ WordPress 4.0 or later
Visit our [full system requirements](https://lifterlms.com/docs/minimum-system-requirements-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale) for additional information.
#### Automatic Installation
This is the simplest way to install LifterLMS as it utilizes WordPress to handle file transfers and you never need to leave the web browser or admin panel.
1. Log in to your WordPress dashboard.
2. Navigate to Plugins -> Add New
3. In the search field type "LifterLMS" and click "Search Plugins"
4. Once you've located LifterLMS click "Install Now"
5. Once installation is complete, click "Activate"
#### Manual Installation
To manually install LifterLMS you'll need to download the zip file using the "Download" link on this screen. You'll then need to use FTP to manually upload the files to the proper directory on your webserver.
Please see this [WordPress Codex document](https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation) for full instruction on Manual Plugin Installation.
#### Setup Wizard
After installing LifterLMS for the first time you will be redirected to the Setup Wizard. This wizard will walk quickly configure LifterLMS so you can get to course creating as quickly as possible. At the conclusion you'll have the option to import a sample course.
You can return to the setup wizard at any time by following [these steps](https://lifterlms.com/docs/rerun-lifterlms-setup-wizard/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
== Frequently Asked Questions ==
#### Are there any troubleshooting steps you'd suggest I try that might resolve my issue before I post a new thread?
First, make sure that you're running the latest version of LifterLMS. And if you've got any other LifterLMS extensions or themes, make sure those are running the most current version as well.
The most common issues we see are either plugin conflicts, theme conflicts, or outdated servers. You can test if a plugin or theme is conflicting by manually deactivating other plugins until just LifterLMS is running on your site. If the issue persists from there, revert to the default Twenty Fifteen theme. If the issue is resolved after deactivating a specific plugin or your theme, you'll know that is the source of the conflict. If it is a hosting issue, contact your web host and make sure they’re running the most current version of PHP.
Also be sure to check out the official LifterLMS [Knowledge Base](https://lifterlms.com/docs/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
#### I'm still stuck. Where do I go to file a bug or ask a question?
Users of the free LifterLMS should post their questions in the plugin's WordPress.org forum. If you find you're not getting support in as timely a fashion as you wish, you might want to consider purchasing a [LifterLMS Pro license](https://lifterlms.com/product/lifterlms-pro/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
If you're already a LifterLMS Pro user or you have purchased one of the LifterLMS themes or extensions, you're entitled to log into your account and contact the support team directly on the [LifterLMS website](https://lifterlms.com/my-account/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). We can provide a deeper level of support here and address your needs on a daily basis during the work week. Generally, except in times of increased support loads, we reply to all comments within 12 business hours.
#### LifterLMS is awesome! Can you set it all up for me?
Yes. You can get an instant quote for the team at LifterLMS to set everything up for you through our signature Done For You service. Get an instant quote through our automated quote generation tool on the [LifterLMS website services page](https://lifterlms.com/dfy/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
#### I'm interested in LifterLMS Pro, another LifterLMS extension, or a LifterLMS theme, but there are a few questions I've got before making the purchase. Can you help me get those addressed?
Absolutely. If you're not finding your questions answered on the product pages, you can ask your presales questions through this [contact form](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale). You can also connect live with a member of our team [here](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
#### What add-ons are available for LifterLMS, and where can I read more about them?
You can find a full list of officlai LifterLMS Add-ons [here](https://lifterlms.com/store/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale)
#### I have a feature idea. What's the best way to tell you about it?
We care about your feature ideas and what you have to say. You can [request a feature](https://lifterlms.com/contact/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale), [vote on existing feature requests](?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale), and checkout the [product roadmap](https://lifterlms.com/roadmap/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
#### I still have questions. Where can I find answers?
Be sure you’ve taken the free tutorial training video course: [How to Create an Online Course with LifterLMS](http://demo.lifterlms.com/course/how-to-build-a-learning-management-system-with-lifterlms/?utm_source=LifterLMS%20Plugin&utm_medium=README&utm_campaign=Readme%20to%20Sale).
== Screenshots ==
1. LifterLMS Courses
2. LifterLMS Pricing Tables
3. LifterLMS Checkout
4. LifterLMS Lessons
5. LifterLMS Achievement Earned
6. LifterLMS Achievement Badges
7. LifterLMS Quiz Results
8. LifterLMS Student Dashboard
9. LifterLMS Certificates
10. LifterLMS Sales Reporting
11. LifterLMS Student Reporting
12. LifterLMS Enrollment Reporting
13. LifterLMS Sidebar Widgets
14. LifterLMS Subscription Management
15. LifterLMS Settings
16. LifterLMS Course Builder
17. LifterLMS Lesson Settings
18. LifterLMS Engagements
19. LifterLMS Email Engagements
20. LifterLMS Course Access Plans
21. LifterLMS Update Upcoming Order Details
22. LifterLMS Lock Down Non LMS Content with Memberships
23. LifterLMS Membership Course Bundles and Auto Enrollment
24. LifterLMS Business to Business Bulk Enrollment Activations with Vouchers
== Changelog ==
= v3.15.1 - 2017-12-05 =
------------------------
+ Ensure course & membership titles with HTML characters are decoded during reporting exports
+ Fix issue causing some courses to display in membership columns on reporting exports
= v3.15.0 - 2017-12-04 =
------------------------
##### Reporting Updates (and CSV exports!)
+ Added course-level reporting table (see "Courses" tab of Reporting screen)
+ Updated the interface on reporting screen when reviewing a single student
+ Added reporting exports: students list, courses list, and list of students per course
##### Bug fixes
+ Fix error when `[lifterlms_course_continue_button]` shortcode is displayed to logged out or students not enrolled in the chosen course
##### Minor updates
+ Tested up to WordPress 4.9.1
+ Added background data processors to ensure reporting data stays up to date in close to real time
+ Add nocache constants and headers on student dashboard & checkout page to increase compatibility with caching plugins
+ Added filter to student dashboard courses query
= v3.14.9 - 2017-11-27 =
------------------------
+ Tested up to WordPress 4.9
+ Fix error during uninstall related to missing file
+ Fix issue with rewinding quiz using "Previous Question" button
+ On final question of a quiz the "Next Lesson" button now says "Complete Quiz"
+ When completing a quiz, the loading message will now say "Grading Quiz" the entire time instead of "Loading Question" and then "Grading Quiz"
+ Fix issue causing the <title> element on course builder pages from being partially empty
= v3.14.8 - 2017-11-06 =
------------------------
+ Lessons can be cloned via the "Clone" action from the lessons post table
##### Builder Improvements & Fixes
+ Add "Existing Lesson" functionality can now clone and attach the clone (when adding a lesson currently attached to a course) OR attach orphans
+ Lessons created via Course builder will have their slugs renamed the first time the lesson title is updated via the builder
+ No longer display notices on the course builder
+ Add extra space to the scollable area on course builder
+ Removed logging and debugging functions from admin builder class
+ JS-generated error messages on the course builder are now translateable
##### Bug Fixes
+ Fix: Show all memberships on dashboard
= v3.14.7 - 2017-10-25 =
------------------------
##### Navigation Menu Items
+ Add LifterLMS endpoints to your nav menu
+ Add Sign In and Sign Out links which display conditionally based on whether or not the visitor is logged in
+ Checkout the docs at [https://lifterlms.com/docs/lifterlms-navigation-menu-items/](https://lifterlms.com/docs/lifterlms-navigation-menu-items/)
##### Bug Fixes
+ Fix SQL query issue with orphaned lesson query on course builder
+ Fix undefined index warning occurring during theme switches
+ Fix issue causing duplicate error messages to display on certain servers
= v3.14.6 - 2017-10-21 =
------------------------
+ Fix: `<iframes>` are no longer stripped when exporting or duplicating courses (this applies to lessons within the courses as well)
+ Fix: Achievements on student dashboard now output the correct achievement title
+ Fix: Courses on student dashboard ordered by Order attributes will obey settings correctly
= v3.14.5 - 2017-10-14 =
------------------------
+ Course builder will persist open/collapsed state of sections when they are re-orderd
+ Course builder lessons in a section are draggable after reordering a section
= v3.14.4 - 2017-10-13 =
------------------------
+ You were right and we were wrong & we are sorry. This update returns the ability to add existing lessons to a course via the course builder.
+ Lessons added to a section will no longer visually disappear when editing a section title on the course builder
+ BuddyPress integration BP template fixes
= v3.14.3 - 2017-10-12 =
------------------------
+ Fix [lifterlms_my_account] shortcode issue affecting Divi theme users
= v3.14.2 - 2017-10-11 =
------------------------
+ Instructor query utilizes correct `$wpdb->prefix` for filtering by role instead of `wp_` which will not work when the `$table_prefix` in wp-config.php is customized
+ include the admin notices class when running database update functions
= v3.14.1 - 2017-10-10 =
------------------------
+ Fix `[lifterlms_my_achievements]` shortcode
+ Fix reference to deprecated core function related to checking the permissions of content restricted to a membership
+ Builder titles will be saved on all field focusout/blur events, not just tab & enter key presses
+ LifterLMS custom meta save metaboxes will not trigger actions during ajax requests
+ Fix issue displaying certificates on admin panel reporting screens
= v3.14.0 - 2017-10-10 =
------------------------
+ Updated JS for 3.13 course builder to address issues on PHP 5.6 servers with asp_tags enabled
+ Normalized date returns with various dates related to enrollments, achievements, and certificates. These dates now utilize the WP Core `date_format` option.
+ Fixed strict comparison issue related to database query abstract (affected checks for last page & first page on admin reporting screens)
+ Added a new capability `llms_instructor` for admins, lms managers, instructors, and instructor's assistant to easily differentiate "instructors" from "students"
+ Fix `$wpdb->prepare` issue related to notification queries. Fixes WP 4.9-beta issue.
##### Student Dashboard Updates
+ Achievements on student dashboard now viewable in popover modal.
+ Achievements tab added to student dashboard
+ Courses, Memberships, Achievements, and Certificates have been updated to have a unified style
+ Courses & Memberships extend the default catalog tiles
+ Courses shortcode has new parameters useful for displaying a list of a specific users courses only. [More info](https://lifterlms.com/docs/shortcodes/#lifterlms_courses)
##### Deprecated functions
+ `LLMS_Student_Dashboard::output_courses_content()` replaced with `lifterlms_template_student_dashboard_my_courses( false )`
+ `LLMS_Student_Dashboard::output_dashboard_content` replaced with `lifterlms_template_student_dashboard_home()`
##### Template Updates
+ [achievements/loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/achievements/loop.php)
+ [achievements/template.php](https://github.com/gocodebox/lifterlms/blob/master/templates/achievements/template.php)
+ [certificates/loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/certificates/loop.php)
+ [certificates/preview.php](https://github.com/gocodebox/lifterlms/blob/master/templates/certificates/preview.php)
+ [loop.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop.php)
+ [loop/content.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/content.php)
+ [loop/enroll-date.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/enroll-date.php)
+ [loop/enroll-status.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/enroll-status.php)
+ [loop/pagination.php](https://github.com/gocodebox/lifterlms/blob/master/templates/loop/pagination.php)
+ [myaccount/dashboard-section.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard-section.php)
+ [myaccount/dashboard.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/dashboard.php)
+ [myaccount/header.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/header.php)
##### Deleted Templates
+ /myaccount/my-achievements.php
+ /myaccount/my-courses.php
+ /myaccount/my-memberships.php
= v3.13.1 - 2017-10-04 =
------------------------
+ Fix caching issue preventing quiz pass & fail engagements from triggering.
+ Fix issue causing the "Builder" link to display on the lesson post table screen.
+ Fix issue preventing new courses & memberships from being moved from draft -> published.
+ Fix `wpdb->prepare()` empty placeholder issue related to engagement queries. Fixes warning added in WP 4.9.
+ Add better version numbering to static assets to prevent caching issues during plugin updates
= v3.13.0 - 2017-10-02 =
------------------------
##### An All New Course Builder
+ The "Course Outline" metabox found on the admin panel when editing any LifterLMS course has been savagely beaten. We stole its lunch money and we put it towards the construction of an all interface
+ Asynchronous loading: fixes issues where very large courses would drastically slow and possibly even time out the loading of the course edit screen
+ Course outline is now collapsible and expandable. This Fixes issues where it was very hard to move lessons and sections around on very large courses
+ In addition to the familiar (and now improved) drag and drop functionality, you may now also move sections and lessons up and down with button clicks. You can also move lessons between sections with button clicks
+ Add new lessons and sectiosn with a click or drag a new lesson or section into the existing course
+ Edit section and lesson titles faster with inline title editing. No more modals with a potentially slow ajax load to update a title. Click the title, change it, and exit the field to automatically save!
+ Delete sections and lessons with the click of a button
+ Quick links to view (frontend) and edit (backend) lessons
+ Completely internationalized. Thanks for you patience translators!
+ Want to know more? Check out the [docs](https://lifterlms.com/docs/using-course-builder/).
##### New User Roles
+ Added new roles to enable you to provide access to LifterLMS (settings, courses building, etc...) without having to make an admin or mess with complicated code snippets.
+ New Roles:
+ LMS Manager: Do everything in LifterLMS and nothing with plugins, themes, core settings, and so on
+ Instructor: Create, update, and delete courses and memberships
+ Instructor's Assistant: Edit courses and memberships
+ More details and a full list of new LifterLMS capabilities are available [here](https://lifterlms.com/docs/roles-and-capabilities/).
##### Updates & Fixes
+ Tested up to WordPress 4.8.2
+ The "Lesson Tree" metabox has been replaced with a simplified version of the lesson tree and a link to the launch the Course Builder.
+ Course and membership categories and tags will now display on their respective post tables for sorting and filtering. They can be disabled on a per-user basis via the screen options.
+ Removed `var_dump()` from bbPress integration restriction check
##### Uninstall Script
+ Uninstall script now removes all the things LifterLMS creates in your database if a constant is defined. Read more [here](https://lifterlms.com/docs/remove-lifterlms-data-plugin-uninstallation/).
##### Database Update
+ Adds default Instructor data for all LifterLMS Courses & Memberships based off of the post author of the course or membership
+ [More information](https://lifterlms.com/docs/lifterlms-database-updates/#3130)
##### Template Updates
+ [admin/post-types/students.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/students.php)
+ [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
##### Deprecated Functions
+ The following AJAX functions are no longer utilized by LifterLMS core. If you are utilizing them find alternatives (they all exist). These will be remove in the next **major** release:
+ `LLMS_AJAX::get_achievements()`
+ `LLMS_AJAX::get_all_posts()`
+ `LLMS_AJAX::get_associated_lessons()`
+ `LLMS_AJAX::get_certificates()`
+ `LLMS_AJAX::get_courses()`
+ `LLMS_AJAX::get_course_tracks()`
+ `LLMS_AJAX::get_emails()`
+ `LLMS_AJAX::get_enrolled_students()`
+ `LLMS_AJAX::get_enrolled_students_ids()`
+ `LLMS_AJAX::get_lesson()`
+ `LLMS_AJAX::get_lessons()`
+ `LLMS_AJAX::get_lessons_alt()`
+ `LLMS_AJAX::get_memberships()`
+ `LLMS_AJAX::get_question()`
+ `LLMS_AJAX::get_sections()`
+ `LLMS_AJAX::get_sections_alt()`
+ `LLMS_AJAX::get_students()`
+ `LLMS_AJAX::update_syllabus()`
##### Removed Filters
+ The following filters have been removed and are no longer in use.
+ `lifterlms_admin_courses_access`: replaced with user capability `edit_courses`
+ `lifterlms_admin_membership_access`: replaced with user capability `edit_memberships`
+ `lifterlms_admin_reporting_access`: replaced with user capability `manage_lifterlms`
+ `lifterlms_admin_settings_access`: replaced with user capability `manage_lifterlms`
+ `lifterlms_admin_import_access`: replaced with user capability `manage_lifterlms`
+ `lifterlms_admin_system_report_access`: replaced with user capability `manage_lifterlms`
= v3.12.2 - 2017-09-18 =
------------------------
##### Bug fixes
+ Fix issue with LifterLMS bbPress integration preventing course-restricted topics from being accessible by enrolled students
+ Fix an issue preventing students expired from courses via access expiration settings from being manually re-enrolled by admins
##### Deprecations
+ `LLMS_Student` class function `has_access` is scheduled for depercation in next major release. Developers should switch to `LLMS_Student->is_enrolled()`
= v3.12.1 - 2017-08-25 =
------------------------
+ Prevent duplicate loading of repeater metabox fields
+ Fix undefined warning related to quiz completion
+ Ensure that the bbPress course forums shortcode & widget properly cascade up when used on a lesson or quiz
= v3.12.0 - 2017-08-17 =
------------------------
+ New quiz feature: randomize the order of quiz questions each attempt! Props to [Larry Groebe](https://github.com/larrygroebe)
+ Fixed logic error related to access checks when bubbling from quiz->lesson->course
+ Fixed JS loader check for tinyMCE editors in repeater fields
+ Fixed CSS issue related to tinyMCE editors in repeater fields
+ Fixed issue causing tinyMCE editors in repeater fields to stop working after reordering rows
+ LifterLMS alert box notices are now cleared during shutdown instead of immediately after rendering. Fixes some plugin compatibility issues.
+ Fix reference to invalid meta key on order notes admin screen.
+ Record order note when orders with a defined length complete
+ When a payment is scheduled for an order with a defined length, calculate end date if no end date is saved
+ Minor updates to the `LLMS_Abstract_Integration` class
+ Fix undefined reference error on 404 pages resulting from the preview manager.
##### bbPress Integration Updates
+ Add "Private" Course Forums which allows forums to be made available only to students enrolled in the associated course
+ Adds a shortcode and widget for outputting a list of forums associated with a course
+ Adds the ability to restrict the page set as the bbPress forum index (via bbPress settings) to be restricted to LifterLMS memberships
+ Adds engagement triggers to allow engagements to be fired when a student posts a reply or creates a new topic
+ Improves integration membership restriction check performance
+ Migrated to the `LLMS_Abstract_Integration` class. Visually changes the settings display but has no other impact
+ [More information](https://lifterlms.com/docs/lifterlms-and-bbpress/)
##### BuddyPress Integration Updates
+ Add the ability to restrict activity, group, and memeber directory pages to LifterLMS memberships.
+ Migrated to the `LLMS_Abstract_Integration` class. Visually changes the settings display but has no other impact
+ [More information](https://lifterlms.com/docs/lifterlms-and-bbpress/)
##### Database update
+ calculate and store end dates for orders created prior to version 3.11.0 which have a defined length and do not have a stored end date.
+ migrate bbPress and BuddyPress options to `LLMS_Abstract_Integration` naming convention
+ [More information](https://lifterlms.com/docs/lifterlms-database-updates/#3120)
##### Admin Post Table Upgrades
+ Lessons
+ Fix section titles which formerly were a dead link. Now they're just text
+ Add filtering the table by associated course
+ Quizzes
+ Display associated course and lesson columns with links
+ Add filtering by associated course and/or lesson
+ Quiz Questions
+ Display associated Quizzes with links
+ Add filtering by associated quiz
##### Template Updates
+ [admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
= v3.11.2 - 2017-08-14 =
------------------------
+ Tested up to WP Core 3.8.1
##### System Status and Reporting updates
+ System Report renamed to "Status"
+ Added information of template overrides to the system report
+ Added "Get Help" button linking to LifterLMS Ticketing submission page
+ Added "Logs" tab which allows for easy viewing & managment of LifterLMS logs
+ Added "Tools and Utilities" tab and moved tools from the General Settings screen to this tab
+ Improved Session Reset tool
= v3.11.1 - 2017-08-03 =
------------------------
+ New shortcode: `[lifterlms_course_continue_button]`. See [shortcode docs](https://lifterlms.com/docs/shortcodes/#lifterlms_course_continue_button) for more information.
+ New shortcode: `[lifterlms_lesson_mark_complete]`. See [shortcode docs](https://lifterlms.com/docs/shortcodes/#lifterlms_lesson_mark_complete) for more information.
+ Added filter `llms_product_pricing_table_enrollment_status` to allow forceful display of course/membership pricing tables regardless of user enrollment status.
+ Fix course author shortcode to allow usage outside of a course via the `course_id` parameter.
##### Template Updates
+ [product/pricing-table.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/pricing-table.php)
+ [product/course/progress.php](https://github.com/gocodebox/lifterlms/blob/master/templates/product/course/progress.php)
= v3.11.0 - 2017-07-31 =
------------------------
+ New engagement trigger "Student purchases access plan" allows engagements to be triggered from a specific access plan!
+ Minor performance improvements to notification-related database queries
+ Fix issue causing payment gateways to always use test mode links from Orders on the admin panel
+ Added default email notification merge code for outputting an HTML divider
+ Added new actions to Dashboard template to allow adding custom content to course tiles on the dashboard
##### Template Updates
+ [myaccount/my-courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-courses.php)
= v3.10.2 - 2017-07-14 =
------------------------
+ Fix fatal error related to purchase receipts for trashed or deleted orders
+ l10n "Reviews" tab title on course settings
+ Remove commented out sample preheader text from email header template which was displaying in some email clients.
##### Template Updates
+ [emails/header.php](https://github.com/gocodebox/lifterlms/blob/master/templates/emails/header.php)
= v3.10.1 - 2017-07-12 =
------------------------
##### Bugfixes
+ Prevent errors related to attempting to display notification data related to deleted students
+ Fix errors related to displaying notifications for deleted post (courses, sections, lessons, quizzes, etc...)
+ Fix error causing email notifications being sent after related user has been deleted
+ Fix typo preventing `llms_form_field()` from outputting textareas
##### Updates
+ Add new filter `llms_allow_subscription_cancellation` useful for preventing students from self-cancelling their subscriptions on the student dashboard. [More info](https://lifterlms.com/docs/lifterlms-filters/#llms_allow_subscription_cancellation).
+ Add new API for querying students via AJAX select2 elements
+ Select2 Post Query elements can now query multiple post types simultaneously
+ Seletc2 Post Query elements can now support `<optgroup>`
###### i18n
+ Course option metabox for reviews is not translateable
= v3.10.0 - 2017-07-05 =
------------------------
##### Recurring Order Management (for Admins)
+ Admins can now edit various pieces of data related to a recurring order from the order screen on the admin panel
+ Allow editing of the Next Payment Date
+ Allow editing of the Trial End Date (when a trial is active for the order)
+ Edit Payment Gateway and related gateway fields (Customer ID, Source ID, and Subscription ID)
+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
##### Recurring Order Management (for Students)
+ Students can now switch the payment method (source) for their recurring subscritions from the student dashboard
+ Students can now cancel their recurring orders to prevent future payments on recurring orders
+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
##### Automatic Payment Retries (for supporting gateways)
+ LifterLMS Stripe and LifterLMS PayPal can now automatically retry failed payments to help recover lost revenue as a result of temporary declines to payment sources. Please see our documentation on this new feature [here](https://lifterlms.com/docs/automatic-retry-failed-payments/).
+ If you're using LifterLMS Stripe or LifterLMS PayPal please update to the latest version of these add-ons to take advantage of these new features!
##### Manual Payment Gateway Enhancements
+ The Manual Payment Gateway (bundled with LifterLMS Core) can now handle recurring payments. For more information on utilizing recurring payments with the Manual Gateway please see the [gateway documentation](https://lifterlms.com/docs/using-lifterlms-manual-payment-gateway/).
##### Updates and Fixes
+ Force SSL setting now applies to Student Dashboard screens. This is useful as Google now recommends any page where a password is submitted should be encrypted and allows gateway communication from student dashboard screen with APIs that require an SSL connection.
+ Fixed spelling error related to quizzes
##### Templates changed
**NEW**
+ [checkout/form-switch-source.php](https://github.com/gocodebox/lifterlms/blob/master/templates/checkout/form-switch-source.php)
+ [myaccount/view-order-transactions.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order-transactions.php)
**UPDATED**
+ [admin/post-types/order-details.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/post-types/order-details.php)
+ [myaccount/my-orders.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-orders.php)
+ [myaccount/navigation.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/navigation.php)
+ [myaccount/view-order.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/view-order.php)
+ [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
= v3.9.5 - 2017-06-13 =
-----------------------
+ Increased css z-index of basic notifications to prevent issues with themes that have high z-index on menus and other elements
+ Increased the frequency of basic notification heartbeat check from 10 to 20 seconds
+ Added filter to allow for customization of the notifications heartbeat interval, example [here](https://lifterlms.com/docs/lifterlms-filters/#llms_notifications_settings).
+ Fixed error related to password reset when the "Disable Usernames" account setting is disabled
= v3.9.4 - 2017-06-12 =
-----------------------
+ Fix hardcoded db reference to `wp_posts` table
= v3.9.3 - 2017-06-09 =
-----------------------
+ Fix typo in notifications query
= v3.9.2 - 2017-06-07 =
-----------------------
+ Tested up to WordPress 4.8
+ Fixed issue with merge codes on WP Editors for notifications, emails, etc...
+ Update notifications query to only return results related to posts which actually exist. Prevents errors occuring when reviewing achievements on the student dashboard for courses, lesseons, etc which have been deleted/trashed.
+ Only display quiz time limit meta information when a time limit exists
+ Fix display of quiz question order (question x of x)
+ Improved logic powering quiz attempt grading for increased consistency, especially with regards to floats and rounding
##### Templates Changed
+ [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
+ [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
= v3.9.1 - 2017-06-02 =
-----------------------
+ Fix engagement triggers with relation to quizzes to properly recieve 3.9 api updates
+ Fix quiz attempt counting issue resulting in the total attempts by a student always being one more than the actual value
+ Fix membership access plan restrictions tooltip
= v3.9.0 - 2017-06-02 =
-----------------------
##### Quizzes
+ All new quiz results interface for students
+ Donut charts are now animated
+ Donuts will be green for passing attempt and red for failing
+ Students can now review previous quiz attempts and summaries
+ Removed the juxtaposition of the current and best attempts to reduce confusion on the interface
+ Improved the consistency of the quiz meta information markup
+ Adjusted various pieces of language for an improved student experience
+ Improvements to the quiz taking experience
+ Added the LLMS_Spinner (seen on checkout screens and various places on the admin panel) and various loading messages when starting quiz, transitioning between questions, and completing a quiz
+ Better error handling and management should issues arise during a quiz
+ Better unload & beforeunload JS management to warn students when they attempt to leave a quiz in progress
+ Improved quiz data handling and management
+ Improved API calls and handlers related to taking quizzes for increased performance and consistency
+ quiz data can now be programattically queried via consistent apis and data classes, see `LLMS_Student->quizzes()` and `LLMS_Quiz_Attempt`
+ Quizzes no longer rely on session and cookie data. All quiz data will always be saved directly to the database and related to the student. Fixes an issue on certain servers preventing student from starting quizzes.
+ Deprecated `LLMS_Quiz::start_quiz()`, `LLMS_Quiz::answer_question()`, and, `LLMS_Quiz::complete_quiz()`
+ Ajax handler functions of the same names should be used instead.
+ To programmatically "take" quizzes use related functions of similar names from the `LLMS_Quiz_Attempt` class
##### Templates changed
+ New
+ [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
+ Updated
+ [admin/reporting/tabs/students/courses.php](https://github.com/gocodebox/lifterlms/blob/master/templates/admin/reporting/tabs/students/courses.php)
+ [content-certificate.php](https://github.com/gocodebox/lifterlms/blob/master/templates/content-certificate.php)
+ [course/complete-lesson-link.php](https://github.com/gocodebox/lifterlms/blob/master/templates/course/complete-lesson-link.php)
+ [myaccount/my-notifications.php](https://github.com/gocodebox/lifterlms/blob/master/templates/myaccount/my-notifications.php)
+ [quiz/next-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/next-question.php)
+ [quiz/previous-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/previous-question.php)
+ [quiz/question-count.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/question-count.php)
+ [quiz/quiz-question.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-question.php)
+ [quiz/quiz-wrapper-end.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-end.php)
+ [quiz/quiz-wrapper-start.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/quiz-wrapper-start.php)
+ [quiz/results.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/results.php)
+ [quiz/return-to-lesson.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/return-to-lesson.php)
+ [quiz/single-choice_ajax.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/single-choice_ajax.php)
+ [quiz/start-button.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/start-button.php)
+ [quiz/summary.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/summary.php)
+ Removed
+ quiz/attempts.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
+ quiz/passing-percent.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
+ quiz/time-limit.php - replaced by [quiz/meta-information.php](https://github.com/gocodebox/lifterlms/blob/master/templates/quiz/meta-information.php)
##### Fixes
+ Student Dasbhoard notifications page will not display pagination links unless there's results to page through
+ Student Dasbhoard notifications page will now display a message when no notifications are found
+ Certificate previewing now takes into consideration the preview setting roles to allow admins (or other roles) to preview certificates
+ Made student name self fallback (you) i18n friendly
= v3.8.1 - 2017-05-21 =
-----------------------
+ Fix merge code issue related to course title on quiz notifications
= v3.8.0 - 2017-05-20 =
-----------------------
+ Automatic email and basic (on-screen) notifications for various events within LifterLMS
+ All notifications can be customized
+ Email notifications can be optionally sent to custom email address, course authors, and more
+ Students will automatically receive email receipts when making purchases and when recurring access plans rebill
+ Hidden Access Plans
+ Add a "Purchase Link" view button to access plans so admins can quickly grab the direct URL to an access plan
+ Notifications history screen on Student Dashboard to review past notifications that have been received
+ Updated LLMS_Email class and functionality
+ Email templates have been completely rewritten and styled
+ Updated and rewritten password reset flow
+ Earned certificates are only accessible by the student who earned the certificate
+ Added the functionality for image upload via options & settings api
+ Removed a handful of unused templates related to LifterLMS certificates that were replaced a long time ago but still existed in the codebase for unknown reasons.
+ Fixed filter on engagements settings page
+ Minor adjustments to language and settings order on Engagements settings screen for email settings
+ Email Header Image field is now an upload field as opposed to a "paste a url here" setting
+ Phone number recorded to order and displayed on order for admin panel during purchases
+ Order details now display full country name as opposed to the country code
+ Fix installation script to ensure admin can preview by default
= v3.7.7 - 2017-05-16 =
-----------------------
+ Updated a few strings on the admin panel to be translateable
+ Fix PHP warning output during plugin activation
+ Fix reporting issue related to outputting quiz question answers where the correct answer is the first available answer
+ Fix PHP 7.1 issue on the checkout screen
+ Removed some unnecessary files from vendor libraries
= v3.7.6 - 2017-05-05 =
-----------------------
+ New translations for new categories on Add-ons screen
+ Update to general settings which utilizes featured items from the general settings screen
+ Update readme & related meta files
+ Removed advert image files
= v3.7.5 - 2017-05-02 =
-----------------------
+ Upgrade WP Session Manager to latest version
+ Codestyle updates across most files in codebase to bring to most recent styling guidelines put forth by [WP Coding Standards](https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards)
= v3.7.4 - 2017-04-26 =
-----------------------
+ When cloned site detected automatically disable recurring_payments feature & trigger an action 3rd parties can hook into for custom 3rd party features
+ Add better JS dependency management to prevent issues where assets loaded in the wrong order
+ Fix issue where dismiss icon on LifterLMS admin notices was positioned poorly on non-LifterLMS admin screens
+ Fix issue preventing edit account form submission on student dashboard when password strength meter is disabled
= v3.7.3 - 2017-04-21 =
-----------------------
+ Fixed issues where Course Track checks were not functioning properly with relation to prerequisite associations
+ `LLMS_Generator` can now be used to generate course(s) from a raw array of course data using the SingleCourseGenerator and BulkCourseGenerator
+ `LLMS_Generator` default post status can be set at runtime using `set_default_post_status()`
+ Fixed an issue causing JS errors on the `wp-login.php` screen
+ Tested up to WordPress 4.7.4
### Template Updates
+ `course/prerequisites.php` - Prerequisite checks check for 'course_track' rather than 'track'
= v3.7.2 - 2017-04-17 =
-----------------------
+ Resolved a JS errors on admin panel resulting from overly strict asset loading added in 3.7.0
= v3.7.1 - 2017-04-14 =
-----------------------