PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.6.1
Tutor LMS – eLearning and online course solution v3.6.1
4.0.0 3.9.15 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 / includes / droip / backend / ElementGenerator / ActionsGenerator.php
tutor / includes / droip / backend / ElementGenerator Last commit date
ActionsGenerator.php 1 year ago AddRatingGenerator.php 1 year ago CourseMetaGenerator.php 1 year ago ElementGenerator.php 1 year ago MaterialGenerator.php 1 year ago Preview.php 1 year ago PriceGenerator.php 1 year ago SocialLinkGenerator.php 1 year ago ThumbnailGenerator.php 1 year ago
ActionsGenerator.php
180 lines
1 <?php
2
3 /**
4 * Preview script for html markup generator
5 *
6 * @package tutor-droip-elements
7 */
8
9 namespace TutorLMSDroip\ElementGenerator;
10
11 use TUTOR\Course;
12 use Tutor\Models\CartModel;
13 use TUTOR_CERT\Certificate;
14 use TutorLMSDroip\Helper;
15
16 if ( ! defined( 'ABSPATH' ) ) {
17 exit; // Exit if accessed directly.
18 }
19
20 /**
21 * Class ActionsGenerator
22 * This class is used to define all helper functions.
23 *
24 * @package TutorLMSDroip\ElementGenerator
25 */
26 trait ActionsGenerator {
27
28 /**
29 * Generate actionbox markup
30 *
31 * @return string
32 */
33 private function generate_action_markup() {
34 $course_id = isset( $this->options['post'] ) ? $this->options['post']->ID : get_the_ID();
35 $ele_name = $this->element['name'];
36 $entry_box_button_logic = tutor_entry_box_buttons( $course_id );
37 $type = isset( $this->properties['type'] ) ? $this->properties['type'] : 'enroll_btn';
38 $extra_attributes = "data-course_id='$course_id' data-action_type='$type'";
39
40 switch ( $type ) {
41 case 'wishlist_btn':{
42 if ( ! is_user_logged_in() ) {
43 return '';
44 }
45 $is_wish_listed = tutor_utils()->is_wishlisted( $course_id, get_current_user_id() );
46 if ( $is_wish_listed ) {
47 return '';
48 }
49
50 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
51 }
52 case 'wishlisted_btn':{
53 if ( ! is_user_logged_in() ) {
54 return '';
55 }
56 $is_wish_listed = tutor_utils()->is_wishlisted( $course_id, get_current_user_id() );
57 if ( ! $is_wish_listed ) {
58 return '';
59 }
60
61 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
62 }
63 }
64
65 if ( ! isset( $entry_box_button_logic->{'show_' . $type} ) || ( isset( $entry_box_button_logic->{'show_' . $type} ) && $entry_box_button_logic->{'show_' . $type} !== true ) ) {
66 return '';
67 }
68 switch ( $type ) {
69 case 'enroll_btn':{
70 if ( ! $entry_box_button_logic->show_enroll_btn ) {
71 return '';
72 }
73 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
74 }
75 case 'add_to_cart_btn':{
76 $is_course_in_user_cart = CartModel::is_course_in_user_cart( get_current_user_id(), $course_id );
77 if ( $is_course_in_user_cart ) {
78 return '';
79 }
80 if(!Helper::is_course_for_single_purchaseble($course_id)){
81 return "";
82 }
83 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
84 }
85 case 'view_cart_btn':{
86 $is_course_in_user_cart = CartModel::is_course_in_user_cart( get_current_user_id(), $course_id );
87 if ( ! $is_course_in_user_cart ) {
88 return '';
89 }
90 $extra_attributes .= " data-cart_url='" . tutor_get_cart_url() . "'";
91 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
92 }
93 case 'start_learning_btn':{
94 if ( ! $entry_box_button_logic->show_start_learning_btn ) {
95 return '';
96 }
97 $is_course_completed = tutor_utils()->is_completed_course( $course_id, get_current_user_id() );
98 if ( $is_course_completed ) {
99 return '';
100 }
101 $lession_url = tutor_utils()->get_course_first_lesson( $course_id );
102 $extra_attributes .= " data-lession_url=$lession_url";
103 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
104 }
105 case 'continue_learning_btn':{
106 if ( ! $entry_box_button_logic->show_continue_learning_btn ) {
107 return '';
108 }
109 $is_course_completed = tutor_utils()->is_completed_course( $course_id, get_current_user_id() );
110 if ( $is_course_completed ) {
111 return '';
112 }
113 $extra_attributes .= " data-continue_learning_url='" . tutor_utils()->get_course_first_lesson() . "'";
114 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
115 }
116 case 'complete_course_btn':{
117 if ( ! $entry_box_button_logic->show_complete_course_btn ) {
118 return '';
119 }
120 $is_course_completed = tutor_utils()->is_completed_course( $course_id, get_current_user_id() );
121 if ( $is_course_completed ) {
122 return '';
123 }
124 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
125 }
126 case 'retake_course_btn':{
127 if ( $entry_box_button_logic->show_retake_course_btn || ( $entry_box_button_logic->show_certificate_view_btn && function_exists( 'TUTOR_CERT' ) ) ) {
128 $extra_attributes .= " data-continue_learning_url='" . tutor_utils()->get_course_first_lesson() . "'";
129 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
130 } else {
131 return '';
132 }
133 }
134 case 'certificate_view_btn':{
135 if ( ! function_exists( 'TUTOR_CERT' ) ) {
136 return '';
137 }
138 if ( ! $entry_box_button_logic->show_certificate_view_btn ) {
139 return '';
140 }
141 $is_course_completed = tutor_utils()->is_completed_course( $course_id, get_current_user_id() );
142
143 if ( ! $is_course_completed ) {
144 return '';
145 }
146 if ( ! $course_id ) {
147 return '';
148 }
149
150 $certificate_url = '';
151 if ( tutils()->is_addon_enabled( TUTOR_CERT()->basename ) ) {
152 $certificate_url = ( new Certificate( true ) )->get_certificate( $course_id );
153
154 $extra_attributes .= " data-certificate_url='" . $certificate_url . "'";
155 return $this->generate_child_element_with_parent_droip_data( $extra_attributes );
156 }
157
158 return '';
159
160 }
161 default:{
162 return '';
163 }
164
165 }
166 return '';
167 }
168
169 private function generate_child_element_with_parent_droip_data( $extra_attributes ) {
170 $children_html = $this->generate_child_elements();
171 // echo "<pre>";var_dump($this->element['parentId'], $this->elements[$this->element['parentId'] ]);die;
172 if ( isset( $this->elements[ $this->element['parentId'] ] ) ) {
173 $encoded_data = $this->get_all_data_and_styles_from_element_id( $this->element['parentId'] );
174 $encoded_data = json_encode( $encoded_data );
175 $children_html .= "<textarea style='display: none'>$encoded_data</textarea>";
176 }
177 return $this->generate_common_element( false, $children_html, $extra_attributes );
178 }
179 }
180