LearnPress – WordPress LMS Plugin - Version 2.2.1

Version Description

  • Fixed bug open lesson show nested popup window
  • Fixed bug calculator wrong total raised
  • Fixed external link for free course not working
  • Update view of widget LearnPress status in dashboard page
Download this release

Release Info

Developer leehld
Plugin Icon 128x128 LearnPress – WordPress LMS Plugin
Version 2.2.1
Comparing to
See all releases

Code changes from version 2.2 to 2.2.1

assets/js/frontend/single-course.js CHANGED
@@ -417,6 +417,14 @@ if (typeof LearnPress === 'undefined') {
417
  },
418
  _loadItem : function (e, f) {
419
  e.preventDefault();
 
 
 
 
 
 
 
 
420
  var that = this,
421
  $target = $(e.target),
422
  id = this._getItemId($target);
@@ -436,14 +444,16 @@ if (typeof LearnPress === 'undefined') {
436
  this.currentItem = this.model.getItem(id);
437
  this.showPopup();
438
  var $content = this.currentItem.get('content'),
439
- isNew = !($content && $content.length);
440
- if (!$content) {
 
 
441
  $content = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen />');
442
  this.currentItem.set('content', $content);
443
  }
444
  that.viewItem(id);
445
  this.$('#popup-content-inner').html($content);
446
- if (isNew) {
447
  $content.attr('src', LP.addQueryVar('content-item-only', 'yes', this.currentItem.get('url')));
448
  }
449
  $content.unbind('load').load( function() {
@@ -462,9 +472,9 @@ if (typeof LearnPress === 'undefined') {
462
  this.$('.course-item [data-id="' + item.get('id') + '"]').closest('.course-item').addClass('item-current');
463
  this.$('#course-curriculum-popup').attr('data-item-id', item.get('id'));
464
  this.updateUrl();
465
- //this.updateItemContent(item);
466
  this.updateFooterNav();
467
- if (item.get('type') === 'lp_quiz') {
468
  this.loadQuiz();
469
  }
470
  return item;
417
  },
418
  _loadItem : function (e, f) {
419
  e.preventDefault();
420
+ var isInIframe = (window.location != window.parent.location) ? true : false;
421
+ if(isInIframe){
422
+ var ihref = window.location.href;
423
+ if(ihref.match(/\?content-item-only=yes/gi)){
424
+ window.location.reload();
425
+ return;
426
+ }
427
+ }
428
  var that = this,
429
  $target = $(e.target),
430
  id = this._getItemId($target);
444
  this.currentItem = this.model.getItem(id);
445
  this.showPopup();
446
  var $content = this.currentItem.get('content'),
447
+ isNew = !( $content && $content.length );
448
+ var isInIframe = (window.location != window.parent.location) ? true : false;
449
+ console.log(isInIframe);
450
+ if ( !$content ) {
451
  $content = $('<iframe webkitallowfullscreen mozallowfullscreen allowfullscreen />');
452
  this.currentItem.set('content', $content);
453
  }
454
  that.viewItem(id);
455
  this.$('#popup-content-inner').html($content);
456
+ if ( isNew ) {
457
  $content.attr('src', LP.addQueryVar('content-item-only', 'yes', this.currentItem.get('url')));
458
  }
459
  $content.unbind('load').load( function() {
472
  this.$('.course-item [data-id="' + item.get('id') + '"]').closest('.course-item').addClass('item-current');
473
  this.$('#course-curriculum-popup').attr('data-item-id', item.get('id'));
474
  this.updateUrl();
475
+ this.updateItemContent(item);
476
  this.updateFooterNav();
477
+ if ( item.get( 'type' ) === 'lp_quiz' ) {
478
  this.loadQuiz();
479
  }
480
  return item;
inc/admin/dashboard-statistics/class-lp-statistic-status.php CHANGED
@@ -24,7 +24,7 @@ if ( !class_exists( 'LP_Statistic_Status' ) ) :
24
  ?>
25
  <ul class="learnpress-statistic-status">
26
  <li class="full-width">
27
- <a href="#" class="total-raised">
28
  <span>
29
  <?php echo _learn_press_total_raised() ?>
30
  <?php _e( 'Total Raised', 'learnpress' ); ?>
24
  ?>
25
  <ul class="learnpress-statistic-status">
26
  <li class="full-width">
27
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=learn-press-statistics') )?>" class="total-raised">
28
  <span>
29
  <?php echo _learn_press_total_raised() ?>
30
  <?php _e( 'Total Raised', 'learnpress' ); ?>
inc/lp-constants.php CHANGED
@@ -4,7 +4,7 @@
4
  */
5
  $upload_dir = wp_upload_dir();
6
  // version
7
- define( 'LEARNPRESS_VERSION', '2.2' );
8
 
9
  define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
10
 
4
  */
5
  $upload_dir = wp_upload_dir();
6
  // version
7
+ define( 'LEARNPRESS_VERSION', '2.2.1' );
8
 
9
  define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
10
 
inc/lp-core-functions.php CHANGED
@@ -1611,6 +1611,13 @@ add_filter( 'pre_get_posts', 'learn_press_filter_search', 99 );
1611
  */
1612
  function learn_press_send_json( $data ) {
1613
  echo '<-- LP_AJAX_START -->';
 
 
 
 
 
 
 
1614
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
1615
  echo wp_json_encode( $data );
1616
  echo '<-- LP_AJAX_END -->';
1611
  */
1612
  function learn_press_send_json( $data ) {
1613
  echo '<-- LP_AJAX_START -->';
1614
+ /**
1615
+ * fixed bug: can't buy course with PayPal
1616
+ */
1617
+ @header('HTTP/1.0 200 OK');
1618
+ /**
1619
+ * end
1620
+ **/
1621
  @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
1622
  echo wp_json_encode( $data );
1623
  echo '<-- LP_AJAX_END -->';
inc/order/lp-order-functions.php CHANGED
@@ -865,12 +865,12 @@ function _learn_press_checkout_auto_enroll_free_course( $result, $order_id ) {
865
 
866
  if ( !function_exists( '_learn_press_total_raised' ) ) {
867
  function _learn_press_total_raised() {
868
- $orders = learn_press_get_orders( array( 'post_status' => 'lp-completed' ) );
869
  $total = 0;
870
  if ( $orders ) {
871
  foreach ( $orders as $order ) {
872
  $order = learn_press_get_order( $order->ID );
873
- $total = $total + $order->order_total;
874
  }
875
  }
876
 
865
 
866
  if ( !function_exists( '_learn_press_total_raised' ) ) {
867
  function _learn_press_total_raised() {
868
+ $orders = learn_press_get_orders( array( 'post_status' => 'lp-completed', 'posts_per_page' => 1000 ) );
869
  $total = 0;
870
  if ( $orders ) {
871
  foreach ( $orders as $order ) {
872
  $order = learn_press_get_order( $order->ID );
873
+ $total = $total + floatval( $order->order_total );
874
  }
875
  }
876
 
learnpress.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: LearnPress
4
  Plugin URI: http://thimpress.com/learnpress
5
  Description: LearnPress is a WordPress complete solution for creating a Learning Management System (LMS). It can help you to create courses, lessons and quizzes.
6
  Author: ThimPress
7
- Version: 2.2
8
  Author URI: http://thimpress.com
9
  Requires at least: 3.8
10
  Tested up to: 4.9.4
4
  Plugin URI: http://thimpress.com/learnpress
5
  Description: LearnPress is a WordPress complete solution for creating a Learning Management System (LMS). It can help you to create courses, lessons and quizzes.
6
  Author: ThimPress
7
+ Version: 2.2.1
8
  Author URI: http://thimpress.com
9
  Requires at least: 3.8
10
  Tested up to: 4.9.4
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link:
4
  Tags: WordPress LMS, LMS, eLearning, e-Learning, Learning Management System, LMS WordPress, Course, Courses, Quiz, Quizzes, Training, Guru, Sell Courses
5
  Requires at least: 3.8
6
  Tested up to: 4.9.4
7
- Stable tag: 2.2
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -199,6 +199,12 @@ https://www.transifex.com/projects/p/learnpress/
199
 
200
  == Changelog ==
201
 
 
 
 
 
 
 
202
  = 2.2 =
203
  + Compatible with WordPress 4.9.4
204
  + Fixed "Finish Course" button not show in can retake course
4
  Tags: WordPress LMS, LMS, eLearning, e-Learning, Learning Management System, LMS WordPress, Course, Courses, Quiz, Quizzes, Training, Guru, Sell Courses
5
  Requires at least: 3.8
6
  Tested up to: 4.9.4
7
+ Stable tag: 2.2.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
199
 
200
  == Changelog ==
201
 
202
+ = 2.2.1 =
203
+ + Fixed bug open lesson show nested popup window
204
+ + Fixed bug calculator wrong total raised
205
+ + Fixed external link for free course not working
206
+ + Update view of widget LearnPress status in dashboard page
207
+
208
  = 2.2 =
209
  + Compatible with WordPress 4.9.4
210
  + Fixed "Finish Course" button not show in can retake course
templates/single-course/buttons.php CHANGED
@@ -30,16 +30,15 @@ $notice_enough_student = apply_filters( 'learn_press_course enough students_noti
30
  $course_status = $lp_user->get_course_status( $course->id );
31
  $can_purchase = $lp_user->can_purchase_course( $course->id );
32
  $can_enroll = $lp_user->can( 'enroll-course', $course->id );
33
-
34
  if ( $can_purchase ) {
35
  # todo dispay purchase button
36
  if ( $external_link = $course->get_external_link() ) {
37
-
38
  $external_button_text = apply_filters( 'learn_press_course_external_link_button_text', __( 'Buy this course', 'learnpress' ) ); ?>
39
 
40
  <?php do_action( 'learn_press_before_external_link_buy_course' ); ?>
41
  <div class="purchase-course">
42
- <a href="<?php echo esc_url( $external_link ); ?>" class="purchase-button">
43
  <?php echo $external_button_text; ?>
44
  </a>
45
  </div>
@@ -109,32 +108,31 @@ $notice_enough_student = apply_filters( 'learn_press_course enough students_noti
109
  </button>
110
  <?php
111
 
112
- elseif ( $user->can( 'enroll-course', $course->id ) === true ) : ?>
113
- <form name="enroll-course" class="enroll-course" method="post" enctype="multipart/form-data">
114
- <?php do_action( 'learn_press_before_enroll_button' ); ?>
115
-
116
- <input type="hidden" name="lp-ajax" value="enroll-course"/>
117
- <input type="hidden" name="enroll-course" value="<?php echo $course->id; ?>"/>
118
- <button class="button enroll-button"
119
- data-block-content="yes"><?php echo $enroll_button_text; ?></button>
120
-
121
- <?php do_action( 'learn_press_after_enroll_button' ); ?>
122
- </form>
123
- <?php
124
-
125
-
126
- elseif ( $user->can( 'purchase-course', $course->id ) && ! $can_purchase ) : ?>
127
- <form name="purchase-course" class="purchase-course" method="post" enctype="multipart/form-data">
128
- <?php do_action( 'learn_press_before_purchase_button' ); ?>
129
- <button class="button purchase-button" data-block-content="yes">
130
- <?php echo $course->is_free() ? $enroll_button_text : $purchase_button_text; ?>
131
- </button>
132
- <?php do_action( 'learn_press_after_purchase_button' ); ?>
133
- <input type="hidden" name="purchase-course" value="<?php echo $course->id; ?>"/>
134
- <input type="hidden" value="user can purchase course"/>
135
- </form>
136
-
137
  <?php
 
138
 
139
 
140
  elseif ( $course->is_reached_limit()/* $user->can( 'enroll-course', $course->id ) === 'enough'*/ ) : ?>
30
  $course_status = $lp_user->get_course_status( $course->id );
31
  $can_purchase = $lp_user->can_purchase_course( $course->id );
32
  $can_enroll = $lp_user->can( 'enroll-course', $course->id );
 
33
  if ( $can_purchase ) {
34
  # todo dispay purchase button
35
  if ( $external_link = $course->get_external_link() ) {
36
+
37
  $external_button_text = apply_filters( 'learn_press_course_external_link_button_text', __( 'Buy this course', 'learnpress' ) ); ?>
38
 
39
  <?php do_action( 'learn_press_before_external_link_buy_course' ); ?>
40
  <div class="purchase-course">
41
+ <a href="<?php echo esc_url( $external_link ); ?>" class="button purchase-button">
42
  <?php echo $external_button_text; ?>
43
  </a>
44
  </div>
108
  </button>
109
  <?php
110
 
111
+ elseif ( $user->can( 'enroll-course', $course->id ) === true ) :
112
+ if ( !$user->has('purchased-course', $course->id ) && ($external_link = $course->get_external_link()) ) {
113
+ $external_button_text = apply_filters( 'learn_press_enroll_course_external_link_button_text', __( 'Buy this course', 'learnpress' ) ); ?>
114
+ <?php do_action( 'learn_press_before_external_link_buy_course' ); ?>
115
+ <div class="purchase-course">
116
+ <a href="<?php echo esc_url( $external_link ); ?>" class="button purchase-button">
117
+ <?php echo $external_button_text; ?>
118
+ </a>
119
+ </div>
120
+ <?php do_action( 'learn_press_after_external_link_buy_course' ); ?>
121
+ <?php
122
+ } else {
123
+ ?>
124
+ <form name="enroll-course" class="enroll-course" method="post" enctype="multipart/form-data">
125
+ <?php do_action( 'learn_press_before_enroll_button' ); ?>
126
+
127
+ <input type="hidden" name="lp-ajax" value="enroll-course"/>
128
+ <input type="hidden" name="enroll-course" value="<?php echo $course->id; ?>"/>
129
+ <button class="button enroll-button"
130
+ data-block-content="yes"><?php echo $enroll_button_text; ?></button>
131
+
132
+ <?php do_action( 'learn_press_after_enroll_button' ); ?>
133
+ </form>
 
 
134
  <?php
135
+ }
136
 
137
 
138
  elseif ( $course->is_reached_limit()/* $user->can( 'enroll-course', $course->id ) === 'enough'*/ ) : ?>