PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / 3.9.0
Tutor LMS – eLearning and online course solution v3.9.0
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 9 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 9 months ago SocialLinkGenerator.php 1 year ago ThumbnailGenerator.php 1 year ago
PriceGenerator.php
118 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 if(!$selling_option){
43 $selling_option = Course::SELLING_OPTION_ALL;
44 }
45
46 switch ($type) {
47 case 'free': {
48 if (! $this->isPaidCourse($course_id)) {
49 return $this->generate_common_element();
50 }
51 return "";
52 }
53 case 'paid': {
54 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_ONE_TIME || $selling_option === Course::SELLING_OPTION_BOTH) {
55 if ($this->isPaidCourse($course_id)) {
56 return $this->generate_common_element();
57 }
58 }
59 return '';
60 }
61 case 'subscription': {
62 if ($selling_option === Course::SELLING_OPTION_ALL || $selling_option === Course::SELLING_OPTION_SUBSCRIPTION || $selling_option === Course::SELLING_OPTION_BOTH) {
63 if (tutor()->has_pro && Subscription::is_enabled()) {
64 $plan_model = new PlanModel();
65 $active_subscription_plans = $plan_model->get_subscription_plans($course_id, PlanModel::STATUS_ACTIVE);
66 if ($this->isPaidCourse($course_id) && count($active_subscription_plans) > 0) {
67 return $this->generate_common_element('', '', 'data-type="subscription"');
68 }
69 }
70 }
71 return "";
72 }
73 default: {
74 return '';
75 }
76 }
77 return '';
78 }
79 private function generate_price_value_markup()
80 {
81 $course_id = isset($this->options['post']) ? $this->options['post']->ID : get_the_ID();
82 $type = isset($this->properties['type']) ? $this->properties['type'] : 'sale';
83 if (! $course_id || ! $this->isPaidCourse($course_id)) {
84 return '';
85 }
86
87 $sale_price = self::get_course_meta('sale_price', $course_id, $this->options);
88 $course_price = self::get_course_meta('course_price', $course_id, $this->options);
89
90 switch ($type) {
91 case 'sale': {
92 if ($sale_price) {
93 return $this->generate_common_element(false, $sale_price);
94 } else {
95 return $this->generate_common_element(false, $course_price);
96 }
97 break;
98 }
99 case 'regular': {
100 if ($sale_price) {
101 return $this->generate_common_element(false, $course_price);
102 }
103 break;
104 }
105 default: {
106 return '';
107 }
108 }
109 return '';
110 }
111
112 private function isPaidCourse($course_id)
113 {
114 $is_paid_course = tutor_utils()->is_course_purchasable($course_id);
115 return $is_paid_course;
116 }
117 }
118