Guest User

Untitled

a guest
Apr 7th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.23 KB | None | 0 0
  1. add_action('template_redirect','check_upload_course_complete',1);
  2. function check_upload_course_complete(){
  3. global $post;
  4. $course_id = $post->ID;
  5. if(isset($_POST['submit_course']) && isset($_POST['review']) && wp_verify_nonce($_POST['review'],get_the_ID())){
  6. if(!empty($course_id)){
  7. $upload_course = get_post_meta($course_id,'vibe_course_package',true);
  8.  
  9. if(!empty($upload_course)) {
  10. add_filter('bp_get_course_check_course_complete_stop', function ($flag,$x,$y){
  11. return 1;
  12. },10,3);
  13.  
  14. add_action('bp_get_course_check_course_complete',function($course_id,$user_id){
  15.  
  16.  
  17. $id = $course_id;
  18.  
  19.  
  20. $course_curriculum = array();
  21. $flag = apply_filters('wplms_finish_course_check_upload_course',$flag,$course_curriculum);
  22.  
  23. if(!$flag){
  24.  
  25. $course_id = $id;
  26. $auto_eval = get_post_meta($id,'vibe_course_auto_eval',true);
  27.  
  28.  
  29. if(vibe_validate($auto_eval)){
  30.  
  31. // AUTO EVALUATION
  32.  
  33.  
  34. do_action('wplms_submit_course',$post->ID,$user_id);
  35. // Apply Filters on Auto Evaluation
  36. $student_marks=apply_filters('wplms_course_student_marks',100,$id,$user_id);
  37. $total_marks=apply_filters('wplms_course_maximum_marks',100,$id,$user_id);
  38.  
  39. if(!$total_marks){$total_marks=$student_marks=1; }// Avoid the Division by Zero Error
  40.  
  41. $marks = round(($student_marks*100)/$total_marks);
  42.  
  43. $return .='<div class="message" class="updated"><p>'.__('COURSE EVALUATED ','vibe').'</p></div>';
  44.  
  45. $badge_per = get_post_meta($id,'vibe_course_badge_percentage',true);
  46.  
  47. $passing_cert = get_post_meta($id,'vibe_course_certificate',true); // Certificate Enable
  48. $passing_per = get_post_meta($id,'vibe_course_passing_percentage',true); // Certificate Passing Percentage
  49.  
  50. //finish bit for student 1.8.4
  51. update_user_meta($user_id,'course_status'.$id,3);
  52. //end finish bit
  53.  
  54. do_action('wplms_evaluate_course',$id,$marks,$user_id,1);
  55.  
  56. $badge_filter = 0;
  57. if(isset($badge_per) && $badge_per && $marks >= $badge_per)
  58. $badge_filter = 1;
  59.  
  60. $badge_filter = apply_filters('wplms_course_student_badge_check',$badge_filter,$course_id,$user_id,$marks,$badge_per);
  61. if($badge_filter){
  62. $badges = array();
  63. $badges= vibe_sanitize(get_user_meta($user_id,'badges',false));
  64.  
  65. if(isset($badges) && is_array($badges)){
  66. if(!in_array($id,$badges)){
  67. $badges[]=$id;
  68. }
  69. }else{
  70. $badges=array($id);
  71. }
  72.  
  73. update_user_meta($user_id,'badges',$badges);
  74.  
  75. $b=bp_get_course_badge($id);
  76. $badge=wp_get_attachment_info($b);
  77. $size = apply_filters('bp_course_badge_thumbnail_size','thumbnail');
  78. $badge_url=wp_get_attachment_image_src($b,$size);
  79. if(isset($badge) && is_numeric($b))
  80. $return .='<div class="congrats_badge">'.__('Congratulations ! You\'ve earned the ','vibe').' <strong>'.get_post_meta($id,'vibe_course_badge_title',true).'</strong> '.__('Badge','vibe').'<a class="tip ajax-badge" data-course="'.get_the_title($id).'" title="'.get_post_meta($id,'vibe_course_badge_title',true).'"><img src="'.$badge_url[0].'" title="'.$badge['title'].'"/></a></div>';
  81.  
  82.  
  83. do_action('wplms_badge_earned',$id,$badges,$user_id,$badge_filter);
  84. }
  85. $passing_filter =0;
  86. if(vibe_validate($passing_cert) && isset($passing_per) && $passing_per && $marks >= $passing_per)
  87. $passing_filter = 1;
  88.  
  89. $passing_filter = apply_filters('wplms_course_student_certificate_check',$passing_filter,$course_id,$user_id,$marks,$passing_per);
  90.  
  91. if($passing_filter){
  92. $pass = array();
  93. $pass=vibe_sanitize(get_user_meta($user_id,'certificates',false));
  94.  
  95. if(isset($pass) && is_array($pass)){
  96. if(!in_array($id,$pass)){
  97. $pass[]=$id;
  98. }
  99. }else{
  100. $pass=array($id);
  101. }
  102.  
  103. update_user_meta($user_id,'certificates',$pass);
  104. $return .='<div class="congrats_certificate">'.__('Congratulations ! You\'ve successfully passed the course and earned the Course Completion Certificate !','vibe').'<a href="'.bp_get_course_certificate(array('user_id'=>$user_id,'course_id'=>$id)).'" class="ajax-certificate right '.apply_filters('bp_course_certificate_class','',array('course_id'=>$id,'user_id'=>$user_id)).'" data-user="'.$user_id.'" data-course="'.$id.'"><span>'.__('View Certificate','vibe').'</span></a></div>';
  105. do_action('wplms_certificate_earned',$id,$pass,$user_id,$passing_filter);
  106. }
  107.  
  108. update_post_meta( $id,$user_id,$marks);
  109.  
  110. $course_end_status = apply_filters('wplms_course_status',4);
  111. update_user_meta( $user_id,'course_status'.$id,$course_end_status);//EXCEPTION
  112.  
  113. $message = sprintf(__('You\'ve obtained %s in course %s ','vibe'),apply_filters('wplms_course_marks',$marks.'/100',$course_id),' <a href="'.get_permalink($id).'">'.get_the_title($id).'</a>');
  114. $return .='<div class="congrats_message">'.$message.'</div>';
  115.  
  116.  
  117.  
  118. }else{
  119. $return .='<div class="message" class="updated"><p>'.__('COURSE SUBMITTED FOR EVALUATION','vibe').'</p></div>';
  120. bp_course_update_user_course_status($user_id,$id,2);// 2 determines Course is Complete
  121. do_action('wplms_submit_course',$post->ID,$user_id);
  122. }
  123.  
  124. // Show the Generic Course Submission
  125. $content=get_post_meta($id,'vibe_course_message',true);
  126. $return .=apply_filters('the_content',$content);
  127. $return = apply_filters('wplms_course_finished',$return);
  128. }else{
  129. $type=bp_course_get_post_type($flag);
  130. switch($type){
  131. case 'unit':
  132. $type= __('UNIT','vibe');
  133. break;
  134. case 'assignment':
  135. $type= __('ASSIGNMENT','vibe');
  136. break;
  137. case 'quiz':
  138. $type= __('QUIZ','vibe');
  139. break;
  140. }//Default for other customized options
  141. $message = __('PLEASE COMPLETE THE ','vibe').$type.' : '.get_the_title($flag);
  142. $return .='<div class="message"><p>'.apply_filters('wplms_unfinished_unit_quiz_message',$message,$flag).'</p></div>';
  143. }
  144. echo $return;
  145. },10,2);
  146. }
  147. }
  148. }
  149. }
Add Comment
Please, Sign In to add comment