PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.10
Tutor LMS – eLearning and online course solution v3.9.10
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 / PriceGenerator.php
tutor / includes / droip / backend / ElementGenerator Last commit date
ActionsGenerator.php 2 months ago AddRatingGenerator.php 1 year ago CourseMetaGenerator.php 9 months ago ElementGenerator.php 1 year ago MaterialGenerator.php 1 year ago Preview.php 1 year ago PriceGenerator.php 7 months ago SocialLinkGenerator.php 1 year ago ThumbnailGenerator.php 4 months ago
PriceGenerator.php
121 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 TutorPro\Subscription\Models\PlanModel;
13 use TutorPro\Subscription\Subscription;
14
15 if (! defined('ABSPATH')) {
16 exit; // Exit if accessed directly.
17 }
18
19 /**
20 * Class ActionsGenerator
21 * This class is used to define all helper functions.
22 *
23 * @package TutorLMSDroip\ElementGenerator
24 */
25 trait PriceGenerator
26 {
27
28 /**
29 * Generate actionbox markup
30 *
31 * @return string
32 */
33 private function generate_price_markup()
34 {
35 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
36 $type = isset($this->properties['type']) ? $this->properties['type'] : 'free';
37 if (! $course_id) {
38 return '';
39 }
40
41 $selling_option = Course::get_selling_option($course_id);
42
43 $is_membership_only_mode_enabled = apply_filters( 'tutor_membership_only_mode', false );
44
45 if(!$selling_option){
46 $selling_option = Course::SELLING_OPTION_ALL;
47 }
48
49 switch ($type) {
50 case 'free': {
51 if (! $this->isPaidCourse($course_id) && !$is_membership_only_mode_enabled) {
52 return $this->generate_common_element();
53 }
54 return "";
55 }
56 case 'paid': {
57 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_ONE_TIME || $selling_option === Course::SELLING_OPTION_BOTH) {
58 if ($this->isPaidCourse($course_id) && !$is_membership_only_mode_enabled) {
59 return $this->generate_common_element();
60 }
61 }
62 return '';
63 }
64 case 'subscription': {
65 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_SUBSCRIPTION || $selling_option === Course::SELLING_OPTION_BOTH) {
66 if (tutor()->has_pro && Subscription::is_enabled() && !$is_membership_only_mode_enabled) {
67 $plan_model = new PlanModel();
68 $active_subscription_plans = $plan_model->get_subscription_plans($course_id, PlanModel::STATUS_ACTIVE);
69 if ($this->isPaidCourse($course_id) && count($active_subscription_plans) > 0) {
70 return $this->generate_common_element('', '', 'data-type="subscription"');
71 }
72 }
73 }
74 return "";
75 }
76 default: {
77 return '';
78 }
79 }
80 return '';
81 }
82 private function generate_price_value_markup()
83 {
84 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
85 $type = isset($this->properties['type']) ? $this->properties['type'] : 'sale';
86 if (! $course_id || ! $this->isPaidCourse($course_id)) {
87 return '';
88 }
89
90 $sale_price = self::get_course_meta('sale_price', $course_id, $this->options);
91 $course_price = self::get_course_meta('course_price', $course_id, $this->options);
92
93 switch ($type) {
94 case 'sale': {
95 if ($sale_price) {
96 return $this->generate_common_element(false, $sale_price);
97 } else {
98 return $this->generate_common_element(false, $course_price);
99 }
100 break;
101 }
102 case 'regular': {
103 if ($sale_price) {
104 return $this->generate_common_element(false, $course_price);
105 }
106 break;
107 }
108 default: {
109 return '';
110 }
111 }
112 return '';
113 }
114
115 private function isPaidCourse($course_id)
116 {
117 $is_paid_course = tutor_utils()->is_course_purchasable($course_id);
118 return $is_paid_course;
119 }
120 }
121