PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 1.2.1
Tutor LMS – eLearning and online course solution v1.2.1
3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / classes / TutorEDD.php
tutor / classes Last commit date
Addons.php 7 years ago Admin.php 7 years ago Ajax.php 7 years ago Assets.php 7 years ago Course.php 7 years ago Gutenberg.php 7 years ago Instructor.php 7 years ago Instructors_List.php 7 years ago Lesson.php 7 years ago Options.php 7 years ago Post_types.php 7 years ago Q_and_A.php 7 years ago Question.php 7 years ago Question_Answers_List.php 7 years ago Quiz.php 7 years ago Quiz_Attempts_List.php 7 years ago Rewrite_Rules.php 7 years ago Shortcode.php 7 years ago Student.php 7 years ago Students_List.php 7 years ago Template.php 7 years ago Theme_Compatibility.php 7 years ago Tools.php 7 years ago Tutor.php 7 years ago TutorEDD.php 7 years ago Tutor_Base.php 7 years ago Tutor_List_Table.php 7 years ago User.php 7 years ago Utils.php 7 years ago Video_Stream.php 7 years ago Withdraw.php 7 years ago Withdraw_Requests_List.php 7 years ago WooCommerce.php 7 years ago
TutorEDD.php
152 lines
1 <?php
2 /**
3 * Tutor Course attachments Main Class
4 */
5
6 namespace TUTOR;
7
8 class TutorEDD extends Tutor_Base {
9
10 public function __construct() {
11 parent::__construct();
12
13 add_action('tutor_options_before_tutor_edd', array($this, 'notice_before_option'));
14
15 //Add Tutor Option
16 add_filter('tutor/options/attr', array($this, 'add_options'));
17
18 $course_sell = tutor_utils()->get_option('enable_tutor_edd');
19 if ( ! $course_sell){
20 return;
21 }
22
23 add_action( 'add_meta_boxes', array($this, 'register_meta_box') );
24 add_action('save_post_'.$this->course_post_type, array($this, 'save_course_meta'));
25
26 /**
27 * Is Course Purchasable
28 */
29 add_filter('is_course_purchasable', array($this, 'is_course_purchasable'), 10, 2);
30 add_filter('get_tutor_course_price', array($this, 'get_tutor_course_price'), 10, 2);
31 add_filter('tutor_course_sell_by', array($this, 'tutor_course_sell_by'));
32
33 add_action('edd_update_payment_status', array($this, 'edd_update_payment_status'), 10, 3);
34 }
35
36 public function notice_before_option(){
37 $has_edd = tutor_utils()->has_edd();
38 if ($has_edd){
39 return;
40 }
41
42 ob_start();
43 ?>
44 <div class="tutor-notice-warning">
45 <p>
46 <?php _e(' Seems like you don’t have <strong>Easy Digital Downloads</strong> plugin installed on your site. In order to use this functionality, you need to have the <strong>Easy Digital Downloads</strong> plugin installed. Get back on this page after installing the plugin and enable the following feature to start selling courses with Tutor.', 'tutor'); ?>
47 </p>
48 <p><?php _e('This notice will disappear after activating <strong>EDD</strong>', 'tutor'); ?></p>
49 </div>
50 <?php
51 echo ob_get_clean();
52 }
53
54 /**
55 * @param $attr
56 *
57 * @return mixed
58 *
59 * Add Option for tutor
60 */
61 public function add_options($attr){
62 $attr['tutor_edd'] = array(
63 'label' => __( 'EDD', 'tutor-edd' ),
64
65 'sections' => array(
66 'general' => array(
67 'label' => __('General', 'tutor-edd'),
68 'desc' => __('Tutor Course Attachments Settings', 'tutor-edd'),
69 'fields' => array(
70 'enable_tutor_edd' => array(
71 'type' => 'checkbox',
72 'label' => __('Enable EDD', 'tutor'),
73 'desc' => __('This will enable sell your product via EDD', 'tutor'),
74 ),
75 ),
76 ),
77 ),
78 );
79 return $attr;
80 }
81
82 public function register_meta_box(){
83 add_meta_box( 'tutor-attached-edd-product', __( 'Add Product', 'tutor' ), array($this, 'course_add_product_metabox'), $this->course_post_type, 'advanced', 'high' );
84 }
85
86 /**
87 * @param $post
88 * MetaBox for Lesson Modal Edit Mode
89 */
90 public function course_add_product_metabox(){
91 include tutor()->path.'views/metabox/course-add-edd-product-metabox.php';
92 }
93
94 public function save_course_meta($post_ID){
95 $product_id = (int) tutor_utils()->avalue_dot('_tutor_course_product_id', $_POST);
96 if ($product_id){
97 update_post_meta($post_ID, '_tutor_course_product_id', $product_id);
98 update_post_meta($product_id, '_tutor_product', 'yes');
99 }else{
100 delete_post_meta($post_ID, '_tutor_course_product_id');
101 }
102 }
103
104 public function is_course_purchasable($bool, $course_id){
105 if ( ! tutor_utils()->has_edd()){
106 return false;
107 }
108
109 $course_id = tutor_utils()->get_post_id($course_id);
110 $has_product_id = get_post_meta($course_id, '_tutor_course_product_id', true);
111 if ($has_product_id){
112 return true;
113 }
114 return false;
115 }
116
117 public function get_tutor_course_price($price, $course_id){
118 $product_id = tutor_utils()->get_course_product_id($course_id);
119
120 return edd_price($product_id, false);
121 }
122 public function tutor_course_sell_by(){
123 return 'edd';
124 }
125
126 public function edd_update_payment_status($payment_id, $new_status, $old_status ){
127 if ($new_status !== 'publish'){
128 return;
129 }
130
131 $payment = new \EDD_Payment( $payment_id );
132 $cart_details = $payment->cart_details;
133
134 if ( is_array( $cart_details ) ) {
135 foreach ( $cart_details as $cart_index => $download ) {
136
137 $if_has_course = tutor_utils()->product_belongs_with_course($download['id']);
138 if ($if_has_course){
139 $course_id = $if_has_course->post_id;
140 $has_any_enrolled = tutor_utils()->has_any_enrolled($course_id);
141 if ( ! $has_any_enrolled){
142 tutor_utils()->do_enroll($course_id, $payment_id);
143 }
144 }
145 }
146 tutor_utils()->complete_course_enroll($payment_id);
147 }
148
149 }
150
151
152 }